增强变色龙模板引擎与plone的集成

ftw.chameleon的Python项目详细描述


Introduction

这个包增强了Chameleonfive.pt的plone的集成。

在我们的部署中,我们有源代码签出(git),我们可以在更新时提取它。 这可能会导致在运行实例中的下一个请求中更新模板, 这可能会导致错误,因为关联的代码尚未重新加载,因为 zope实例尚未重新启动。 为了使它更健壮,我们使用了Chameleon并启用了紧急加载 并禁用自动重新加载,以便在实例启动后它将不再 阅读模板。

当使用five.pt进行集成时,这些选项不能按预期工作 ChameleonViewPageTemplateFile实例结合使用。 ftw.chameleon包含使其正常工作的增强功能。

Enhancements

  • zope.pagetemplate已修补,以便它考虑CHAMELEON_RELOAD 配置:当CHAMELEON_RELOAD被禁用时,它不会触发 即使模板已更改,也会重新记帐。
  • 当启用CHAMELEON_EAGER时,所有模板都将在启动时生成。 这是通过在单独的线程中显式地烹饪所有已知模板来完成的。
  • 变色龙编译模板时触发事件。
  • 意外编译模板时记录警告或异常。 这有助于解决无法缓存的模板的点问题。
  • 当启用CHAMELEON_EAGER时,portal_skins中的模板将 在plone网站的第一个请求后煮熟。

Compatibility

扑通一声4.3.x

Installation

production的构建示例

[instance]eggs +=
    ftw.chameleonenvironment-vars +=
    CHAMELEON_EAGER true
    CHAMELEON_RELOAD false
    CHAMELEON_CACHE ${buildout:directory}/var/chameleon-cache
    FTW_CHAMELEON_RECOOK_WARNING true

开发的构建示例

[instance]eggs +=
    ftw.chameleonenvironment-vars +=
    CHAMELEON_RELOAD true
    CHAMELEON_CACHE ${buildout:directory}/var/chameleon-cache

您需要确保缓存目录存在。这可以通过构建来完成:

[buildout]parts +=chameleon-cache[chameleon-cache]directory=${buildout:directory}/var/chameleon-cacherecipe=collective.recipe.shelloutputcommands=
    cmd1 = mkdir -p ${chameleon-cache:directory}[instance]environment-vars +=
    CHAMELEON_CACHE ${chameleon-cache:directory}

Environment variables

NameDescriptionValuesRecommendation
^{tt6}$Parse and compile templates on startup.^{tt10}$, ^{tt11}$^{tt10}$
^{tt4}$Reload templates when they have changed.^{tt10}$, ^{tt11}$^{tt11}$
^{tt17}$File system cache.Path to cache directory.^{tt18}$
^{tt19}$Warn when recooking templates.^{tt10}$, ^{tt11}$^{tt10}$
^{tt23}$Exception when recooking templates.^{tt10}$, ^{tt11}$^{tt10}$ when using Sentry.

另请参见Chameleon documentation

Development

  1. 转移此回购
  2. 克隆您的叉子
  3. 外壳:ln -s development.cfg buildout.cfg
  4. 外壳:python bootstrap.py
  5. 外壳:bin/buildout

运行bin/test测试您的更改。

或者通过运行bin/instance fg启动实例。

Changelog

1.2.0 (2017-12-04)

  • 需要5.pt<;3.0。[mbaechtell]
  • 将变更日志附加到包[Raphael-S]的详细说明中

1.1.2 (2017-06-26)

  • 跳过precok_templates()中的持久模板以避免尝试 在关闭的zodb连接上操作。[lgraf]

1.1.1 (2016-11-21)

  • 修复记录器名称(以前是ftw.ptcache)。[乔恩]

1.1.0 (2016-10-25)

  • 预先确定z3c.jbot注册模板。[乔恩]

1.0.0 (2016-10-03)

  • 初步实施。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java的单元测试测试用例库。util。列出实现   java通过超类进行序列化/反序列化   java Android获取设备语言ISO字符串   java如何打开广告的行动。移动   Eclipse IDE for(嵌入式C/C++)开发者202012:经典的深色主题深黑色背景和菜单中的文本   java使用不同的内容动态创建TableView(JavaFX)   java JAXB将多个同名节点解组   java ClassDefNotFoundException,即使类由类加载器加载(服务器上安装了多个应用程序)   java有没有办法关闭在后端生成的MqttClient线程?   html如何在网站上的java小程序中包含图像?   java无法访问已分配给超类引用的子类实例变量   java在TableViewer中双击打开对话框   列出如何创建ListNode。JAVA   java如何从文本中输出的数组中放入随机图像