Revision: 1540
http://svn.sourceforge.net/epydoc/?rev=1540&view=rev
Author: dvarrazzo
Date: 2007-02-20 01:44:38 -0800 (Tue, 20 Feb 2007)
Log Message:
-----------
- rst2html to be used to produce other web pages other than the doctest.
- added support for '.. python::' directive
- added support for epydoc api directive
- the stylesheet is linked with the path properly mangled.
Modified Paths:
--------------
trunk/epydoc/src/tools/rst2html.py
Modified: trunk/epydoc/src/tools/rst2html.py
===================================================================
--- trunk/epydoc/src/tools/rst2html.py 2007-02-20 09:41:31 UTC (rev 1539)
+++ trunk/epydoc/src/tools/rst2html.py 2007-02-20 09:44:38 UTC (rev 1540)
@@ -12,16 +12,29 @@
import docutils.nodes
# Epydoc imports. Make sure path contains the 'right' epydoc.
-import sys
+import sys, os
sys.path.insert(0, '../')
-from epydoc.markup.doctest import doctest_to_html
+import epydoc.markup.restructuredtext # register the 'python' directive
+from epydoc.markup.doctest import doctest_to_html, doctest_to_latex, \
+ HTMLDoctestColorizer
+from epydoc.docwriter.xlink import ApiLinkReader
+
+class CustomizedReader(ApiLinkReader):
+ settings_defaults = (ApiLinkReader.settings_defaults or {}).copy()
+ settings_defaults.update({
+ 'external_api': [ 'epydoc' ],
+ 'external_api_root': [ 'epydoc:http://epydoc.sourceforge.net/api/' ],
+ 'external_api_file': [ 'epydoc:' + os.path.join(
+ os.path.split(__file__)[0], '../../html/api/api-objects.txt') ],
+ })
+
class CustomizedHTMLWriter(HTMLWriter):
settings_defaults = (HTMLWriter.settings_defaults or {}).copy()
settings_defaults.update({
- 'stylesheet': 'doctest.css',
- 'stylesheet_path': None,
- 'output_encoding': 'ascii',
+ 'stylesheet_path': os.path.normpath(os.path.join(
+ os.path.split(__file__)[0], '../../doc/custom.css')),
+ 'output_encoding': 'ascii',
'output_encoding_error_handler': 'xmlcharrefreplace',
'embed_stylesheet': False,
})
@@ -32,10 +45,20 @@
class CustomizedHTMLTranslator(HTMLTranslator):
def visit_doctest_block(self, node):
- self.body.append(doctest_to_html(str(node[0])))
+ pysrc = node[0].astext()
+ if node.get('codeblock'):
+ self.body.append(HTMLDoctestColorizer().colorize_codeblock(pysrc))
+ else:
+ self.body.append(doctest_to_html(pysrc))
raise docutils.nodes.SkipNode
description = ('Generates HTML documents from reStructuredText '
'documents. ' + default_description)
writer = CustomizedHTMLWriter()
-docutils.core.publish_cmdline(writer=writer, description=description)
+reader = CustomizedReader()
+
+#this doesn't work. Put ``.. default-role:: epydoc`` in the doctests instead.
+#docutils.parsers.rst.roles.DEFAULT_INTERPRETED_ROLE = 'epydoc'
+
+docutils.core.publish_cmdline(reader=reader, writer=writer,
+ description=description)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|