Mercurial > hg > evolve
changeset 235:8469ccb9550f
[doc] add `.t` to `.rst` converteur
Update make file accordingly.
author | Pierre-Yves.David@ens-lyon.org |
---|---|
date | Wed, 09 May 2012 22:55:58 +0200 |
parents | d32c07269dcd |
children | 5236927419bf |
files | docs/makefile docs/test2rst.py |
diffstat | 2 files changed, 65 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/docs/makefile +++ b/docs/makefile @@ -3,4 +3,4 @@ sphinx-build . html/ tutorial: - cp tutorials/tutorial.t tutorials/tutorial.rst + python test2rst.py tutorials/
new file mode 100644 --- /dev/null +++ b/docs/test2rst.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +import os, os.path as op, re, sys + +# line starts with two chars one of which is not a space (and both are not +# newlines obviously) and ends with one or more newlines followed by two spaces +# on a next line (indented text) +CODEBLOCK = re.compile(r'()\n(([^ \n][^\n]|[^\n][^ \n])[^\n]*)\n+ ') + +INDEX = ''' +Mercurial tests +=============== + +.. toctree:: + :maxdepth: 1 +''' + + +def rstify(orig, name): + header = '%s\n%s\n\n' % (name, '=' * len(name)) + content = header + orig + content = CODEBLOCK.sub(r'\n\1\n\n::\n\n ', content) + return content + + +def main(base): + if os.path.isdir(base): + one_dir(base) + else: + print one_file(base) + + +def one_dir(base): + index = INDEX + #doc = lambda x: op.join(op.dirname(__file__), 'docs', x) + + for fn in sorted(os.listdir(base)): + if not fn.endswith('.t'): + continue + print fn + name = os.path.splitext(fn)[0] + content = one_file(op.join(base, fn)) + target = op.join(base, name + '.rst') + #with file(doc(name + '.rst'), 'w') as f: + with file(target, 'w') as f: + f.write(content) + print f + + index += '\n ' + name + + #with file(doc('index.rst'), 'w') as f: + # f.write(index) + + +def one_file(path): + name = os.path.basename(path)[:-2] + return rstify(file(path).read(), name) + + +if __name__ == '__main__': + if len(sys.argv) != 2: + print 'Please supply a path to tests dir as parameter' + sys.exit() + main(sys.argv[1])