[Checkins] SVN: Sandbox/ulif/grok-reference-with-rest2/doc/grokref/extensions/directives.py Added toctree directive.

Uli Fouquet uli at gnufix.de
Thu Jan 10 18:48:33 EST 2008


Log message for revision 82790:
  Added toctree directive.

Changed:
  U   Sandbox/ulif/grok-reference-with-rest2/doc/grokref/extensions/directives.py

-=-
Modified: Sandbox/ulif/grok-reference-with-rest2/doc/grokref/extensions/directives.py
===================================================================
--- Sandbox/ulif/grok-reference-with-rest2/doc/grokref/extensions/directives.py	2008-01-10 23:47:03 UTC (rev 82789)
+++ Sandbox/ulif/grok-reference-with-rest2/doc/grokref/extensions/directives.py	2008-01-10 23:48:33 UTC (rev 82790)
@@ -14,6 +14,7 @@
 """
 Additional directives for reference documentation.
 """
+from os import path
 import re
 from docutils.parsers.rst import directives, roles
 import addnodes
@@ -70,7 +71,30 @@
     return fullname, classname
 
 
+# ------ toctree directive ----------------------------------------------------
+from docutils import nodes
+def toctree_directive(name, arguments, options, content, lineno,
+                      content_offset, block_text, state, state_machine):
+    settings = state.document.settings
+    env = settings.reference_settings
+    filename = settings._source
+    dirname = path.dirname(filename)
 
+    subnode = addnodes.toctree()
+    includefiles = filter(None, content)
+    # absolutize filenames
+    includefiles = map(lambda x: path.normpath(path.join(dirname, x)),
+                       includefiles)
+    subnode['includefiles'] = includefiles
+    subnode['maxdepth'] = options.get('maxdepth', -1)
+    return [subnode]
+
+toctree_directive.content = 1
+toctree_directive.options = {'maxdepth': int}
+directives.register_directive('toctree', toctree_directive)
+
+
+
 def desc_directive(desctype, arguments, options, content, lineno,
                    content_offset, block_text, state, state_machine):
     node = addnodes.desc()



More information about the Checkins mailing list