diff --git a/wiki/README.txt b/wiki/README.txt index 7c8a787..90e9c7e 100644 --- a/wiki/README.txt +++ b/wiki/README.txt @@ -26,8 +26,12 @@ We format the content of the start page using the restructured text format. As we have not yet registered any formatting plugins rendering the page returns it content unchanged. + >>> tree = startPage.parse() + >>> print startPage.render() - **Welcome to the Demo Wiki** +

Welcome to the Demo Wiki

+ +**Welcome to the Demo Wiki** A Very Basic Wiki Format diff --git a/wiki/base/wiki.py b/wiki/base/wiki.py index 10f4c0a..4b16923 100644 --- a/wiki/base/wiki.py +++ b/wiki/base/wiki.py @@ -22,6 +22,8 @@ A Wiki manager managing wikis and wiki-related objects, esp plugins. $Id$ """ +from docutils.core import publish_doctree, publish_from_doctree +from docutils.writers.html4css1 import HTMLTranslator, Writer from zope.interface import implements from cybertools.wiki.interfaces import IWikiManager, IWiki, IWikiPage @@ -74,7 +76,15 @@ class WikiPage(object): return self.write(self.parse()) def parse(self): - return self.text + return publish_doctree(self.text) def write(self, tree): - return tree + writer = Writer() + writer.translator_class = HTMLBodyTranslator + return publish_from_doctree(tree, writer=writer) + + +class HTMLBodyTranslator(HTMLTranslator): + + def astext(self): + return u''.join(self.body_pre_docinfo + self.docinfo + self.body)