[Checkins] SVN: Sandbox/malthe/chameleon.zpt/ Added interpolation meta attribute.
Stefan Eletzhofer
stefan.eletzhofer at inquant.de
Mon Dec 1 10:50:52 EST 2008
Log message for revision 93489:
Added interpolation meta attribute.
Changed:
U Sandbox/malthe/chameleon.zpt/CHANGES.txt
U Sandbox/malthe/chameleon.zpt/src/chameleon/zpt/language.py
-=-
Modified: Sandbox/malthe/chameleon.zpt/CHANGES.txt
===================================================================
--- Sandbox/malthe/chameleon.zpt/CHANGES.txt 2008-12-01 15:30:52 UTC (rev 93488)
+++ Sandbox/malthe/chameleon.zpt/CHANGES.txt 2008-12-01 15:50:51 UTC (rev 93489)
@@ -4,6 +4,9 @@
Head
~~~~
+- Added a ``interpolation`` meta attribute to control $-interpolation of
+ expressions. This defaults to ``true`` for chameleon.zpt. [seletz]
+
1.0b5 (released 11/29/2008)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modified: Sandbox/malthe/chameleon.zpt/src/chameleon/zpt/language.py
===================================================================
--- Sandbox/malthe/chameleon.zpt/src/chameleon/zpt/language.py 2008-12-01 15:30:52 UTC (rev 93488)
+++ Sandbox/malthe/chameleon.zpt/src/chameleon/zpt/language.py 2008-12-01 15:50:51 UTC (rev 93489)
@@ -10,6 +10,7 @@
import interfaces
+
class ZopePageTemplateElement(translation.Element):
"""Zope Page Template element.
@@ -26,6 +27,10 @@
"http://xml.zope.org/namespaces/i18n")
@property
+ def _interpolation_enabled(self):
+ return self.element.meta_interpolation in config.TRUEVALS + ('',)
+
+ @property
def omit(self):
if self.element.tal_omit is not None:
return self.element.tal_omit or True
@@ -95,13 +100,14 @@
xhtml_attributes.update(utils.get_attributes_from_namespace(
self.element, None))
- for name, value in xhtml_attributes.items():
- parts = self.element.translator.split(value)
- for part in parts:
- if isinstance(part, types.expression):
- attributes.append(
- (types.declaration((name,)), types.join(parts)))
- break
+ if self._interpolation_enabled:
+ for name, value in xhtml_attributes.items():
+ parts = self.element.translator.split(value)
+ for part in parts:
+ if isinstance(part, types.expression):
+ attributes.append(
+ (types.declaration((name,)), types.join(parts)))
+ break
if self.element.tal_attributes is not None:
attributes.extend(self.element.tal_attributes)
@@ -146,12 +152,16 @@
@property
def text(self):
+ if not self._interpolation_enabled:
+ return (self.element.text,)
if self.element.text is not None:
return self.element.translator.split(self.element.text)
return ()
@property
def tail(self):
+ if not self._interpolation_enabled:
+ return (self.element.tail,)
if self.element.tail is not None:
return self.element.translator.split(self.element.tail)
return ()
@@ -187,6 +197,8 @@
meta_translator = etree.Annotation(
utils.meta_attr('translator'))
+ meta_interpolation = utils.attribute(
+ utils.meta_attr('interpolation'), default='true')
class XHTMLElement(ZopePageTemplateElement):
"""XHTML namespace element."""
@@ -244,7 +256,7 @@
("content", utils.tal_attr("content")), lambda p: p.output)
tal_omit = utils.attribute(
("omit-tag", utils.tal_attr("omit-tag")), lambda p: p.tales, u"")
-
+
class METALElement(XHTMLElement):
"""METAL namespace element."""
More information about the Checkins
mailing list