[Checkins] SVN: zope.app.renderer/tags/3.5.0/ Tag 3.5.0
Dan Korostelev
nadako at gmail.com
Sat Jan 17 07:56:06 EST 2009
Log message for revision 94786:
Tag 3.5.0
Changed:
A zope.app.renderer/tags/3.5.0/
D zope.app.renderer/tags/3.5.0/CHANGES.txt
A zope.app.renderer/tags/3.5.0/CHANGES.txt
U zope.app.renderer/tags/3.5.0/setup.py
D zope.app.renderer/tags/3.5.0/src/zope/app/renderer/DEPENDENCIES.cfg
D zope.app.renderer/tags/3.5.0/src/zope/app/renderer/SETUP.cfg
D zope.app.renderer/tags/3.5.0/src/zope/app/renderer/meta.zcml
D zope.app.renderer/tags/3.5.0/src/zope/app/renderer/metaconfigure.py
D zope.app.renderer/tags/3.5.0/src/zope/app/renderer/plaintext.py
A zope.app.renderer/tags/3.5.0/src/zope/app/renderer/plaintext.py
D zope.app.renderer/tags/3.5.0/src/zope/app/renderer/renderer-configure.zcml
D zope.app.renderer/tags/3.5.0/src/zope/app/renderer/renderer-meta.zcml
D zope.app.renderer/tags/3.5.0/src/zope/app/renderer/rest.py
A zope.app.renderer/tags/3.5.0/src/zope/app/renderer/rest.py
D zope.app.renderer/tags/3.5.0/src/zope/app/renderer/stx.py
A zope.app.renderer/tags/3.5.0/src/zope/app/renderer/stx.py
-=-
Deleted: zope.app.renderer/tags/3.5.0/CHANGES.txt
===================================================================
--- zope.app.renderer/trunk/CHANGES.txt 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/CHANGES.txt 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1,17 +0,0 @@
-=======
-CHANGES
-=======
-
-3.5.0 (unreleased)
-------------------
-
-- Adapted to docutils 0.5 for ReST rendering: get rid of the
- ZopeTranslator class, because docutils changed the way it
- uses translator so previous implementation doesn't work anymore.
- Instead, use publish_parts and join needed parts in the ``render``
- method of the renderer itself.
-
-3.4.0 (2007-10-27)
-------------------
-
-- Initial release independent of the main Zope tree.
Copied: zope.app.renderer/tags/3.5.0/CHANGES.txt (from rev 94785, zope.app.renderer/trunk/CHANGES.txt)
===================================================================
--- zope.app.renderer/tags/3.5.0/CHANGES.txt (rev 0)
+++ zope.app.renderer/tags/3.5.0/CHANGES.txt 2009-01-17 12:56:06 UTC (rev 94786)
@@ -0,0 +1,21 @@
+=======
+CHANGES
+=======
+
+3.5.0 (2009-01-17)
+------------------
+
+- Adapted to docutils 0.5 for ReST rendering: get rid of the
+ ZopeTranslator class, because docutils changed the way it
+ uses translator so previous implementation doesn't work anymore.
+ Instead, use publish_parts and join needed parts in the ``render``
+ method of the renderer itself.
+
+- Removed deprecated meta.zcml stuff and zpkg stuff.
+
+- Replaced __used_for__ with zope.component.adapts calls.
+
+3.4.0 (2007-10-27)
+------------------
+
+- Initial release independent of the main Zope tree.
Modified: zope.app.renderer/tags/3.5.0/setup.py
===================================================================
--- zope.app.renderer/trunk/setup.py 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/setup.py 2009-01-17 12:56:06 UTC (rev 94786)
@@ -22,7 +22,7 @@
return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
setup(name='zope.app.renderer',
- version = '3.5.0dev',
+ version = '3.5.0',
author='Zope Corporation and Contributors',
author_email='zope-dev at zope.org',
description='Text Renderer Framework',
Deleted: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/DEPENDENCIES.cfg
===================================================================
--- zope.app.renderer/trunk/src/zope/app/renderer/DEPENDENCIES.cfg 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/DEPENDENCIES.cfg 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1,8 +0,0 @@
-docutils
-zope.app
-zope.component
-zope.configuration
-zope.interface
-zope.schema
-zope.structuredtext
-zope.testing
Deleted: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/SETUP.cfg
===================================================================
--- zope.app.renderer/trunk/src/zope/app/renderer/SETUP.cfg 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/SETUP.cfg 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1,5 +0,0 @@
-# Tell zpkg how to install the ZCML slugs.
-
-<data-files zopeskel/etc/package-includes>
- renderer-*.zcml
-</data-files>
Deleted: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/meta.zcml
===================================================================
--- zope.app.renderer/trunk/src/zope/app/renderer/meta.zcml 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/meta.zcml 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1,12 +0,0 @@
-<configure
- xmlns="http://namespaces.zope.org/zope"
- xmlns:meta="http://namespaces.zope.org/meta">
-
- <!-- BBB 2006/02/24, to be removed after 12 months -->
- <meta:directive
- namespace="http://namespaces.zope.org/renderer"
- name="renderer"
- schema=".metaconfigure.IRendererDirective"
- handler=".metaconfigure.renderer" />
-
-</configure>
\ No newline at end of file
Deleted: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/metaconfigure.py
===================================================================
--- zope.app.renderer/trunk/src/zope/app/renderer/metaconfigure.py 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/metaconfigure.py 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1,85 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 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.
-#
-##############################################################################
-"""Renderer configuration code
-
-$Id$
-"""
-# BBB 2006/02/24, to be removed after 12 months
-
-import warnings
-from zope.component.zcml import handler
-from zope.configuration.fields import GlobalInterface, GlobalObject
-from zope.interface import Interface
-
-class IRendererDirective(Interface):
- """
- *BBB: DEPRECATED*
-
- The 'renderer' directive has been deprecated and will be
- removed in Zope 3.5. Use the 'view' directive instead.
-
- Example::
-
- <browser:view
- name=""
- for="some.interface"
- class="some.class"
- permission="zope.Public"
- />
-
- Register a renderer for a particular output interface, such as
- IBrowserView.
- """
-
- sourceType = GlobalInterface(
- title=u"Source Type Interface",
- description=u"Specifies an interface for of a particular source type.",
- required=True)
-
- for_ = GlobalInterface(
- title=u"Interface of the output type",
- description=u"Specifies the interface of the output type (i.e. "
- u"browser) for which this view is being registered.",
- required=True)
-
- factory = GlobalObject(
- title=u"Factory",
- description=u"Specifies the factory that is used to create the "
- u"view on the source.",
- required=True)
-
-# TODO: Does not seem to be tested
-def renderer(_context, sourceType, for_, factory):
- def dottify(obj):
- try:
- return obj.__module__ + '.' + obj.__name__
- except AttributeError:
- return '...'
- warnings.warn_explicit(
- "The 'renderer' directive has been deprecated and will be "
- "removed in Zope 3.5. Use the 'view' directive instead:\n"
- ' <browser:view\n'
- ' name=""\n'
- ' for="%s"\n'
- ' class="%s"\n'
- ' permission="zope.Public"\n'
- ' />' % (dottify(sourceType), dottify(factory)),
- DeprecationWarning, _context.info.file, _context.info.line)
-
- _context.action(
- discriminator = ('view', sourceType, u'', for_, 'default'),
- callable = handler,
- args = ('provideAdapter',
- (sourceType,), for_, u'', factory, 'default')
- )
Deleted: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/plaintext.py
===================================================================
--- zope.app.renderer/trunk/src/zope/app/renderer/plaintext.py 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/plaintext.py 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1,54 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2003 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.
-#
-##############################################################################
-"""Plain Text Renderer Classes
-
-$Id$
-"""
-__docformat__ = 'restructuredtext'
-
-import cgi
-
-from zope.interface import implements
-from zope.publisher.browser import BrowserView
-
-from zope.app.renderer.i18n import ZopeMessageFactory as _
-from zope.app.renderer.interfaces import ISource, IHTMLRenderer
-from zope.app.renderer import SourceFactory
-
-class IPlainTextSource(ISource):
- """Marker interface for a plain text source. Note that an implementation
- of this interface should always derive from unicode or behave like a
- unicode class."""
-
-PlainTextSourceFactory = SourceFactory(
- IPlainTextSource, _("Plain Text"), _("Plain Text Source"))
-
-
-class PlainTextToHTMLRenderer(BrowserView):
- r"""A view to convert from Plain Text to HTML.
-
- Example::
-
- >>> from zope.publisher.browser import TestRequest
- >>> source = PlainTextSourceFactory(u'I hear that 1 > 2.\n')
- >>> renderer = PlainTextToHTMLRenderer(source, TestRequest())
- >>> renderer.render()
- u'I hear that 1 > 2.<br />\n'
- """
- implements(IHTMLRenderer)
- __used_for__ = IPlainTextSource
-
- def render(self):
- "See zope.app.interfaces.renderer.IHTMLRenderer"
- return cgi.escape(self.context).replace('\n', '<br />\n')
Copied: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/plaintext.py (from rev 94785, zope.app.renderer/trunk/src/zope/app/renderer/plaintext.py)
===================================================================
--- zope.app.renderer/tags/3.5.0/src/zope/app/renderer/plaintext.py (rev 0)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/plaintext.py 2009-01-17 12:56:06 UTC (rev 94786)
@@ -0,0 +1,56 @@
+##############################################################################
+#
+# Copyright (c) 2003 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.
+#
+##############################################################################
+"""Plain Text Renderer Classes
+
+$Id$
+"""
+__docformat__ = 'restructuredtext'
+
+import cgi
+
+from zope.component import adapts
+from zope.interface import implements
+from zope.publisher.browser import BrowserView
+from zope.publisher.interfaces.browser import IBrowserRequest
+
+from zope.app.renderer.i18n import ZopeMessageFactory as _
+from zope.app.renderer.interfaces import ISource, IHTMLRenderer
+from zope.app.renderer import SourceFactory
+
+class IPlainTextSource(ISource):
+ """Marker interface for a plain text source. Note that an implementation
+ of this interface should always derive from unicode or behave like a
+ unicode class."""
+
+PlainTextSourceFactory = SourceFactory(
+ IPlainTextSource, _("Plain Text"), _("Plain Text Source"))
+
+
+class PlainTextToHTMLRenderer(BrowserView):
+ r"""A view to convert from Plain Text to HTML.
+
+ Example::
+
+ >>> from zope.publisher.browser import TestRequest
+ >>> source = PlainTextSourceFactory(u'I hear that 1 > 2.\n')
+ >>> renderer = PlainTextToHTMLRenderer(source, TestRequest())
+ >>> renderer.render()
+ u'I hear that 1 > 2.<br />\n'
+ """
+ implements(IHTMLRenderer)
+ adapts(IPlainTextSource, IBrowserRequest)
+
+ def render(self):
+ "See zope.app.interfaces.renderer.IHTMLRenderer"
+ return cgi.escape(self.context).replace('\n', '<br />\n')
Deleted: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/renderer-configure.zcml
===================================================================
--- zope.app.renderer/trunk/src/zope/app/renderer/renderer-configure.zcml 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/renderer-configure.zcml 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1 +0,0 @@
-<include package="zope.app.renderer"/>
Deleted: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/renderer-meta.zcml
===================================================================
--- zope.app.renderer/trunk/src/zope/app/renderer/renderer-meta.zcml 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/renderer-meta.zcml 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1 +0,0 @@
-<include package="zope.app.renderer" file="meta.zcml"/>
Deleted: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/rest.py
===================================================================
--- zope.app.renderer/trunk/src/zope/app/renderer/rest.py 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/rest.py 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1,110 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2003 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.
-#
-##############################################################################
-"""ReStructured Text Renderer Classes
-
-$Id$
-"""
-__docformat__ = 'restructuredtext'
-
-import docutils.core
-
-from zope.interface import implements
-from zope.publisher.browser import BrowserView
-
-from zope.app.renderer.i18n import ZopeMessageFactory as _
-from zope.app.renderer.interfaces import ISource, IHTMLRenderer
-from zope.app.renderer import SourceFactory
-
-
-class IReStructuredTextSource(ISource):
- """Marker interface for a restructured text source. Note that an
- implementation of this interface should always derive from unicode or
- behave like a unicode class."""
-
-
-ReStructuredTextSourceFactory = SourceFactory(
- IReStructuredTextSource, _("ReStructured Text (ReST)"),
- _("ReStructured Text (ReST) Source"))
-
-class ReStructuredTextToHTMLRenderer(BrowserView):
- r"""An Adapter to convert from Restructured Text to HTML.
-
- Examples::
-
- >>> from zope.publisher.browser import TestRequest
- >>> source = ReStructuredTextSourceFactory(u'''
- ... This is source.
- ...
- ... Header 3
- ... --------
- ... This is more source.
- ... ''')
- >>> renderer = ReStructuredTextToHTMLRenderer(source, TestRequest())
- >>> print renderer.render().strip()
- <p>This is source.</p>
- <div class="section" id="header-3">
- <h3>Header 3</h3>
- <p>This is more source.</p>
- </div>
- """
-
-
- implements(IHTMLRenderer)
- __used_for__ = IReStructuredTextSource
-
- def render(self, settings_overrides={}):
- """See zope.app.interfaces.renderer.IHTMLRenderer
-
- Let's make sure that inputted unicode stays as unicode:
-
- >>> renderer = ReStructuredTextToHTMLRenderer(u'b\xc3h', None)
- >>> repr(renderer.render())
- "u'<p>b\\\\xc3h</p>\\\\n'"
-
- >>> text = u'''
- ... =========
- ... Heading 1
- ... =========
- ...
- ... hello world
- ...
- ... Heading 2
- ... ========='''
- >>> overrides = {'initial_header_level': 2,
- ... 'doctitle_xform': 0 }
- >>> renderer = ReStructuredTextToHTMLRenderer(text, None)
- >>> print renderer.render(overrides)
- <div class="section" id="heading-1">
- <h2>Heading 1</h2>
- <p>hello world</p>
- <div class="section" id="heading-2">
- <h3>Heading 2</h3>
- </div>
- </div>
- <BLANKLINE>
- """
- # default settings for the renderer
- overrides = {
- 'halt_level': 6,
- 'input_encoding': 'unicode',
- 'output_encoding': 'unicode',
- 'initial_header_level': 3,
- }
- overrides.update(settings_overrides)
- parts = docutils.core.publish_parts(
- self.context,
- writer_name='html',
- settings_overrides=overrides,
- )
- return u''.join((parts['body_pre_docinfo'], parts['docinfo'], parts['body']))
Copied: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/rest.py (from rev 94785, zope.app.renderer/trunk/src/zope/app/renderer/rest.py)
===================================================================
--- zope.app.renderer/tags/3.5.0/src/zope/app/renderer/rest.py (rev 0)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/rest.py 2009-01-17 12:56:06 UTC (rev 94786)
@@ -0,0 +1,112 @@
+##############################################################################
+#
+# Copyright (c) 2003 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.
+#
+##############################################################################
+"""ReStructured Text Renderer Classes
+
+$Id$
+"""
+__docformat__ = 'restructuredtext'
+
+import docutils.core
+
+from zope.component import adapts
+from zope.interface import implements
+from zope.publisher.browser import BrowserView
+from zope.publisher.interfaces.browser import IBrowserRequest
+
+from zope.app.renderer.i18n import ZopeMessageFactory as _
+from zope.app.renderer.interfaces import ISource, IHTMLRenderer
+from zope.app.renderer import SourceFactory
+
+
+class IReStructuredTextSource(ISource):
+ """Marker interface for a restructured text source. Note that an
+ implementation of this interface should always derive from unicode or
+ behave like a unicode class."""
+
+
+ReStructuredTextSourceFactory = SourceFactory(
+ IReStructuredTextSource, _("ReStructured Text (ReST)"),
+ _("ReStructured Text (ReST) Source"))
+
+class ReStructuredTextToHTMLRenderer(BrowserView):
+ r"""An Adapter to convert from Restructured Text to HTML.
+
+ Examples::
+
+ >>> from zope.publisher.browser import TestRequest
+ >>> source = ReStructuredTextSourceFactory(u'''
+ ... This is source.
+ ...
+ ... Header 3
+ ... --------
+ ... This is more source.
+ ... ''')
+ >>> renderer = ReStructuredTextToHTMLRenderer(source, TestRequest())
+ >>> print renderer.render().strip()
+ <p>This is source.</p>
+ <div class="section" id="header-3">
+ <h3>Header 3</h3>
+ <p>This is more source.</p>
+ </div>
+ """
+
+
+ implements(IHTMLRenderer)
+ adapts(IReStructuredTextSource, IBrowserRequest)
+
+ def render(self, settings_overrides={}):
+ """See zope.app.interfaces.renderer.IHTMLRenderer
+
+ Let's make sure that inputted unicode stays as unicode:
+
+ >>> renderer = ReStructuredTextToHTMLRenderer(u'b\xc3h', None)
+ >>> repr(renderer.render())
+ "u'<p>b\\\\xc3h</p>\\\\n'"
+
+ >>> text = u'''
+ ... =========
+ ... Heading 1
+ ... =========
+ ...
+ ... hello world
+ ...
+ ... Heading 2
+ ... ========='''
+ >>> overrides = {'initial_header_level': 2,
+ ... 'doctitle_xform': 0 }
+ >>> renderer = ReStructuredTextToHTMLRenderer(text, None)
+ >>> print renderer.render(overrides)
+ <div class="section" id="heading-1">
+ <h2>Heading 1</h2>
+ <p>hello world</p>
+ <div class="section" id="heading-2">
+ <h3>Heading 2</h3>
+ </div>
+ </div>
+ <BLANKLINE>
+ """
+ # default settings for the renderer
+ overrides = {
+ 'halt_level': 6,
+ 'input_encoding': 'unicode',
+ 'output_encoding': 'unicode',
+ 'initial_header_level': 3,
+ }
+ overrides.update(settings_overrides)
+ parts = docutils.core.publish_parts(
+ self.context,
+ writer_name='html',
+ settings_overrides=overrides,
+ )
+ return u''.join((parts['body_pre_docinfo'], parts['docinfo'], parts['body']))
Deleted: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/stx.py
===================================================================
--- zope.app.renderer/trunk/src/zope/app/renderer/stx.py 2009-01-17 12:38:09 UTC (rev 94784)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/stx.py 2009-01-17 12:56:06 UTC (rev 94786)
@@ -1,73 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2003 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.
-#
-##############################################################################
-"""Structured Text Renderer Classes
-
-$Id$
-"""
-__docformat__ = 'restructuredtext'
-
-import re
-
-from zope.interface import implements
-from zope.structuredtext.document import Document
-from zope.structuredtext.html import HTML
-from zope.publisher.browser import BrowserView
-
-from zope.app.renderer.i18n import ZopeMessageFactory as _
-from zope.app.renderer.interfaces import ISource, IHTMLRenderer
-from zope.app.renderer import SourceFactory
-
-
-class IStructuredTextSource(ISource):
- """Marker interface for a structured text source. Note that an
- implementation of this interface should always derive from unicode or
- behave like a unicode class."""
-
-StructuredTextSourceFactory = SourceFactory(
- IStructuredTextSource, _("Structured Text (STX)"),
- _("Structured Text (STX) Source"))
-
-
-class StructuredTextToHTMLRenderer(BrowserView):
- r"""A view to convert from Plain Text to HTML.
-
- Example::
-
- >>> from zope.publisher.browser import TestRequest
- >>> source = StructuredTextSourceFactory(u'This is source.')
- >>> renderer = StructuredTextToHTMLRenderer(source, TestRequest())
- >>> renderer.render()
- u'<p>This is source.</p>\n'
-
- Make sure that unicode works as well::
-
- >>> source = StructuredTextSourceFactory(u'This is \xc3\x9c.')
- >>> renderer = StructuredTextToHTMLRenderer(source, TestRequest())
- >>> renderer.render()
- u'<p>This is \xc3\x9c.</p>\n'
- """
- implements(IHTMLRenderer)
- __used_for__ = IStructuredTextSource
-
- def render(self):
- "See zope.app.interfaces.renderer.IHTMLRenderer"
- encoded = self.context.encode('UTF-8')
- doc = Document()(encoded)
- html = HTML()(doc)
-
- # strip html & body added by some zope versions
- html = re.sub(
- r'(?sm)^<html.*<body.*?>\n(.*)</body>\n</html>\n',r'\1', html)
-
- return html.decode('UTF-8')
Copied: zope.app.renderer/tags/3.5.0/src/zope/app/renderer/stx.py (from rev 94785, zope.app.renderer/trunk/src/zope/app/renderer/stx.py)
===================================================================
--- zope.app.renderer/tags/3.5.0/src/zope/app/renderer/stx.py (rev 0)
+++ zope.app.renderer/tags/3.5.0/src/zope/app/renderer/stx.py 2009-01-17 12:56:06 UTC (rev 94786)
@@ -0,0 +1,75 @@
+##############################################################################
+#
+# Copyright (c) 2003 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.
+#
+##############################################################################
+"""Structured Text Renderer Classes
+
+$Id$
+"""
+__docformat__ = 'restructuredtext'
+
+import re
+
+from zope.component import adapts
+from zope.interface import implements
+from zope.structuredtext.document import Document
+from zope.structuredtext.html import HTML
+from zope.publisher.browser import BrowserView
+from zope.publisher.interfaces.browser import IBrowserRequest
+
+from zope.app.renderer.i18n import ZopeMessageFactory as _
+from zope.app.renderer.interfaces import ISource, IHTMLRenderer
+from zope.app.renderer import SourceFactory
+
+
+class IStructuredTextSource(ISource):
+ """Marker interface for a structured text source. Note that an
+ implementation of this interface should always derive from unicode or
+ behave like a unicode class."""
+
+StructuredTextSourceFactory = SourceFactory(
+ IStructuredTextSource, _("Structured Text (STX)"),
+ _("Structured Text (STX) Source"))
+
+
+class StructuredTextToHTMLRenderer(BrowserView):
+ r"""A view to convert from Plain Text to HTML.
+
+ Example::
+
+ >>> from zope.publisher.browser import TestRequest
+ >>> source = StructuredTextSourceFactory(u'This is source.')
+ >>> renderer = StructuredTextToHTMLRenderer(source, TestRequest())
+ >>> renderer.render()
+ u'<p>This is source.</p>\n'
+
+ Make sure that unicode works as well::
+
+ >>> source = StructuredTextSourceFactory(u'This is \xc3\x9c.')
+ >>> renderer = StructuredTextToHTMLRenderer(source, TestRequest())
+ >>> renderer.render()
+ u'<p>This is \xc3\x9c.</p>\n'
+ """
+ implements(IHTMLRenderer)
+ adapts(IStructuredTextSource, IBrowserRequest)
+
+ def render(self):
+ "See zope.app.interfaces.renderer.IHTMLRenderer"
+ encoded = self.context.encode('UTF-8')
+ doc = Document()(encoded)
+ html = HTML()(doc)
+
+ # strip html & body added by some zope versions
+ html = re.sub(
+ r'(?sm)^<html.*<body.*?>\n(.*)</body>\n</html>\n',r'\1', html)
+
+ return html.decode('UTF-8')
More information about the Checkins
mailing list