X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=generate-documentation.py;h=0d6760e5616cc52d19b9ec0af34140981fcb421c;hb=0a5aa490041ec62b5c7e4951d4d4e7a2fd345fc2;hp=8dbc68fa8ffd24100cf53b05771d3704d25607eb;hpb=11c49f0e7c51707979bdcbabef8b2be1e0ce75db;p=dygraphs.git diff --git a/generate-documentation.py b/generate-documentation.py index 8dbc68f..0d6760e 100755 --- a/generate-documentation.py +++ b/generate-documentation.py @@ -2,8 +2,9 @@ # Generate docs/options.html -import json import glob +import json +import os import re import sys @@ -53,22 +54,24 @@ def search_files(type, files): # have the same name as a Dygraph option probably will be. prop_re = re.compile(r'\b([a-zA-Z0-9]+) *:') for test_file in files: - text = file(test_file).read() - # Hack for slipping past gallery demos that have title in their attributes - # so they don't appear as reasons for the demo to have 'title' options. - if type == "gallery": - idx = text.find("function(") - if idx >= 0: - text = text[idx:] - braced_html = find_braces(text) - if debug_tests: - print braced_html - - ms = re.findall(prop_re, braced_html) - for opt in ms: - if debug_tests: print '\n'.join(ms) - if opt in docs and test_file not in docs[opt][type]: - docs[opt][type].append(test_file) + if os.path.isfile(test_file): # Basically skips directories + text = file(test_file).read() + + # Hack for slipping past gallery demos that have title in their attributes + # so they don't appear as reasons for the demo to have 'title' options. + if type == "gallery": + idx = text.find("function(") + if idx >= 0: + text = text[idx:] + braced_html = find_braces(text) + if debug_tests: + print braced_html + + ms = re.findall(prop_re, braced_html) + for opt in ms: + if debug_tests: print '\n'.join(ms) + if opt in docs and test_file not in docs[opt][type]: + docs[opt][type].append(test_file) search_files("tests", glob.glob("tests/*.html")) search_files("gallery", glob.glob("gallery/*.js")) #TODO add grep "Gallery.register\(" @@ -77,52 +80,36 @@ if debug_tests: sys.exit(0) # Extract a labels list. labels = [] -for nu, opt in docs.iteritems(): +for _, opt in docs.iteritems(): for label in opt['labels']: if label not in labels: labels.append(label) -print """ - - - Dygraphs Options Reference - - - - +print """ + + + + + + """ print """ -\n\n' print """ -
+

Options Reference

Dygraphs tries to do a good job of displaying your data without any further configuration. But inevitably, you're going to want to tinker. Dygraphs provides a rich set of options for configuring its display and behavior.

@@ -143,14 +130,17 @@ print """ new_option2: value2 }); + +

Some options can be set on a per-axis and per-series basis. See the docs on per-axis and per-series options to learn how to do this. The options which may be set in this way are marked as such on this page.

+

And, without further ado, here's the complete list of options:

""" -def de_tests(f): +def test_name(f): """Takes 'tests/demo.html' -> 'demo'""" return f.replace('tests/', '').replace('.html', '') -def de_gallery(f): +def gallery_name(f): """Takes 'gallery/demo.js' -> 'demo'""" return f.replace('gallery/', '').replace('.js', '') @@ -160,7 +150,7 @@ def urlify_gallery(f): for label in sorted(labels): - print '

%s

\n' % (label, label) + print '

%s

\n' % (label, label) for opt_name in sorted(docs.keys()): opt = docs[opt_name] @@ -170,14 +160,14 @@ for label in sorted(labels): examples_html = 'NONE' else: examples_html = ' '.join( - '%s' % (f, de_tests(f)) for f in tests) + '%s' % (f, test_name(f)) for f in tests) gallery = opt['gallery'] if not gallery: gallery_html = 'NONE' else: gallery_html = ' '.join( - '%s' % (urlify_gallery(f), de_gallery(f)) for f in gallery) + '%s' % (urlify_gallery(f), gallery_name(f)) for f in gallery) if 'parameters' in opt: parameters = opt['parameters'] @@ -191,7 +181,9 @@ for label in sorted(labels): if not opt['description']: opt['description'] = '(missing)' print """ -
%(name)s
+
%(name)s + # +

%(desc)s

Type: %(type)s
%(parameters)s Default: %(default)s

@@ -214,10 +206,11 @@ Some callbacks take a point argument. Its properties are:
  • xval/yval: The data coordinates of the point (with dates/times as millis since epoch)
  • canvasx/canvasy: The canvas coordinates at which the point is drawn.
  • name: The name of the data series to which the point belongs
  • +
  • idx: The row number of the point in the data set
  • -
    - - +
    + + """ # This page was super-helpful: