diff -r 49075f57cf2c -r aa09e20dd8c0 common/mttransforms.py --- a/common/mttransforms.py Tue May 05 17:18:49 2009 +0200 +++ b/common/mttransforms.py Thu May 14 12:48:11 2009 +0200 @@ -1,7 +1,7 @@ """mime type transformation engine for cubicweb, based on mtconverter :organization: Logilab -:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved. +:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr """ __docformat__ = "restructuredtext en" @@ -11,10 +11,10 @@ from logilab.mtconverter.engine import TransformEngine from logilab.mtconverter.transform import Transform from logilab.mtconverter import (register_base_transforms, - register_pil_transforms, + register_pil_transforms, register_pygments_transforms) -from cubicweb.common.uilib import rest_publish, html_publish, remove_html_tags +from cubicweb.common.uilib import rest_publish, html_publish HTML_MIMETYPES = ('text/html', 'text/xhtml', 'application/xhtml+xml') @@ -32,15 +32,6 @@ def _convert(self, trdata): return html_publish(trdata.appobject, trdata.data) -class ept_to_html(Transform): - inputs = ('text/cubicweb-page-template',) - output = 'text/html' - output_encoding = 'utf-8' - def _convert(self, trdata): - from cubicweb.common.tal import compile_template - value = trdata.encode(self.output_encoding) - return trdata.appobject.tal_render(compile_template(value), {}) - # Instantiate and configure the transformation engine @@ -49,13 +40,32 @@ ENGINE = TransformEngine() ENGINE.add_transform(rest_to_html()) ENGINE.add_transform(html_to_html()) -ENGINE.add_transform(ept_to_html()) + +try: + from cubicweb.ext.tal import compile_template +except ImportError: + HAS_TAL = False + from cubicweb.schema import FormatConstraint + FormatConstraint.need_perm_formats.remove('text/cubicweb-page-template') + +else: + HAS_TAL = True + + class ept_to_html(Transform): + inputs = ('text/cubicweb-page-template',) + output = 'text/html' + output_encoding = 'utf-8' + def _convert(self, trdata): + value = trdata.encode(self.output_encoding) + return trdata.appobject.tal_render(compile_template(value), {}) + + ENGINE.add_transform(ept_to_html()) if register_pil_transforms(ENGINE, verb=False): HAS_PIL_TRANSFORMS = True else: HAS_PIL_TRANSFORMS = False - + try: from logilab.mtconverter.transforms import pygmentstransforms for mt in ('text/plain',) + HTML_MIMETYPES: @@ -74,9 +84,9 @@ return origconvert(self, trdata) cls._convert = _convert patch_convert(pygmentstransforms.PygmentsHTMLTransform) - + HAS_PYGMENTS_TRANSFORMS = True except ImportError: HAS_PYGMENTS_TRANSFORMS = False - + register_base_transforms(ENGINE, verb=False)