[Epydoc-commits] SF.net SVN: epydoc: [1540] trunk/epydoc/src/tools/rst2html.py
Brought to you by:
edloper
From: <dva...@us...> - 2007-02-20 09:44:42
|
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. |