ztfy/utils/tal/html.py
changeset 41 da1558b96f0a
parent 30 3c237f16b603
child 52 6a542c8e1b96
equal deleted inserted replaced
40:16c94c509933 41:da1558b96f0a
    22 
    22 
    23 # import local interfaces
    23 # import local interfaces
    24 from interfaces import IHTMLTalesAPI
    24 from interfaces import IHTMLTalesAPI
    25 
    25 
    26 # import Zope3 packages
    26 # import Zope3 packages
    27 from zope.app import zapi
       
    28 from zope.app.renderer.plaintext import PlainTextToHTMLRenderer
       
    29 from zope.app.renderer.rest import ReStructuredTextToHTMLRenderer
       
    30 from zope.app.renderer.stx import StructuredTextToHTMLRenderer
       
    31 from zope.component import createObject
       
    32 from zope.interface import implements
    27 from zope.interface import implements
    33 
    28 
    34 # import local packages
    29 # import local packages
    35 from ztfy.utils.html import htmlToText
    30 from ztfy.utils.html import htmlToText
       
    31 from ztfy.utils.text import textToHTML
    36 
    32 
    37 
    33 
    38 class HTMLTalesAdapter(object):
    34 class HTMLTalesAdapter(object):
    39 
    35 
    40     implements(IHTMLTalesAPI, ITALESFunctionNamespace)
    36     implements(IHTMLTalesAPI, ITALESFunctionNamespace)
    51         return htmlToText(self.context)
    47         return htmlToText(self.context)
    52 
    48 
    53     def text(self):
    49     def text(self):
    54         if not self.context:
    50         if not self.context:
    55             return u''
    51             return u''
    56         formatter = createObject('zope.source.plaintext', self.context)
    52         return textToHTML(self.context, 'zope.source.plaintext')
    57         renderer = PlainTextToHTMLRenderer(formatter, self.request)
       
    58         return renderer.render()
       
    59 
    53 
    60     def stx(self):
    54     def stx(self):
    61         if not self.context:
    55         if not self.context:
    62             return u''
    56             return u''
    63         formatter = createObject('zope.source.stx', self.context)
    57         return textToHTML(self.context, 'zope.source.stx')
    64         renderer = StructuredTextToHTMLRenderer(formatter, self.request)
       
    65         return renderer.render()
       
    66 
    58 
    67     def rest(self):
    59     def rest(self):
    68         if not self.context:
    60         if not self.context:
    69             return u''
    61             return u''
    70         formatter = createObject('zope.source.rest', self.context)
    62         return textToHTML(self.context, 'zope.source.rest')
    71         renderer = ReStructuredTextToHTMLRenderer(formatter, self.request)
       
    72         return renderer.render()