[doc] add `.t` to `.rst` converteur
Update make file accordingly.
--- a/docs/makefile Wed May 09 22:29:16 2012 +0200
+++ b/docs/makefile Wed May 09 22:55:58 2012 +0200
@@ -3,4 +3,4 @@
sphinx-build . html/
tutorial:
- cp tutorials/tutorial.t tutorials/tutorial.rst
+ python test2rst.py tutorials/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/test2rst.py Wed May 09 22:55:58 2012 +0200
@@ -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])