[Epydoc-commits] SF.net SVN: epydoc: [1447] trunk/epydoc/src/epydoc
Brought to you by:
edloper
From: <dva...@us...> - 2007-02-10 22:19:37
|
Revision: 1447 http://svn.sourceforge.net/epydoc/?rev=1447&view=rev Author: dvarrazzo Date: 2007-02-10 14:19:35 -0800 (Sat, 10 Feb 2007) Log Message: ----------- - Added 'python' directive to reporesent colourized Python code using reST markup. Modified Paths: -------------- trunk/epydoc/src/epydoc/markup/restructuredtext.py trunk/epydoc/src/epydoc/test/restructuredtext.doctest Modified: trunk/epydoc/src/epydoc/markup/restructuredtext.py =================================================================== --- trunk/epydoc/src/epydoc/markup/restructuredtext.py 2007-02-10 20:34:07 UTC (rev 1446) +++ trunk/epydoc/src/epydoc/markup/restructuredtext.py 2007-02-10 22:19:35 UTC (rev 1447) @@ -77,7 +77,7 @@ from docutils.nodes import NodeVisitor, Text, SkipChildren from docutils.nodes import SkipNode, TreeCopyVisitor from docutils.frontend import OptionParser -from docutils.parsers.rst import directives +from docutils.parsers.rst import directives, Directive import docutils.nodes import docutils.transforms.frontmatter import docutils.transforms @@ -87,7 +87,8 @@ from epydoc.markup import * from epydoc.apidoc import ModuleDoc, ClassDoc from epydoc.docwriter.dotgraph import * -from epydoc.markup.doctest import doctest_to_html, doctest_to_latex +from epydoc.markup.doctest import doctest_to_html, doctest_to_latex, \ + HTMLDoctestColorizer #: A dictionary whose keys are the "consolidated fields" that are #: recognized by epydoc; and whose values are the corresponding epydoc @@ -619,9 +620,30 @@ raise SkipNode() def visit_doctest_block(self, node): - self.body.append(doctest_to_html(str(node[0]))) + pysrc = str(node[0]) + if node.get('codeblock'): + self.body.append(HTMLDoctestColorizer().colorize_codeblock(pysrc)) + else: + self.body.append(doctest_to_html(str(node[0]))) raise SkipNode() + +class PythonCodeDirective(Directive): + required_arguments = 0 + optional_arguments = 0 + has_content = True + + def run(self): + self.assert_has_content() + text = '\n'.join(self.content) + + #node = docutils.nodes.doctest_block(rawsource=text) + #self.state.nested_parse(self.content, self.content_offset, node) + node = docutils.nodes.doctest_block(text, text, codeblock=True) + return [ node ] + +directives.register_directive('python', PythonCodeDirective) + ###################################################################### #{ Graph Generation Directives ###################################################################### Modified: trunk/epydoc/src/epydoc/test/restructuredtext.doctest =================================================================== --- trunk/epydoc/src/epydoc/test/restructuredtext.doctest 2007-02-10 20:34:07 UTC (rev 1446) +++ trunk/epydoc/src/epydoc/test/restructuredtext.doctest 2007-02-10 22:19:35 UTC (rev 1447) @@ -75,3 +75,36 @@ ... Other stuff after a tag. ... """) (u'This is the first line.', True) + +Python code +=========== +reStructuredText markup defines a ``python`` directive to represent a block +as colorized Python code. + +>>> err = [] +>>> p = restructuredtext.parse_docstring( +... """A test module +... +... .. python:: +... +... # This is some Python code +... def foo(): +... pass +... +... class Foo: +... def __init__(self): +... pass +... """, err) +>>> err +[] +>>> print p.to_html(None) +<p>A test module</p> +<pre class="py-doctest"> +<span class="py-comment"># This is some Python code</span> +<span class="py-keyword">def</span> <span class="py-defname">foo</span>(): + <span class="py-keyword">pass</span> +<BLANKLINE> +<span class="py-keyword">class</span> <span class="py-defname">Foo</span>: + <span class="py-keyword">def</span> <span class="py-defname">__init__</span>(self): + <span class="py-keyword">pass</span></pre> +<BLANKLINE> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |