X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=generate-documentation.py;h=f6d7d7903c6ec8036c62d2d8ee83610f66ec95b2;hb=d6eb5c59dcbc22c942a266b57e95d3111db6fcae;hp=71f25b7d958fc09d462d5493314919de207c8f56;hpb=9355cb848cd29a13ee6b98f0112700d51078f802;p=dygraphs.git diff --git a/generate-documentation.py b/generate-documentation.py index 71f25b7..f6d7d79 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,15 +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: - braced_html = find_braces(file(test_file).read()) - 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\(" @@ -70,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.

@@ -136,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', '') @@ -163,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'] @@ -185,9 +182,9 @@ for label in sorted(labels): print """
%(name)s
- %(desc)s
+

%(desc)s

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

Gallery Samples: %(gallery_html)s
Other Examples: %(examples_html)s

@@ -208,9 +205,9 @@ Some callbacks take a point argument. Its properties are:
  • canvasx/canvasy: The canvas coordinates at which the point is drawn.
  • name: The name of the data series to which the point belongs
  • -
    - - +
    + + """ # This page was super-helpful: