summaryrefslogtreecommitdiff
path: root/doc/ext.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-03-16 11:19:26 +0000
committerGeorg Brandl <georg@python.org>2008-03-16 11:19:26 +0000
commitca528099f673fcc98c36004a56cff6a21b5c61e4 (patch)
tree24bd20c728be044d2acf74d1426ea3624b8e8e8e /doc/ext.py
parent14da7605e4be71f6370e80375a33d6f4ab012b74 (diff)
downloadsphinx-git-ca528099f673fcc98c36004a56cff6a21b5c61e4.tar.gz
Update documentation, add more content.
Diffstat (limited to 'doc/ext.py')
-rw-r--r--doc/ext.py38
1 files changed, 36 insertions, 2 deletions
diff --git a/doc/ext.py b/doc/ext.py
index 581ea476a..460f1da28 100644
--- a/doc/ext.py
+++ b/doc/ext.py
@@ -1,4 +1,38 @@
+# -*- coding: utf-8 -*-
+"""
+ ext.py -- Sphinx extension for the Sphinx documentation
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ :copyright: 2008 by Georg Brandl.
+ :license: BSD.
+"""
+
+import re
+
+from sphinx import addnodes
+
+dir_sig_re = re.compile(r'\.\. ([^:]+)::(.*)$')
+
+def parse_directive(sig, signode):
+ if not sig.startswith('.'):
+ sig = '.. %s::' % sig
+ signode += addnodes.desc_name(sig, sig)
+ return
+ m = dir_sig_re.match(sig)
+ if not m:
+ signode += addnodes.desc_name(sig, sig)
+ return
+ name, args = m.groups()
+ name = '.. %s::' % name
+ signode += addnodes.desc_name(name, name)
+ signode += addnodes.desc_classname(args, args)
+
+
+def parse_role(sig, signode):
+ signode += addnodes.desc_name(':%s:' % sig, ':%s:' % sig)
+
+
def setup(app):
- app.add_description_unit('directive', 'dir', 'directive')
- app.add_description_unit('role', 'role', 'role')
+ app.add_description_unit('directive', 'dir', 'directive', parse_directive)
+ app.add_description_unit('role', 'role', 'role', parse_role)
app.add_description_unit('confval', 'confval', 'configuration value')