From: Richard J. <rj...@ek...> - 2002-08-15 05:08:16
|
I've thrown together a Zope interface to the docutils project's ReStructuredText format. It offers: - through-the-web editing - handling of errors (with control over the reporting level) - FTP editing (with access to the config properties and errors) - extraction of the document title from the text itself - configuration of the stylesheet used - source view It's in the docutils sandbox CVS: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docutils/sandbox/richard/ZReST/ You'll need to install docutils too :) Richard |
From: <pf...@ar...> - 2002-08-15 09:13:40
|
Hi, Richard Jones wrote: > I've thrown together a Zope interface to the docutils project's > ReStructuredText format. [...] Exciting! I couldn't refuse the temptation to try this out at once. And it works: The add menu of the ZMI displays the new object type 'ReStructuredText Document' and the HTML rendering happens as expected. > You'll need to install docutils too :) Obviously. I've downloaded a docutils-snapshot.tgz on August 13th. On my RPM-based Linux system the default Python is 2.2, but Zope 2.5.1 still recommends Python 2.1. So I did python2.1 setup.py install in the directory, where I untarred docutils-snapshot.tgz, which created and populated the directory /usr/lib/python2.1/site-packages/docutils. Works like a charme. What I would like to do next is integrating ReST with CMFWiki. This is a wiki clone product for Zope used within the context of the Zope CMF, the Zope content management framework. This Product contains a module called 'CMFWikiPage.py', which currently calls the html_with_references() function exported by the Zope StructuredText module to render classic structured text. The string returned from this function is than further processed to setup the interwiki links and such. I will try to come up with a patch to CMFWikiPage which will than use ReST as an alternative format (and as the default for new Wiki pages). To aid this I would find it very useful, if either the ZReST package or docutils could export a wrapper function implementing a very simple API similar to this found in Zope/StructuredText/StructuredText: def html_with_references(text, level=1, header=1) """ Given a string 'text' containing structured text markup returns this 'text' rendered as HTML """ If such a simple API or something similar is already present either in ZReST or in the docutils package itself, please apologize my ignorance and give me a hint where to look for this. Regards and many thanks, Peter -- Peter Funk, Oldenburger Str.86, D-27777 Ganderkesee, Germany, Fax:+49 4222950260 office: +49 421 20419-0 (ArtCom GmbH, Grazer Str.8, D-28359 Bremen, Germany) |
From: Richard J. <rj...@ek...> - 2002-08-15 11:14:07
|
On Thu, 15 Aug 2002 7:06 pm, Peter Funk wrote: > To aid this I would find it very useful, if either the ZReST package or > docutils could export a wrapper function implementing a very simple API > similar to this found in Zope/StructuredText/StructuredText: > def html_with_references(text, level=1, header=1) > """ > Given a string 'text' containing structured text markup > returns this 'text' rendered as HTML > """ ReStructuredText takes some time to convert source text into HTML (sometimes several seconds for longish documents). I'd advise going for a more integrated approach that can compile the source text once. If you're really keen to actually go with the html_with_references path - borrow the code from the ZReST.render() method and you'll have your text to HTML conversion. Richard |
From: Dethe E. <de...@ma...> - 2002-08-15 16:33:51
|
Richard, This is great! I've been half-heartedly working on an External Method so I could use reST through Zope, but this is much better. My only issue now is that I use Zope Local File System extensively, for keeping my documentation under CVS. I tried a naive mapping of ZReST to *.rst files, but that didn't work. Any ideas how these can be made to work together? --Dethe |
From: Richard J. <rj...@ek...> - 2002-08-16 00:34:46
|
On Fri, 16 Aug 2002 2:34 am, Dethe Elza wrote: > This is great! I've been half-heartedly working on an External Method > so I could use reST through Zope, but this is much better. External Methods yecch :) > My only issue now is that I use Zope Local File System extensively, for > keeping my documentation under CVS. I tried a naive mapping of ZReST to > *.rst files, but that didn't work. Any ideas how these can be made to > work together? Sorry, I know nothing about the Local File System stuff. Richard |
From: <pf...@ar...> - 2002-08-16 09:43:47
|
Hi, Richard Jones: > On Fri, 16 Aug 2002 2:34 am, Dethe Elza wrote: > > This is great! I've been half-heartedly working on an External Method > > so I could use reST through Zope, but this is much better. > > External Methods yecch :) > > > > My only issue now is that I use Zope Local File System extensively, for > > keeping my documentation under CVS. I tried a naive mapping of ZReST to > > *.rst files, but that didn't work. Any ideas how these can be made to > > work together? > > Sorry, I know nothing about the Local File System stuff. First of all let me thank you all for the great work. I believe this is only one of the many places, where **StructuredText** has been used in Zope. Another important place is the DTML format attribute of DTML variables. For example (looked up from Zope 2.5.1) there is the module ``lib/python/DocumentTemplate/DT_vars.py``, which implements the DTML language construct:: <dtml-var foobar fmt="structured-text"> This is done using the format dispatcher dictionary ``special_formats``, which contains a reference to the following small function:: def structured_text(v, name='(Unknown name)', md={}): global StructuredText if StructuredText is None: from StructuredText.StructuredText import HTML if isinstance(v,StringType): txt = v elif aq_base(v).meta_type in ['DTML Document','DTML Method']: txt = aq_base(v).read_raw() else: txt = str(v) return HTML(txt,level=3,header=0) My idea is to add a new entry called ``restructured-text`` or simply ``rest`` to this dispatcher dictionary. Yesterday I played around with **CMFWiki** and had a very similar situation. There is a simple wrapper function using the same class HTML. So for further integration of ReST as an alternative replacement for `StructuredText` I believe it makes sense to come up with a wrapper class, which implements the API of the class HTML of StructuredText. Questions ========= * What to do with the parameters ``level`` and ``header`` within **ReST**? * Where should we put this class? Would be an extended **ZReST** Zope product the right place? Regards, Peter -- Peter Funk, Oldenburger Str.86, D-27777 Ganderkesee, Germany office: +49 421 20419-0 (ArtCom GmbH, Grazer Str.8, D-28359 Bremen, Germany) |