在Plone上有选择地启用Chameleon页面模板

时间:2013-05-06 07:13:35

标签: plone chameleon

阅读https://pypi.python.org/pypi/five.pt/2.2.1

  To enable Chameleon, configure the package using ZCML:

   <include package="five.pt" />

每个包或全局启用Chameleon模板吗?说明很少。

如果我想为特定包装启用Chameleon,那么它是否可能? (使迁移到Chameleon更容易)

1 个答案:

答案 0 :(得分:1)

直接引用PyPI page for the package

  

它使用Monkey-patching到现有API(特别是TALInterpreterPageTemplate类)。简单来说,修补的作用是替换TAL解释器类,并确保所谓的“烹饪”例程使用Chameleon解析器和编译器而不是zope.*参考实现。

因此,当您加载five.pt包时,常规页面模板代码会被修补以使用Chameleon模板,而不是在模板编译(编译)时。

这实际上排除了启用Chameleon并逐个打包禁用Chameleon的能力。一旦任何包使用<include package="five.pt" />指令,就会加载five.pt configure.zcml文件并应用补丁。

那就是说,理论上它应该可以添加每个包启用或禁用回补丁;必须教授five.pt Program utility__call__cook方法如何检测模板适用的包,并决定RepeatDict类和页面模板对象使用。