快速HTML/XML模板编译器。

Chameleon的Python项目详细描述


概述

chameleon是用于python的html/xml模板引擎。它使用 页面模板 语言。

您可以在任何python web应用程序中使用它 python的版本(2.7及更高版本,包括3.4+,pypy)。

访问 文档 了解更多信息。

许可证和版权

此软件以类似于BSD的许可证提供 (参见附带的版权声明)。

注释

< COL/> < COL/> <正文> < > <表>

更改

3.6.2(2019-06-22)

3.6.1(2019-04-01)

  • 修复HTML中非法双连字符的有限搜索表达式 修正问题的注释289。

3.6(2019-02-19)

  • 从中排除运行时错误 异常包装。

  • 修复double-dollar"$$"以使double-dollar始终 解析,或者作为插值表达式,或者作为转义 用一个美元符号代替。这是现在 与Zope对这个字符的处理一致。

    基于美元的字符串插值的反斜杠转义不再是 支持。文件已经更新以反映这一点 变化,

    这将修复问题283。请注意,这会逆转某些更改 引入以解决问题265。

  • 放弃对python 3.3的支持。

3.5(2018-10-17)

  • 添加对Python3.8的支持。
  • 在XML声明标记中添加对TAL属性的支持。这修复 第269期。
  • 添加对 tal:on error的自定义异常处理的支持 语句。现在有一个关于错误处理程序的选项可用 作为模板配置(第266期)。
  • 修复转义双"$$"将影响非插值的问题 表达式,如裸露的"$$"(issue 265)。
  • 修正反斜杠美元转义将导致 反斜杠字符仍然存在。

3.4(2018-07-14)

错误修复:

  • 在多个节点的情况下,用翻译修复回归。

3.3(2018-05-23)

错误修复:

  • 在呈现内部宏调用时重置错误标记。
  • 修复导致递归的异常处理程序中的边缘情况。 [马修威尔克斯]

3.2(2017-10-06)

功能:

  • 添加绑定到 正在执行的宏。修复 https://github.com/malthee/chameleon/issues/238
  • 现在可以在模板类上配置令牌赋予器。这是 在以前修改模板文件输入时很有用 解析(例如,一些标记被剥离)以便 标记位置需要相应地偏移,以便错误位置 正确渲染。
  • 表达式错误现在显示源标记(以前仅限于 显示了文件名、行和列)。
  • 不再需要python源文件来导入模块。 [ MRH1997 ] <理>

优化:

  • 异常跟踪现在将元数据分配推迟到错误时间。

3.1(2017-02-21)

功能:

  • 添加控制是否 将命名空间限制为页面模板定义和使用的命名空间 语言。 [汉斯洛]
错误:

  • 固定属性HTML实体转义问题 将被编码两次。

优化:

  • 简化异常跟踪,显著减小字节码大小。
  • 在表达式期间避免检查静态字符串是否 无 插值。

3.0(2016-12-07)

错误:

  • 修复Python2上使用时未清除异常的问题 管道操作员,因此可以通过 sys.exc_info() 访问。
  • "exists"表达式不再泄漏错误信息。
  • 在内容表达式和字符串表达式中将"$$"转义为"$"。
  • 修复翻译块中宏定义的使用。

改进:

  • 允许不带引号的属性值。
  • 尝试将非宏用作 宏作为渲染器来获得正确的错误输出。
  • 如果XML中出现"-"(双连字符),则引发分析错误 评论。
  • i18n:target 属性现在覆盖默认值 目标语言 变量并传递给翻译 功能。
  • 在磁盘缓存模块名称中包含文件名。以前, 只使用十六进制表示的sha摘要,使 很难看出这个模块是从哪里来的。这解决了问题 (132)
  • 添加对非ascii属性名称的支持。 [沉没]

兼容性:

  • 放弃对Python2.6、3.1和3.2的支持。

2.25(2016-09-24)

  • 为Python3.5添加明确的支持/测试。
  • \r 添加到与chameleon解析器匹配的负regex中,其中使用了 \n ,但缺少 \r 。 修复了一个案例,其中标记名被解析为 html\r 而不是 html 。 修正:https://github.com/malthee/chameleon/issues/219" rel="nofollow">https://github.com/malthee/chameleon/issues/219

2.24(2015-10-28)

  • 修正了python 3.5的兼容性。
  • 固定棕色袋子释放。

2.23(2015-10-26)

  • 添加了允许使用HTML5数据的启用数据属性选项 属性作为控件属性代替或添加到XML中 命名空间属性。

2.22(2015-02-06)

  • 固定棕色包释放。

2.21(2015-02-06)

  • 添加了表示错误的异常 在计算表达式期间发生。
  • 清除模板错误 异常实现。

2.20(2015-01-12)

  • 使用加载时将搜索路径传递到模板类 模板加载程序 (或派生类之一)。 [法森]

2.19(2015-01-06)

  • 修复日志记录折旧。
  • 修复基于环境的配置日志错误。

2.18(2014-11-03)

  • 修复小编译错误。

2.17(2014-11-03)

  • 添加对 i18n:context 的支持。 [Wigg]
  • 添加缺少的"奇偶校验"重复属性。 [呕吐]
  • 从中获取变量时不要修改环境。 [fschulze]

2.16(2014-05-06)

  • 如果repeat表达式的计算结果为 none ,则现在是 相当于一个空集合。

    这改变了我的行为在2.14中介绍。

    这将修复问题172。

  • 删除不推荐的 分布上的化石测试依赖项

  • 为python 3.3/3.4添加明确的支持/测试。

  • 放弃对Python2.5的显式支持(停止维护,不再支持 由travis ci支持。

2.15(2014-03-11)

  • 添加对python 3.4的 nameconstant 的支持。 [布拉坎]

2.14(2013年11月28日)

  • 使用 tal 命名空间的元素重复不再包括 空白。这将修复问题110。
  • 变色龙接口模块使用绝对导入。这修复 第161期。

2.13-1(2013-10-24)

  • 固定棕色袋释放。

2.13(2013年10月21日)

错误修复:

  • 模板缓存机制现在包括其他配置 作为缓存键一部分的设置,例如 strict 修剪属性空间 。 [奥斯姆基蒂]
  • 修复有时缓存模板无法加载的缓存问题 正确地。 [奥斯姆基蒂]
  • 在调试模式下,当模块 加载器被垃圾收集(在 \uu del\uu 上)。 [涂鸦]
  • 修复在 翻译。
  • 在一个 变色龙。tal。repeatdict 不再引发键错误 , 使用提供给 getattr 的默认值。这修复 尝试将repeatdict改编成zope接口 PyPy .

2.12(2013年3月26日)

更改:

  • 当a tal:case 条件成功时,现在没有其他情况会成功。

错误修复:

  • 隐式翻译现在正确地提取并规范化完成 句子,而不是单词。 [威驰]
  • a tal:case 条件中的默认符号现在允许 只有在没有其他情况成功时才使用元素。

2.11(2012-11-15)

错误修复:

  • 解决了一个问题,其中一个金属声明与 tal:出错时处理程序。
  • 修复未正确格式化处理的次要分析器问题 说明。
  • 为python内联代码块提供正确的错误处理。

功能:

  • 简单的翻译功能现在支持 翻译字符串 接口。

优化:

  • 当一个元素没有 属性。

2.10(2012年10月12日)

反对意见:

  • fast_translate 函数已被弃用。相反, 默认翻译函数现在总是一个简单的函数 将映射插入到消息default或id上。

    其动机是,自2.9版以来, context 参数 是非常重要的:传递了 econtext 映射。这打破了 zope平台上的期望 context 参数是 http请求。以前,对于变色龙这个参数是 只是没有提供,因此不会导致问题本身。

  • ast24 模块已重命名为 ast25 。这应该有用 清除变色龙2.x可能支持python的任何混淆 低于2.5版的解释器(不是)。

功能:

  • proxyexpr 表达式类(因此 加载: 表达式类型)现在是一个故事表达式。实际上,这个 表示表达式类型(它使用 标准的插值语法和代理 结果通过函数)现在支持fallbacK使用管道 运算符( "" )。这将修复问题128。

  • 尝试使用空字符串作为表达式进行插值 (即 ${} )现在什么也不做:字符串 ${} 只是输出 如:

  • 添加了对使用 tal:attributes中的字典表达式(类似于genshi的 py:attrs 指令:

    <div tal:attributes="name value; attrs" />
    

    在上面的示例中, name 是一个标识符,而 value attrs 是python表达式。但是, attrs 必须计算 对于python dictionary对象(更简明地说,该值必须 实现字典api方法 update() items() )。

优化:

  • 为了减少编译的函数对象的大小, 一些转换和引用语句已放入 功能。在一次测量中,减少了35%。基准 套件没有报告渲染时间增加(实际上 略有下降)。

错误修复:

  • 如果传递了 金属:填充槽。这将修复问题89。
  • 空字符串现在永远不会被翻译。不是真的虫子,但它是 因为一些翻译 框架无法正确处理这种情况。
  • 模板模块加载程序(文件缓存)现在正确编码 生成的模板源代码为utf-8。这将修复问题125。
  • 修复了闭包在嵌套中可能被不安全地重用的问题 模板渲染。
  • 修复了标记类方法。这将修复问题124。
  • 添加了缺少的返回语句以修复打印非缩写 文件名以防出现异常。 [托莫]

2.9.2(2012-06-06)

错误修复:

  • 修复了pypy不兼容问题。
  • 修正了导致某些平台测试失败的问题109。

2.9.1(2012-06-01)

错误修复:

  • 修正问题103。现在, tal:on error语句总是添加 元素的显式结束标记,即使替换内容为 没有。
  • 固定发行113.tal:on error语句现在可以正常工作了 也适用于动态属性。也就是说,备用标签现在包括 只有静态属性。
  • 修复了阻止基准运行的名称错误 正确。

兼容性:

  • 修正了python 3上zope接口实现的弃用警告 宣言。这将修复问题116。

2.9.0(2012-05-31)

功能:

  • translation函数现在获取 econtext 参数作为 上下文的值。注意,历史上,这通常是 可能通过 字典接口。 [阿尔文约]

错误修复:

  • 修复了导入别名问题,该问题会导致 生成的python代码。修复问题114。

2.8.5(2012-05-02)

错误修复:

  • 修复了Python2.5和3上的小安装问题。 [PPAEZ]
  • 确保即使是普通的(空字符串)输出也是Unicode的。

2.8.4(2012-04-18)

功能:

  • 在异常输出中,长文件名现在被截断为60 输出特性,防止换行 扫描异常输出。

错误修复:

  • 在异常的异常输出中包含文件名和位置 在编译过程中引发。
  • 如果给定一个平凡的翻译替换变量(即 空字符串),只需忽略它。这将修复问题106。

2.8.3(2012-04-16)

功能:

  • 烹饪前将模板源记录在调试级别。
  • 目标语言 参数(如果给定)现在可用作 模板中的变量。

2.8.2(2012-03-30)

功能:

  • 在调试模式下使用的临时缓存会被急切地清理,而不是 而不是等待进程终止。 [米切尔]

错误修复:

  • tal repeat对象上的 index start end 方法是 现在可以打电话了。这将修复与zpt的不兼容。
  • 加载程序现在可以正确处理windows上的绝对路径。 [RDAL]

2.8.1(2012-03-29)

功能:

  • 异常格式化程序现在在"包装顺序"中列出错误。这个 这意味着最内部的,大概也是最相关的异常是 最后显示。

错误修复:

  • 异常格式化程序现在可以正确地识别嵌套错误和 不重写动态生成的异常类。
  • 异常格式化程序现在可以正确设置 \u模块 属于原始异常类的属性。

2.8.0(2012-02-29)

功能:

  • 添加了对使用 <;的代码块的支持?蟒蛇…?>; 处理 指令语法。

    作用域是名称分配,直到最近的宏 定义,如果不使用宏,则为模板本身。

错误修复:

  • 返回到异常类' \u new\ 方法以安全地 创建一个未在python中实现的异常对象。
  • 异常格式化程序现在跟踪已格式化的 异常,并在进一步输出时忽略它们。

2.7.4(2012-02-27)

  • 错误处理程序现在调用 baseexception 而不是可能重写的方法(它 可能需要参数)。这将修复问题97。 [J23D,马尔特]

2.7.3(2012-01-16)

错误修复:

  • trim whitespace选项现在可以正确地将实际空格修剪为 一个单独的字符,出现在 元素前缀或后缀字符串。

2.7.2(2012-01-08)

功能:

  • 添加了选项trim_attribute_space 空格被去掉(最多只剩下一个空格)。这个选项 存在以提供与引用的兼容性 实施。修复问题85。

错误修复:

  • 生成反向内置时忽略不可更改的内置 映射以快速查找内置值。 [马尔特]
  • 即使翻译函数不是 可用。这解决了问题83。 [马尔特]
  • 已修复问题80。插槽的转换域由 源文档,即提供插槽内容的模板 无论是默认的还是通过金属填充槽提供的。 [JCbrand]
  • 在某些情况下,Unicode不间断空格字符将导致 无法解析的define子句。

2.7.1(2011-12-29)

功能:

  • 在CData中启用表达式插值。

  • 页面模板类现在实现对宏的字典访问:

    template[name]
    

    这是一个缩写:

    template.macros[name]
    

错误修复:

  • 无效的define子句将被静默忽略;我们现在提出 语言错误异常。这将修复问题79。
  • 修正了插值表达式可以 不跨越多行。这将修复问题77。

2.7.0(2011-12-13)

功能:

  • 加载: 表达式现在从字符串表达式派生,如下所示 ${…} 运算符可用于表达式 插值。

  • 加载: 表达式现在接受资产规格;这些是解析的 通过 pkg_resources.resource_filename 函数:

    <package_name>:<path>
    

    测试套件中的一个示例:

    chameleon:tests/inputs/hello_world.pt
    

错误修复:

  • 如果要转换的属性名不是有效的python 标识符,编译器将生成无效代码。这一直是 修正了,编译器现在也抛出一个异常如果一个属性 规范包含逗号。(注意,唯一有效的分隔符 字符是分号,在为 通过 i18n:translate 语句翻译)。这个地址 第76期。

2.6.2(2011-12-08)

错误修复:

  • 修正了以下问题: tal:on error 不尊重 tal:省略标记或默认省略的命名空间元素 (例如 <;tal:block/>; )。
  • 修正了宏属性不可用的问题 由于不正确的初始化而导致的基于文件的模板。
  • 上的 tryexcept tryFinally ast节点不可用 Python 3.3。这些已被别名为 try 。这解决了问题 (75)

功能:

  • tal repeat项现在生成一个安全声明 在Zope2平台上访问未受保护的子对象:

    __allow_access_to_unprotected_subobjects__ = True
    

    这是遗留兼容性所必需的,不会影响其他 环境。

  • template对象现在有一个方法write(body) 显式解码并烹调字符串输入。

  • 添加配置选项 装入器类 用于创建模板加载程序对象。

    类(本质上是可调用的)是在模板上创建的 施工时间。

2.6.1(2011年11月30日)

错误修复:

  • 解码表达式插值字符串中的HTML实体。这修复 第74期。
  • 允许tal、i18n和metal上的 xml xmlns 属性 命名空间元素。这将修复问题73。

2.6.0(2011年11月24日)

功能:

  • 增加了对隐式翻译的支持:

    隐式转换选项启用隐式转换 文本的 隐式属性启用隐式 属性转换。后者必须是一组 要隐式转换的属性,其小写字符串值 必须包含在集合中。

  • 添加了选项strict(默认启用),该选项决定是否 表达式在编译时必须有效。也就是说,如果 未设置,仅对位于的无效表达式引发异常 评估时间。

  • 表达式错误现在只在 在呈现过程中尝试计算表达式。

  • 添加了一个配置选项 prepend_relative_search_path 决定相对于基于文件的模板的路径是否为 在加载搜索路径之前。默认值为

  • 向基于文件的 模板类,它向模板加载添加其他路径 实例绑定到 加载: 表达式。选择需要 字符串路径或产生字符串路径的iterable。默认值 是空的。

错误修复:

  • 异常实例现在支持pickle/unpickle。
  • i18n中的属性:属性不再需要匹配 现有或动态属性,以便在 元素。这将修复问题66。

2.5.3(2011-10-23)

错误修复:

  • 修复了嵌套宏槽定义甚至会失败的问题 尽管存在父宏定义。这解决了问题 (69)

2.5.2(2011-10-12)

错误修复:

  • 修正了技术上无效的输入会导致 编译器错误。

功能:

  • 标记类现在继承自Unicode字符串类型,以便 它与字符串接口兼容。

2.5.1(2011-09-29)

错误修复:

  • 符号名"convert"、"decode"和"translate"现在是no 更长时间设置为只读编译器内部。这将修复问题65。

  • 修复了宏扩展链嵌套两个级别(a 模板使用扩展宏的宏)将丢失中间部分 如果插槽是嵌套定义的,则插槽定义。

    如果使用嵌套槽定义,编译器现在将抛出一个错误 在宏扩展上下文之外。

2.5.0(2011-09-23)

功能:

  • 现在可以使用表达式类型 结构: 来包装 表达式结果为 结构 插入,例如:

    <div id="content">
       ${structure: context.body}
    </div>
    

    这也意味着 tal:content的 结构的 关键字 现在可以通过 表达式类型 结构:

  • 基于字符串的模板构造函数现在接受编码输入。

2.4.6(2011-09-23)

错误修复:

  • 语句应该捕获所有异常。
  • 修复了阻止插值表达式转义的问题 文本中出现的值。

2.4.5(2011-09-21)

错误修复:

  • 处理程序应该有一个变量 已定义,具有引发的异常值。
  • tal:on error语句是一个替换语句,并且 应支持"文本"和"结构"插入方法。

2.4.4(2011-09-15)

错误修复:

  • 现在读取XML文档前导码中指定的编码,并 用于将模板输入解码为Unicode。这解决了问题55。
  • python 3上的编码表达式输入现在是正确的 解码。以前,字符串表示输出将是 包含而不是实际解码的字符串。
  • 表达式结果转换步骤现在正确地包含在 错误处理,使异常输出指向 表达式位置。

2.4.3(2011-09-13)

功能:

  • 提供编码时,传递"忽略"标志以避免 解码输入错误的问题。

错误修复:

  • 修复了pypy兼容性问题(在以前的版本中引入)。

2.4.2(2011-09-13)

错误修复:

  • 修复了编译器中内部变量(例如 翻译默认值)将被缓存,导致变量 范围损坏(见第49期)。

2.4.1(2011-09-08)

错误修复:

  • 修复了属性的默认值将 有时会溢出到另一个属性中。
  • 修正了在属性中使用默认名称的问题 插值表达式将打印属性值。这是 意外,因为它是表达式,而不是适合的静态文本 用于输出。属性值 default 现在正确下降 属性。

2.4.0(2011-08-22)

功能:

  • 添加了一个选项 boolean_attributes 来计算和呈现 使用布尔逻辑提供的属性集:如果 为真值,则该值将是属性名,否则为他 属性被删除。

    在引用实现中,以下属性是 在中呈现模板时配置为布尔值 HTML模式:

    "compact", "nowrap", "ismap", "declare", "noshade",
    "checked", "disabled", "readonly", "multiple", "selected",
    "noresize", "defer"
    

    注意,在变色龙中,必须手动提供这些属性。

错误修复:

  • 回车符(在windows平台上使用)将 不正确地包含在python注释中。

    现在用换行符替换。

    这将修复问题44。

2.3.8(2011-08-19)

  • 修正了仅影响Python2.5的导入错误。

2.3.7(2011-08-19)

功能:

  • 添加了一个选项 literal_false 以禁用默认行为 删除值为 false 的属性 )。这种修改后的行为是 参考实施。

错误修复:

  • 撤消属性特殊的HTML属性行为(参见上一步 释放)。

    结果证明这不是一个兼容的行为;而是布尔型的 值应该简单地强制为字符串。

    同时,引用实现在 显示特殊属性行为。

    我们目前不支持此模式。

2.3.6(2011-08-18)

功能:

  • 某些html属性名现在具有 属性值 true (如果没有默认值 定义的)。对于这些属性,此返回值将导致 打印为值的名称:

    <input type="input" tal:attributes="checked True" />
    

    将呈现为:

    <div tal:attributes="name value; attrs" />
    
    0

    此行为与参考实现兼容。

2.3.5(2011-08-18)

功能:

  • 增加了对set运算符的支持( {item,item, …} )。

错误修复:

  • 如果宏定义在与翻译名相同的元素上,则 不再导致"翻译名不允许在外部 翻译错误。这解决了问题43。
  • 属性fallback to dictionary lookup现在可用于多个项 (例如 d1.d2.d2 )。这将修复问题42。

2.3.4(2011-08-16)

功能:

  • 在属性或文本中插入内容时,值为 (如 )将导致无 动作.
  • "attrs" "默认" 。这一变化使性能提高了 15-20%。
  • 模板加载器类现在接受一个可选参数 默认扩展名 如果还没有扩展名,请附加到文件名中。

错误修复:

  • 如果属性 未提供默认值。注意,结果是 被丢弃。这将修复问题41。
  • 修正了这样一个问题:对变量 "type" 的赋值 失败了。这将修复问题40。
  • 修复了重复循环的(未成功)分配问题 到编译器的内部名称不会导致错误。
  • 如果translation函数返回相同的对象,请手动 强制它为字符串。这修复了与 不将非字符串对象转换为 字符串值,但只返回未更改的值。

2.3.3(2011-08-15)

功能:

  • 加载: 表达式现在将初始关键字参数传递给 它的模板加载程序(例如, 自动重新加载 编码 )。
  • 在异常输出中,字符串变量值现在被限制为 字符输出有限,仅限单行。

错误修复:

  • 固定水平对齐异常位置信息的 (即"string:"、"filename:"和"location:")使它们匹配 模板异常格式化程序。

2.3.2(2011-08-11)

错误修复:

  • 修复了I18N:域不能通过宏继承的问题 和插槽。这将修复问题37。

2.3.1(2011-08-11)

功能:

  • 内置节点类型现在可以用来表示任何python 本地或全局名称。这允许表达式编译器引用 例如 get getitem ,或者显式地需要一个内置对象 例如, Extra_Builtins 字典中的一个。

错误修复:

  • 未明确禁止的内置项现在可以重新定义 并用作变量(例如, )。
  • 修复了循环节点注释循环的编译器问题。

2.3(2011-08-10)

功能:

  • 添加了对以下语法的支持以禁用内联计算 在评论中:

    < Buff行情>

    -?注释按原样显示(无${…}计算)–>;

    注意,初始问号字符(?)将被忽略 从输出。

  • 分析器现在在属性中接受"<;"和">;"。注意这是 无效标记。以前,"<;"不会被接受为有效的 属性值,但这将导致"意外的结束标记" 其他地方出错。这将修复问题38。

  • 表达式编译器现在提供方法assign\u text 赋值 以便模板引擎可以配置 值转换以支持编码字符串。

    请注意,目前 assign\u text 方法的唯一客户机 是字符串表达式类型。

  • 为基于字符串的模板类启用模板加载器。注意 初始化时可以提供 filename 关键字参数 按文件名标识模板源。这将修复问题36。

  • 在页面模板类中添加了额外的内置选项。这些 在烹饪时将内置词添加到默认的内置词词典中 并可在初始化时使用 额外的内置项提供 关键字参数。

错误修复:

  • 如果为填充槽设置了转换域,请使用此设置 而不是宏模板域。
  • python表达式编译器现在可以正确地解码html实体 'gt' 'lt' 。这将修复问题32。
  • 字符串表达式编译器现在可以正确处理编码文本 (启用对编码字符串的支持时)。这将修复问题35。
  • 修复了在 基于文件的模板不会自动导致无效。
  • 变色龙引发的异常现在可以通过 复制.复制 。这解决了问题36。 [列奥罗恰尔]
  • 如果在异常处理程序中复制异常失败,只需 重新引发原始异常并记录警告。

2.2(2011-07-28)

功能:

  • 添加了新的表达式类型 加载: 允许加载 模板。支持相对路径和绝对路径。如果 给定的路径是相对的,然后将根据 模板的目录。

  • 增加了对表达式动态求值的支持。

    注意,这是为了支持遗留应用程序。它不是 当前连接到提供的模板类。

  • 模板类现在有一个可以使用的内置属性 定义模板中始终可用的内置变量 可变范围。

不相容性:

  • 基于文件的模板类不再接受参数 加载器 。此参数将用于从 相对路径,使用 查找(filename) 方法。然而, 无证的,可能不是很有用,因为我们有 templateloader 机制已经存在。
  • 编译后的模板模块现在包含一个初始化函数 它接受映射到模板内置项的值。回归 此函数的值是包含呈现的字典 功能。

错误修复:

  • 基于文件的模板类不再验证 模板文件(使用os.lstat)。这现在隐式地发生在 当第一次需要时(例如,在 渲染时间)。

    由于之前的行为是 可能不是你所期望的,特别是当一个应用程序 初始化许多模板而无需呈现它们 立即。

2.1.1(2011-07-28)

功能:

  • 改进了异常显示。表达式字符串现在显示在 带有标记的原始源(如果可用)的上下文 指示表达式在模板中位置的字符串 来源。

错误修复:

  • 插入模式现在可以正确解码 任何表达式类型(包括 字符串: )。这将修复问题30。
  • 不在异常格式化程序变量中显示内部变量 上市。

2.1(2011-07-25)

功能:

  • 表达式插值(使用 ${…} 运算符和 以前也是 $identifier )现在到处都需要大括号 除非在 字符串中: 表达式类型。

    这一变化是由许多遗留模板驱动的,其中 不带大括号的插值格式显示为 课文. < /P>

2.0.2(2011-07-25)

错误修复:

  • 不要对lambda范围的变量(27)使用动态变量范围。
  • 避免在回溯中重复异常类和消息。
  • 修正了以下问题:如果宏 设置为在同一元素上使用(16)。

2.0.1(2011-07-23)

错误修复:

  • 修正了宏槽中全局变量定义 失败(相反,它们是本地的)。这也会影响错误 从内部插槽报告,因为这将被记录 作为一个全球性的公司在内部。
  • 修复了模板缓存摘要(用于文件名)的问题;模块 现在,只要对 提供分发集(系统路径上的包)。
  • 修复了异常处理程序,以便更好地让异常通过 渲染器。
  • 基于磁盘的模块编译器现在会损坏模板源文件名 使输出python模块在根级别有效(点 连字符替换为下划线)。这将修复问题17。
  • 修复了python 2.5上的翻译(i18n)。

2.0(2011-07-14)

  • 点释放。

2.0-RC14(2011-07-13)

错误修复:

  • tab字符( \t )现在在内部使用时可以正确解析 标签。

功能:

  • repeatdict类现在作为一个代理在一个单独的 字典实例。

  • 添加了模板构造函数选项 keep_body 这是一个标志 (也可用作类属性)控制是否保存 在 body 属性中输入模板正文。

    这在默认情况下是禁用的,除非启用了调试模式。

  • 页面模板加载器类现在接受可选的格式。 参数,可用于选择其他模板类。

2.0-RC13(2011-07-07)

错误修复:

  • 反斜杠字符(后跟可选空白和一行 break)未正确解释为python的延续 表达式。

功能:

  • python表达式实现现在对于 通过新的parse方法进行外部子类化。

2.0-RC12(2011-07-04)

错误修复:

  • 传递给模板的初始关键字参数现在不再"泄漏" 宏调用后进入模板变量空间。
  • 意外的结束标记现在是不可恢复的错误。

功能:

  • 改进异常输出。

2.0-RC11(2011-05-26)

错误修复:

  • 修正了以下划线开头的变量名 似乎是允许的,但它们的使用导致编译器错误。

功能:

  • 模板变量名现在允许以单个 下划线,但不能有两个或多个(保留内部使用)。

    有效名称示例:

    <div tal:attributes="name value; attrs" />
    
    1
  • 增加了对genshi注释"drop"语法的支持:

    <div tal:attributes="name value; attrs" />
    
    2

    注意附加的感叹号(!)字符。

    此修复程序解决了问题10。

2.0-RC10(2011-05-24)

错误修复:

  • attributes语句现在可以正确操作了 不区分大小写。语句中给定的属性名将 使用相同的名称替换现有属性,而不考虑 病例:

功能:

  • 在控制表达式中添加了 插值设置。

    禁用设置的字符串: "off" "false" 。 启用设置的字符串: "on" "true"

  • 表达式插值现在可以在XML注释中工作。

2.0-RC9(2011-05-05)

功能:

  • 更好的字符串解码和转换调试支持。如果A naive join失败,现在将尝试输出中的每个元素 强制使用Unicode以尝试在接近坏的地方触发失败 字符串,

2.0-RC8(2011-04-11)

错误修复:

  • 如果宏定义了两个同名的插槽,则调用方现在将 两种用法都用一次。
  • 如果提供有效的 none 作为转换函数 参数,现在回到类默认值。

2.0-RC7(2011-03-29)

错误修复:

  • 修复了Python2.5兼容性AST的问题。这影响到 最小Pypy 1.4.

功能:

  • 自动重新加载设置现在默认为类值; 基本模板类提供的默认值为 chameleon.config.auto_reload 。此更改允许子类 提供自定义默认值(例如特定于应用程序的 调试模式设置)。

2.0-RC6(2011-03-19)

功能:

  • 添加了对要呈现的关键字参数的支持 方法。如果提供了这个参数,则 翻译功能。

错误修复:

  • 内容中出现的HTML实体"lt"、"gt"和"quot" 子副本表达式现在被转换为它们的本机字符 价值观。这修复了无法动态创建 使用 结构的元素(这在zpt中是可能的)。这个 需要创建这样的结构源于缺少表达式 zpt中的插值运算符。
  • 修复了测试套件的重复文件指针问题(受影响的窗口 仅限平台)。这解决了问题9。 [奥利拉]
  • 在尝试写入时使用 os.fdopen 已打开的文件 模块源。这将修复lp 731803。

2.0-RC5(2011-03-07)

错误修复:

  • 修复了一些有关属性转义的问题 值:

    1. 静态属性值现在包括在 来源:

      这意味着属性值无效,如"true"&;等 False" 现在只剩下它了。这不是模板的工作 引擎以更正此类标记,至少不在默认模式下 操作。

    2. 字符串表达式编译器不再解压 价值观。相反,这是留给每个表达式的 编译程序。目前,只有python表达式编译器能解套 它的输入。

    3. 动态转义码序列现在只能正确地替换 作为HTML转义格式一部分的与号。

导入:

  • 现在可以导入页面模板类和加载程序类 直接从 变色龙模块。

功能:

  • 如果未提供自定义模板加载器,则相对路径现在为 使用 os.abspath 解决(即当前工作 目录)。
  • 绝对路径使用 os.path.normpath os.path.expanduser 。这样可以确保所有路径都保持在 他们的"规范"形式。

2.0-RC4(2011-03-03)

错误修复:

  • 修复了端到端字符串表达式的输出 如果表达式的计算结果为 none ,则会引发异常(它 只需不输出任何内容即可。

  • 转换函数(可在模板上配置 类级别)现在默认为 translate 函数(at 运行时)。

    这修复了未翻译消息对象的问题(以及 因此转换为字符串)使用提供的a translate 功能。

  • 修复了表达式立即 由右大括号代替的字符将无法解析。

    这将修复问题5。

  • 修正了 tal:condition 将在 tal:重复

功能:

  • python表达式现在是一个tales表达式。也就是说 管道运算符可用于在 尝试排除序列。

    这种行为是从1.x系列移植来的。请注意, 仍然可以在表达式中使用管道字符(""),它 现在必须转义。

  • 模板缓存现在可以由多个进程共享。

2.0-RC3(2011-03-02)

错误修复:

  • 修正了退出处理程序。

    这解决了问题3。

  • 如果指定了缓存目录,则现在将使用它,即使没有 处于调试模式。

  • 允许TAL命名空间中的"comment"属性。

    这解决了一个问题,即参考引擎允许 TAL命名空间中的任何属性。然而,只有"评论"是 常用。

  • 模板构造函数现在接受一个标志 模板 实例 进入调试模式,而不考虑全局 设置:

    这解决了问题1。

功能:

  • 为求值时引发的异常添加了异常处理程序 表达式。

    此处理程序引发(或尝试)类型的新异常 renderror ,带有原始的附加基类 异常类。异常的字符串值是格式化的 包含导致 例外。

    如果我们无法创建异常类,则 重新引发异常。

2.0-RC2(2011-02-28)

  • 已修复上载问题。

2.0-RC1(2011-02-28)

  • 首次公开发行。请参阅文档以了解此中的新功能 系列
[1] 此软件的许可证是在 repoze 许可证下获得的。

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

推荐PyPI第三方库


热门话题
IntelliJ中的java默认Maven项目结构不一致   java我希望链接(在帖子和页面上)在一些访问者加载时被自动点击   java如何使用单独的方法隐藏JButton并在新类中调用   java KStream leftJoin KStream具有相同的密钥   java图像在垂直滚动窗格视图端口中消失   java从指定的起始点开始以n的增量填充数组   java JLabel和JTextField不在swing表单中应用   java springboot mongo如果没有映像,请使用现有映像   类似C++映射的java容器   java如何在没有Valgrind错误的情况下调用JNI_CreateJavaVM?   java如何在安卓中运行后台服务   java onPostExecute不运行