diff options
Diffstat (limited to 'docs/build.py')
| -rwxr-xr-x | docs/build.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/build.py b/docs/build.py new file mode 100755 index 0000000000..29b5c5add4 --- /dev/null +++ b/docs/build.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +""" +Script to build the documentation for Django from ReST -> HTML. +""" + +import os +import sys +import glob +import locale +from docutils.core import publish_parts +from docutils.writers import html4css1 + +SETTINGS = { + 'initial_header_level': 2 +} + +locale.setlocale(locale.LC_ALL, '') + +def build(dirs): + writer = html4css1.Writer() + writer.translator_class = DjangoHTMLTranslator + for dir in dirs: + for fname in glob.glob1(dir, "*.txt"): + in_file = os.path.join(dir, fname) + out_file = os.path.join(dir, os.path.splitext(fname)[0] + ".html") + print "+++", in_file + parts = publish_parts( + open(in_file).read(), + source_path=in_file, + destination_path=out_file, + writer=writer, + settings_overrides={ + 'initial_header_level' : 2, + } + ) + open(out_file, 'w').write(parts['html_body']) + +class DjangoHTMLTranslator(html4css1.HTMLTranslator): + """Remove the damn border=1 from the standard HTML writer""" + def visit_table(self, node): + self.body.append(self.starttag(node, 'table', CLASS='docutils')) + +if __name__ == "__main__": + if len(sys.argv) > 1: + build(sys.argv[1:]) + else: + build([os.getcwd()]) |
