diff options
Diffstat (limited to 'sphinx/util/compat.py')
-rw-r--r-- | sphinx/util/compat.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/sphinx/util/compat.py b/sphinx/util/compat.py new file mode 100644 index 00000000..f7d646b6 --- /dev/null +++ b/sphinx/util/compat.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +""" + sphinx.util.compat + ~~~~~~~~~~~~~~~~~~ + + Stuff for docutils compatibility. + + :copyright: 2008 by Georg Brandl. + :license: BSD. +""" + +from docutils import nodes + + +# function missing in 0.5 SVN +def make_admonition(node_class, name, arguments, options, content, lineno, + content_offset, block_text, state, state_machine): + if not content: + error = state_machine.reporter.error( + 'The "%s" admonition is empty; content required.' % (name), + nodes.literal_block(block_text, block_text), line=lineno) + return [error] + text = '\n'.join(content) + admonition_node = node_class(text) + if arguments: + title_text = arguments[0] + textnodes, messages = state.inline_text(title_text, lineno) + admonition_node += nodes.title(title_text, '', *textnodes) + admonition_node += messages + if options.has_key('class'): + classes = options['class'] + else: + classes = ['admonition-' + nodes.make_id(title_text)] + admonition_node['classes'] += classes + state.nested_parse(content, content_offset, admonition_node) + return [admonition_node] + |