projects
/
dygraphs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #76 from clocksmith/singleppp
[dygraphs.git]
/
generate-documentation.py
diff --git
a/generate-documentation.py
b/generate-documentation.py
index
3e88088
..
2f91503
100755
(executable)
--- a/
generate-documentation.py
+++ b/
generate-documentation.py
@@
-1,12
+1,21
@@
#!/usr/bin/python
#!/usr/bin/python
+
+# Generate docs/options.html
+
import json
import glob
import re
import json
import glob
import re
+import sys
+
+# Set this to the path to a test file to get debug output for just that test
+# file. Can be helpful to figure out why a test is not being shown for a
+# particular option.
+debug_tests = [] # [ 'tests/zoom.html' ]
# Pull options reference JSON out of dygraph.js
js = ''
in_json = False
# Pull options reference JSON out of dygraph.js
js = ''
in_json = False
-for line in file('dygraph.js'):
+for line in file('dygraph
-options-reference
.js'):
if '<JSON>' in line:
in_json = True
elif '</JSON>' in line:
if '<JSON>' in line:
in_json = True
elif '</JSON>' in line:
@@
-40,14
+49,21
@@
def find_braces(txt):
# Find text followed by a colon. These won't all be options, but those that
# have the same name as a Dygraph option probably will be.
# Find text followed by a colon. These won't all be options, but those that
# 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 glob.glob('tests/*.html'):
+prop_re = re.compile(r'\b([a-zA-Z0-9]+) *:')
+tests = debug_tests or glob.glob('tests/*.html')
+for test_file in tests:
braced_html = find_braces(file(test_file).read())
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:
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]['tests']:
docs[opt]['tests'].append(test_file)
if opt in docs and test_file not in docs[opt]['tests']:
docs[opt]['tests'].append(test_file)
+if debug_tests: sys.exit(0)
+
# Extract a labels list.
labels = []
for nu, opt in docs.iteritems():
# Extract a labels list.
labels = []
for nu, opt in docs.iteritems():
@@
-138,7
+154,7
@@
for label in sorted(labels):
if not opt['description']: opt['description'] = '(missing)'
print """
if not opt['description']: opt['description'] = '(missing)'
print """
- <p class='option'><b>%(name)s</b><br/>
+ <p class='option'><
a name="%(name)s"/><
b>%(name)s</b><br/>
%(desc)s<br/>
<i>Type: %(type)s<br/>
Default: %(default)s</i><br/>
%(desc)s<br/>
<i>Type: %(type)s<br/>
Default: %(default)s</i><br/>