变化¶
版本3.2.0¶
未发布
将现代打包元数据用于
pyproject.toml
而不是setup.cfg
。 #1793使用
flit_core
而不是setuptools
作为构建后端。
版本3.1.3¶
已发布2024-01-10
版本3.1.2¶
已发布2022-04-28
版本3.1.1¶
已发布2022-03-25
Windows上的模板文件名使用主路径分隔符。 #1637
版本3.1.0¶
已发布2022-03-24
放弃对Python3.6的支持。 #1534
删除以前弃用的代码。 #1544
WithExtension
和AutoEscapeExtension
现在都是内置的。contextfilter
和contextfunction
被替换为pass_context
。evalcontextfilter
和evalcontextfunction
被替换为pass_eval_context
。environmentfilter
和environmentfunction
被替换为pass_environment
。Markup
和escape
应从MarkupSafe导入。从非常旧的JJJA版本编译的模板可能需要重新编译。
旧版解析模式
Context
不再支持子类。超覆resolve_or_missing
而不是resolve
。unicode_urlencode
已重命名为url_quote
。
在宏中添加对本机类型的支持。 #1510
这个
{% trans %}
标签可以使用pgettext
和npgettext
通过将上下文字符串作为标记中的第一个令牌传递,如{% trans "title" %}
。 #1430将有效的标识符字符从Python3.6更新到3.7。 #1571
使用装饰的筛选器和测试
@async_variant
是可以腌制的。 #1612增列
items
过滤。 #1561订费 (
[0]
等)可在环境处于异步模式时的筛选器、测试和调用之后使用。 #1573这个
groupby
默认情况下,筛选器不区分大小写,与其他比较筛选器匹配。添加了case_sensitive
参数来控制此操作。 #1463模板名称中的Windows驱动器相对路径段不会导致
FileSystemLoader
和PackageLoader
从驱动器相对路径加载。 #1621
版本3.0.3¶
已发布2021/11/09
版本3.0.2¶
已发布2021/10/04
版本3.0.1¶
已发布2021-05-18
版本3.0.0¶
已发布2021-05-11
放弃对Python2.7和3.5的支持。
将MarkupSafe依赖项增加到>=1.1。
将Babel可选依赖项增加到>=2.1。
删除标记为已弃用的代码。
添加类型提示。 #1412
使用 PEP 451 用于加载模板的API
PackageLoader
。 #1168修复了导致导入的宏无法访问当前模板的全局变量的错误。 #688
添加忽略功能
trim_blocks
使用+%}
。 #1036修复了一个错误,该错误导致自定义的仅限异步的筛选器在持续输入时失败。 #1279
修复了在未定义的变量上错误地引发未定义错误,而不是
Undefined
被退回的日期为NativeEnvironment
在Python3.10上。 #1335数据块可以标记为
required
。它们必须在某一时刻被覆盖,但不一定被直接的子级覆盖。 #1147不推荐使用
autoescape
和with
扩展,它们被内置到编译器中。 #1203这个
urlize
筛选器识别mailto:
链接和Takeextra_schemes
(或env.policies["urlize.extra_schemes"]
)承认其他计划。它尝试平衡URL中的圆括号,而不是忽略尾随字符。一般而言,解析已更新,以提高效率并匹配更多案例。没有方案的URL链接为https://
而不是http://
。 #522, #827, #1172 , #1195获取属性的筛选器,例如
map
和groupby
可以使用FALSE或空值作为默认值。 #1331修复了阻止在块或循环中设置的变量在自定义上下文函数中被访问的错误。 #768
修复了导致作用域块访问特殊循环变量的错误。 #1088
调用时更新模板全局变量
Environment.get_template(globals=...)
即使模板已经加载。 #295对于未执行的IF语句和条件表达式中的未定义筛选器,不要引发错误。 #842
增列
is filter
和is test
测试以测试名称是否为已注册的筛选器或测试。这允许在使用模板之前检查筛选器是否可用。测试函数可以用@pass_environment
,@pass_eval_context
,或@pass_context
。 #842 , #1248支持
pgettext
和npgettext
(消息上下文)在I18N扩展中。 #441这个
|indent
过滤器的width
参数可以是缩进依据的字符串。 #1167解析器可以识别十六进制、八进制和二进制整数。 #1170
Undefined.__contains__
(in
) raises anUndefinedError
instead of aTypeError
. #1198Undefined
is iterable in an async environment. #1294NativeEnvironment
supports async mode. #1362Template rendering only treats
\n
,\r\n
and\r
as line breaks. Other characters are left unchanged. #769, #952, #1313|groupby
filter takes an optionaldefault
argument. #1359功能和滤镜装饰器已重新命名并统一。旧名称已弃用。 #1381
pass_context
取代contextfunction
和contextfilter
。pass_eval_context
replacesevalcontextfunction
andevalcontextfilter
pass_environment
取代environmentfunction
和environmentfilter
。
异步支持不再需要精灵自己打补丁。它仍必须通过以下方式启用
Environment(enable_async=True)
。 #1390覆盖
Context.resolve
已弃用,请重写resolve_or_missing
取而代之的是。 #1380
版本2.11.3¶
已发布2021-01-31
提高数据传输的速度
urlize
通过减少正则表达式回溯来过滤。电子邮件匹配要求在域部分的开头有一个单词字符,并且只需要TLD中的单词字符。 #1343
版本2.11.2¶
发布时间2020-04-13
修复了导致可调用对象的错误
__getattr__
,就像Mock
被当做一个contextfunction()
。 #1145更新
wordcount
要触发的过滤器Undefined
方法,通过将输入包装在soft_str()
。 #1160修复了在Python32位上显示回溯时的挂起问题。 #1162
引发的对象显示未定义的错误
AttributeError
On Access不会导致递归错误。 #1177将更改恢复为
PackageLoader
从2.10开始,删除了对setupTools和pkg_resource的依赖,并添加了对名称空间包的有限支持。这些更改导致在使用PYTEST时出现问题。由于很难支持Python2和 PEP 451 同时,更改将恢复到3.0版。 #1182修复删除新行时错误消息中的行号。 #1178
特价商品
namespace()
模板中的Assignment对象在异步环境中工作。 #1180修复了在以下情况下删除行中间标记之前的空格的问题
lstrip_blocks
已启用。 #1138NativeEnvironment
doesn't evaluate intermediate strings during rendering. This prevents early evaluation which could change the value of an expression. #1186
版本2.11.1¶
已发布2020-01-30
修复了阻止在属性后查找密钥的错误 (
{{ data.items[1:] }}
)在异步模板中。 #1141
版本2.11.0¶
已发布2020-01-27
取消对Python2.6、3.3和3.4的支持。这将是支持Python2.7和3.5的最后一个版本。
添加了一个新的
ChainableUndefined
类以支持未定义对象上的getitem和getattr。 #977允许
{%+
语法(使用NOP行为)lstrip_blocks
已禁用。 #748添加了一个
default
属性的参数map
过滤。 #557从以下位置排除环境全局变量
meta.find_undeclared_variables()
。 #931为便于阅读,整型和浮点型文字可以使用‘_’分隔符,如12_345。 #923
修复中导致死锁的错误
LRUCache.setdefault
。 #1000这个
trim
Filter接受要修剪的可选字符串。 #828一种新的
jinja2.ext.debug
扩展添加了一个{% debug %}
标记可以快速转储当前上下文以及可用的筛选器和测试。 #174 , #798, #983比较前后的圆括号被保留,因此
{{ 2 * (3 < 5) }}
输出“2”而不是“False”。 #755 , #938添加新
boolean
,false
,true
,integer
和float
测试。 #824环境的
finalize
函数仅应用于表达式(常量或非常量)的输出,而不适用于静态模板数据。 #63当提供多条路径以
FileSystemLoader
,模板可以与目录同名。 #821总是要回来
Undefined
当省略else
子句中的{{ 'foo' if bar }}
表达式,而与环境无关undefined
班级。省略else
子句是有效的快捷方式,在使用StrictUndefined
。 #710 , #1079修复的行为
loop
控制变量,如length
和revindex0
在发电机上循环时。 #459, #751, #794 , #993只有在环境首次启用异步支持时才会加载它,以避免初始导入速度较慢。 #765
在异步环境中,
|map
如果需要,Filter将等待Filter调用。 #913在For循环中访问
loop
属性时,迭代器不会前进到当前迭代之前,除非length
,revindex
,nextitem
,或last
都被访问过。这使得它不太可能破裂groupby
结果。 #555 , #1101在异步环境中,
loop
属性length
和revindex
适用于异步迭代器。 #1101在异步环境中,如果需要,将等待来自属性/属性访问的值。 #1101
PackageLoader
doesn't depend on setuptools or pkg_resources. #970PackageLoader
has limited support for PEP 420 namespace packages. #1097支持
os.PathLike
中的对象FileSystemLoader
和ModuleLoader
。 #870NativeTemplate
correctly handles quotes between expressions."'{{ a }}', '{{ b }}'"
renders as the tuple('1', '2')
rather than the string'1, 2'
. #1020创建一个
NativeTemplate
直接创建一个NativeEnvironment
而不是默认Environment
。 #1091在呼叫之后
LRUCache.copy()
复制的队列方法指向正确的队列。 #843编译模板始终写入UTF-8,而不是默认使用系统编码。 #889
|wordwrap
filter treats existing newlines as separate paragraphs to be wrapped individually, rather than creating short intermediate lines. #175增列
break_on_hyphens
参数设置为|wordwrap
过滤。 #550被修饰为上下文函数的Cython编译函数将被传递给上下文。 #1108
当在编译时计算常量的链接比较时,结果遵循Python的返回行为
False
如果返回任何比较False
,而不仅仅是最后一个。 #1102模板中异常的Traceback显示了正确的行号和Python>=3.7的源代码。 #1104
对Python3中模板语法错误的跟踪不再显示内部编译器帧。 #763
添加
DerivedContextReference
节点,扩展可以使用该节点来获取当前上下文和局部变量,如loop
。 #860编译期间的常量折叠被应用于一些以前被忽略的节点类型。 #733
TemplateSyntaxError.source
is not empty when raised from an included template. #457传递一个
Undefined
价值目标get_template
(例如通过extends
,import
,或include
),引发了一个UndefinedError
始终如一。select_template
将在尝试列表中显示未定义的消息,而不是空字符串。 #1037TemplateSyntaxError
can be pickled. #1117
版本2.10.3¶
已发布2019-10-04
修复Babel入口点中的一个拼写错误
setup.py
这是在阻止安装。
版本2.10.2¶
已发布2019-10-04
版本2.10.1¶
发布2019-04-06
SandboxedEnvironment
牢靠的把手str.format_map
以防止通过不受信任的格式字符串执行代码。沙箱已被处理str.format
。
版本2.10¶
发布2017-11-08
添加了名为的新扩展节点
OverlayScope
它可用于创建将从派生上下文中查找所有变量的未优化范围。添加了一个
in
像In操作符一样工作的测试。这可以与组合使用reject
和select
。增列
previtem
和nextitem
循环上下文,提供对循环中的上一项/下一项的访问。如果这样的项不存在,则该值未定义。增列
changed(*values)
循环上下文,提供了一种简单的方法来检查自上次迭代(或更确切地说,自上次方法调用以来)值是否已更改添加了一个
namespace
函数创建一个特殊对象,该对象允许使用set
标签。这可用于跨作用域携带数据,例如,从循环体到循环之后的代码。添加了一个
trimmed
修饰符为{% trans %}
去掉换行符和周围的空格。我还添加了一项新策略,为所有人启用此功能trans
街区。这个
random
滤镜不再错误地恒定折叠,并将在每次呈现模板时生成新的随机选择。 #478添加了一个
unique
过滤。 #469增列
min
和max
过滤器。 #475添加了对所有比较运算符的测试:
eq
,ne
,lt
,le
,gt
,ge
。 #665import
statement cannot end with a trailing comma. #617, #618indent
filter will not indent blank lines by default. #685增列
reverse
论据dictsort
过滤。 #692添加
NativeEnvironment
这会将模板呈现为原生的Python类型,而不是字符串。 #708向块添加了筛选器支持
set
标签。 #489tojson
filter marks output as safe to match documented behavior. #718解决了获取用于回溯的调试本地变量可能修改模板上下文的错误。
修复了一个错误,其中有多个
{% elif ... %}
块导致了“缩进级别太多”错误。这些块现在编译为本机elif ..:
而不是else: if ..:
#759
版本2.9.6¶
发布2017-04-03
修复了快速解析模式中的自定义上下文行为 #675
版本2.9.5¶
发布2017-01-28
版本2.9.4¶
发布2017-01-10
版本2.9.3¶
发布2017-01-08
版本2.9.2¶
发布2017-01-08
版本2.9.1¶
发布2017-01-07
解决了宏调用块作用域的回归问题。使用与外部宏相同的标识符的嵌套调用程序块可能会错误地引用错误的变量。
版本2.9¶
发布2017-01-07,代号派生
更改环境中的缓存键定义。这修复了2.8中引入的性能回归。
添加了对以下各项的支持
generator_stop
关于受支持的Python版本(Python3.5及更高版本)更正了一个长期存在的问题,即运算符的数学运算优先级不是预期的。
通过新的异步模式添加了对Python3.6异步迭代器的支持。
添加了筛选器默认设置和类似内容的策略。
Urlize现在默认设置为“rel noabler”。
在2.x中支持旧式类的属性回退。
在扩展情况下支持TopLevel SET语句。
为Python3用户恢复了Cycler的行为。
现在,对于未定义的值,减法遵循与其他运算符相同的行为。
map
如果您忘记引用参数,朋友们现在会给出更好的错误消息。依赖于MarkupSafe 0.23或更高版本。
改进了
truncate
筛选器以支持更好的截断,以防字符串几乎不被截断。将宏自动转义的逻辑更改为基于调用时的运行库自动转义信息,而不是宏定义时间。
移植了修改版本的
tojson
从瓶子过滤到津佳,并将其与新的政策框架挂钩。块集现在已标记
safe
默认情况下。在Python2上,ASCII字符串的类型化现在可以使用
compiler.ascii_str
政策。测试现在不再接受任意表达式作为第一个参数,而是接受一个受限的。这意味着您现在可以在一个表达式中正确地使用多个测试,而不需要额外的括号。特别是,您现在可以编写
foo is divisibleby 2 or foo is divisibleby 3
正如你所料。极大地改变了作用域系统,使其与模板设计人员和开发人员的期望更加一致。现在,不同的包含和导入构造之间没有更多神奇的区别。现在,上下文总是以相同的方式传播。剩下的唯一区别是
with context
和without context
。这个
with
和autoescape
标记现在是内置的。添加了新的
select_autoescape
功能,帮助配置更好的自动转义更容易。修复了访问异步生成器的属性时沙箱中的运行时错误。
版本2.8.1¶
发布2016/12/29
修复了
for_qs
旗帜为urlencode
。修复了应用时的回归问题
int
设置为非字符串值。安全性:如果使用沙箱模式,则格式表达式现在使用与JJJA相同的规则进行沙箱处理。这解决了格式字符串可能出现的各种信息泄漏问题。
版本2.8¶
发布2015-07-26代号替换
增列
target
参数设置为urlize函数。添加了对以下各项的支持
followsymlinks
添加到文件系统加载器。截断过滤器现在计算长度。
添加了等值滤镜,帮助选择滤镜。
已将缓存键更改为使用绝对文件名(如果可用),而不是加载名称。
修正了某些迭代器的循环长度计算。
更改了当人们打破默认编码时,JJJA强制字符串成为Python2中的本机字符串的方式。
增列
make_logging_undefined
返回一个未定义的对象,该对象将故障记录到记录器中。如果缓存数据的解组失败,现在将重新加载模板。
实现了一个块
set
标签。默认缓存大小从较低的50增加到400。
固定
is number
测试以在所有的Python版本中接受长整数。变化
is number
将Decimal作为数字接受。添加了对后跟非默认参数的默认参数的检查。这一变化使
{% macro m(x, y=1, z) %}
语法错误。此代码的前一个行为无论如何都被破坏了(导致将缺省值应用于y
)。添加使用自定义子类的功能
jinja2.compiler.CodeGenerator
和jinja2.runtime.Context
通过向环境添加两个新属性 (code_generator_class
和context_class
)。 #404添加了对环境的Finalize回调上的上下文/环境/valctx修饰符函数的支持。
转义查询字符串以正确进行urlencode。以前,在那个地方,斜杠是不会逃脱的。
将‘base’参数添加到‘int’筛选器。
版本2.7.3¶
已发布2014-06-06
安全问题:已更正缓存文件夹的安全修复。此修复程序由RedHat提供。
版本2.7.2¶
已发布2014-01-10
前缀加载器未将本地变量正确转发到内部加载器。这一问题现在已得到解决。
安全问题:已将文件系统缓存的默认文件夹更改为特定于用户的文件夹,并在UNIX系统上受读写保护。看见 Debian bug 734747 以获取更多信息。
版本2.7.1¶
已发布2013-08-07
使用修复了一个错误
call_filter
无法在环境和上下文筛选器上正常工作。修复了缺乏对字节码缓存的Python3支持。
恢复了对在包含的模板中定义块的支持,因为这会破坏用户的现有模板。
修复了在运行时出现有关Python3的警告的情况下对未定义和节点进行哈希处理的一些警告。
添加了对正确散列未定义对象的支持。
修复了标题过滤器在大写字符串上不起作用的错误。
版本2.7¶
发布2013-05-20,代号翻译
选项加载器和前缀加载器现在分别分派源代码和模板查找,以便与所宣传的模块加载器结合使用。
固定文件大小格式。
添加了Babel提取的非静默选项。
增列
urlencode
仅支持将UTF-8编码为URL安全使用的自动引号的过滤器。如果应用程序希望更改此编码,它们可以覆盖筛选器。增列
keep-trailing-newline
配置到环境和模板,以有选择地保留最后的尾随换行符。访问
last
在循环上,上下文不再导致迭代器被消耗到列表中。更改了对Python的要求:现在需要2.6、2.7或>=3.3,由相同的源代码支持,使用“Six”兼容库。
允许
contextfunction
和其他要应用的装饰器__call__
。中从换行符更改为不同符号的支持。
wordwrap
过滤。添加了对静默忽略Memcache错误的支持。
添加了对在模板中保留尾随换行符的支持。
添加了对块左侧空格剥离的更细粒度支持。
增列
map
,select
,reject
,selectattr
和rejectattr
过滤器。添加了对以下各项的支持
loop.depth
以确定代码在递归循环中的深度。已禁用PyPy和Python3的py_Compile。
版本2.6¶
发布2011-07-24,代号卷积
内部属性现在会引发内部属性错误,而不是返回未定义的。这修复了将未定义的对象传递给预期的API的Python语义时的问题。
现在,对PyPy的回溯支持可以正常工作。(使用1.4进行了测试)
已为沙箱环境实施操作员拦截。这允许应用程序开发人员禁用内置操作符,以获得更好的安全性。(例如,将数学运算符限制为实际整数,而不是长整型)
Groupby筛选器现在支持按属性的属性进行分组的点符号。
作用域块现在可以正确处理顶层分配和导入。以前,导入在作用域块中突然“消失”。
在从字节码缓存加载代码之前,自动检测较新的Python解释器版本,以防止无效操作码出现段错误。这里的早期JJJA版本中的段错误不是JJJA错误,而是底层Python解释器中的限制。在升级了Python解释器之后,如果您注意到早期版本中的JJJA出现段错误,那么您不必升级,只需刷新字节码缓存即可。这就不再需要这样做了,Jinja现在会自动检测到这些情况。
总和过滤器现在可以按属性对值进行求和。这是一个向后不兼容的更改。以前筛选器的参数是可选的起始索引,默认为零。这现在成为该函数的第二个参数,因为它很少使用。
与SUM类似,Sort Now也允许按属性对项目进行排序。
像SUM和SORT一样,Join Now也能够将对象的属性连接为字符串。
内部评估上下文现在具有对环境的引用。
添加了映射测试,以查看对象是Dict还是具有相似接口的对象。
版本2.5.5¶
已发布2010-10/18
构建的文档不再是发行版的一部分。
版本2.5.4¶
已发布2010-10/17
修复了无法正确加载覆盖的扩展。
为调试器解决cpython中的一个错误,该错误会在64位大端体系结构上导致段错误。
版本2.5.3¶
已发布2010-10/17
修复了2.5.2中引入的运算符优先级错误。像“-foo.bar”这样的语句在表达式的第一部分(“(-foo).bar”)周围应用了隐式括号,而不是更正确的“-(foo.bar)”。
版本2.5.2¶
已发布2010-08-18
改进了setup.py脚本,以便更好地处理人们可能仍有的假设 (
--with-speedups
)。修复了排除新调试支持的打包错误。
版本2.5.1¶
发布2010-08-17
从模板调用的函数引发的StopIteration异常现在被拦截并转换为未定义的异常。这解决了很多调试方面的问题。(内部使用StopIteration中止模板执行)
宏调用性能略有提高。
Babel提取现在可以正确地提取新样式的getText调用。
使用变量
num
在NewStyle中,除复数计数以外的其他内容的getText将不再引发KeyError
。已删除内置标记类并切换到markupSafe。为了向后兼容,纯的Python实现仍然存在,但被Jinsa开发人员从markupSafe中删除。调试支持包含一个单独的名为“调试支持”的功能,默认情况下处于禁用状态,因为它只与Python2.4相关
修复了一元运算符的优先级错误的问题。
版本2.5¶
发布2010-05-29,代号不连贯
通过添加对不区分大小写的搜索的支持,改进了排序过滤器(应该已经这样工作了很长一段时间)。
修复了get属性常量折叠的错误。
支持新样式的getText翻译,从而产生更好的模板内用户界面和更一致的目录。
现在可以在创建环境后注册扩展。
版本2.4.1¶
发布2010-04-20
修复了未定义的错误报告错误。
版本2.4¶
发布2010-04-13,代号关联
环境模板加载函数现在透明地传递模板对象(如果它被传递给它)。这使得可以从传递给模板的模板对象导入或扩展。
添加了一个
ModuleLoader
可以从预编译源加载模板的。该环境现在提供了一种方法,可以将模板从已配置的加载器编译到压缩文件或文件夹中。_Speedups C扩展现在支持Python3。
添加了对自动转义切换节和求值上下文的支持。
延期现在是当务之急。
版本2.3.1¶
已发布2010-02-19
修复了所有Python版本上的错误报告错误
修复了Python2.4上的错误报告错误
版本2.3¶
发布2010-02-10,代号3000 Python
版本2.2.1¶
发布2009-09-14
修正了Jython上的JJJA的一些小问题。
版本2.2¶
发布2009-09-13,代号为孔令辉
Include语句现在可以用
ignore missing
若要跳过非现有模板,请执行以下操作。优先顺序
not
养大的。现在可以写下not foo in bar
作为的别名foo not in bar
就像 Python 一样。在此之前,语法需要括号 (not (foo in bar)
),这很奇怪。修复了在定义宏或使用
{% call %}
在循环内添加标签。修复了解析器中的错误,该错误
{{ foo[1, 2] }}
不可能。允许引用所包含模板中未在调用者框架中使用的外部作用域中的名称 #327
修复了将名称用作迭代变量和常规变量时导致内部错误的错误 after 如果该变量未使用,则返回循环 before 循环。 #331
添加了对可选选项的支持
scoped
块的修改器。添加了对行注释的支持。
添加了
meta
模块。将环境上的(未记录的)属性“overlay”重命名为“overlayed”,因为它与同名的方法冲突。
加速扩展现在默认情况下是禁用的。
版本2.1.1¶
发布2008-12-25
修复了因在空递归循环上循环而导致的转换错误。
版本2.1¶
2008年11月23日发布,代号Yasuzō
修复了嵌套循环和特殊循环变量的错误。在更改之前,内部循环在迭代后从外部循环变量覆盖循环变量。
修复了I18N扩展导致显式复数化块查找错误变量的错误。
修复了词法分析器中的一个限制,
{{ foo.0.0 }}
不可能。基于索引的常量值变量订阅现在返回一个未定义的对象,而不是引发索引错误。这是一个由急切的优化引起的错误。
I18N扩展查找
foo.ugettext
现在紧随其后的是foo.gettext
如果安装了翻译对象。这使得处理自定义翻译类变得更容易。修复了带条件扩展的令人困惑的行为。循环在某些情况下被部分执行,即使它们不是可见区域的一部分。
增列
sort
工作方式类似的过滤器dictsort
而是针对任意序列。修复了宏中空语句的错误。
实现了一个字节码缓存系统。
模板上下文现在是弱可引用的
包含和导入“带上下文”现在转发所有变量,而不仅仅是初始上下文。
添加了名为的循环辅助对象
cycler
。添加了一个名为
joiner
。添加了一个
compile_expression
方法添加到允许将JJJA表达式编译成可调用的Python对象的环境中。修复了urlize中的一个逃逸错误
版本2.0¶
发布2008-07-17,代号Jinja维图斯
对象的订阅(查找属性和项)略有变化。现在可以通过使用点符号查找或括号语法来为属性或项赋予更高的优先级。这也略微改变了天冬氨酸转氨酶。
Subscript
已经消失,取而代之的是Getitem
和Getattr
。添加了对扩展的预处理和令牌流筛选的支持。这将允许扩展允许在模板数据和类似内容中进行简化的GetText调用。
增列
TemplateStream.dump
。添加了对隐式字符串文字连接的缺少支持。
{{ "foo" "bar" }}
相当于{{ "foobar" }}
else
对于条件表达式是可选的。如果未给出,则它的计算结果为false
。通过提供位置改进了未定义值的错误报告。
filesizeformat
筛选器现在默认使用十进制前缀,并且可以使用第二个参数设置为二进制模式。修复了终结器中的错误
版本2.0rc1¶
发布2008-06-09
《精灵2》的第一版。