----- Original Message ----- From: "Peter Funk" <pf@artcom-gmbh.de> To: "Richard Jones" <rjones@ekit-inc.com> Cc: "Dethe Elza" <delza@mac.com>; "Zope List" <zope@zope.org>; <docutils-develop@lists.sourceforge.net> Sent: Friday, August 16, 2002 11:34 Subject: [Zope] Re: [Docutils-develop] ReStructuredText now in Zope
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**?
level is the default level where the <Hx> tags start (the default value is 3 - don't ask why). header is a flag to either produce a valid HTML document header or not (<HTML>....<HEAD>...<BODY>).
* Where should we put this class? Would be an extended **ZReST** Zope product the right place?
If it is a product then the Products folder would be the right place. This would allow you to do some moneky patching if necessary. -aj