[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.
|