##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
#
##############################################################################
"""
Consider the following example::
>>> from structuredtext.stng import structurize
>>> from structuredtext.document import DocumentWithImages
>>> from structuredtext.html import HTMLWithImages
>>> from structuredtext.docbook import DocBook
We first need to structurize the string and make a full-blown
document out of it:
>>> struct = structurize(structured_string)
>>> doc = DocumentWithImages()(struct)
Now feed it to some output generator, in this case HTML or DocBook:
>>> output = HTMLWithImages()(doc, level=1)
>>> output = DocBook()(doc, level=1)
$Id: __init__.py 67724 2006-04-28 16:52:39Z jim $
"""
__docformat__ = 'restructuredtext'
import re
from zope.structuredtext import stng, document, html
from string import letters
def stx2html(aStructuredString, level=1, header=1):
st = stng.structurize(aStructuredString)
doc = document.DocumentWithImages()(st)
return html.HTMLWithImages()(doc, header=header, level=level)
def stx2htmlWithReferences(text, level=1, header=1):
text = re.sub(
r'[\000\n]\.\. \[([0-9_%s-]+)\]' % letters,
r'\n [\1]',
text)
text = re.sub(
r'([\000- ,])\[(?P[[0-9_%s-]+)\]([\000- ,.:])' % letters,
r'\1[\2]\3',
text)
text = re.sub(
r'([\000- ,])\[([^]]+)\.html\]([\000- ,.:])',
r'\1[\2]\3',
text)
return stx2html(text, level=level, header=header)
]