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::
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)
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")) @implementer(IHTMLRenderer) @adapter(IStructuredTextSource, IBrowserRequest) class StructuredTextToHTMLRenderer(BrowserView): r"""A view to convert from Plain Text to HTML. Example:: >>> from zope.app.renderer import text_type >>> from zope.publisher.browser import TestRequest >>> source = StructuredTextSourceFactory(u'This is source.') >>> renderer = StructuredTextToHTMLRenderer(source, TestRequest()) >>> rendered = renderer.render()
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")) @implementer(IHTMLRenderer) @adapter(IReStructuredTextSource, IBrowserRequest) class ReStructuredTextToHTMLRenderer(BrowserView): r"""An Adapter to convert from Restructured Text to HTML. Examples:: >>> from zope.app.renderer import text_type >>> from zope.publisher.browser import TestRequest >>> source = ReStructuredTextSourceFactory(u''' ... This is source. ...
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. ... ''')
from zope.interface import implementer 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")) @implementer(IHTMLRenderer) @adapter(IPlainTextSource, IBrowserRequest) class PlainTextToHTMLRenderer(BrowserView): r"""A view to convert from Plain Text to HTML. Example:: >>> from zope.publisher.browser import TestRequest >>> from zope.app.renderer import text_type >>> source = PlainTextSourceFactory(u'I hear that 1 > 2.\n') >>> renderer = PlainTextToHTMLRenderer(source, TestRequest()) >>> rendered = renderer.render()