使用Jinja2渲染内容字段。
项目描述
lektor-jinja-content
这是一个Lektor插件,允许您在类似字符串的内容字段中渲染Jinja2。例如,这意味着您可以在字符串或Markdown类型的内容字段中编写Jinja逻辑,访问Lektor的 模板上下文,并访问所有正常的Jinja过滤器,包括由 其他插件 提供的过滤器。在Markdown字段(或其他渲染字段,如 rst),首先处理Jinja,然后是格式化处理器。
您可以设置和使用Jinja变量,但它们仅在其渲染的字段中有意义。
使用此插件时,您必须确保渲染的内容 是有效的Jinja。Jinja语法错误将抛出异常。如果您想要内容不是有效的Jinja,别忘了使用方便的 {% raw %} {% endraw %}
标签。
注意。 使用此插件会导致使用 Jinja 渲染更多项目,因此您的构建过程会变慢。作为一个早期基准和轶事,即使我实际上没有需要渲染的 Jinja-Content,我的小型网站构建时间也从 4.89 秒增加到 5.39 秒。我计划稍后添加配置此插件的功能,这样您就不必将 所有 内容都通过 Jinja 运行。
示例
查询上下文:{{ site.get('/').title }}
或 {{ this.path }}
逻辑
{% set meaning_of_life, meaning_of_universe = this.life, this.universe %}
{% if meaning_of_life == meaning_of_universe == 42 %}
{% set meaning_of_it_all = meaning_of_life %}
{% else %}
{% set meaning_of_it_all = 'Undefined' %}
{% endif %}
{{ meaning_of_it_all }}
Markdown 中的 Jinja
[link text]({{ this|url }})
reStructuredText 中的 Jinja
`link text <{{ this|url }}>`_
运行测试网站以获取更多示例。
此插件可能的未来。
此插件打开了一些非常强大且非常有趣的功能的大门。以下是一些思考点:
- 目前,在
_data
和_blocks
中的每个类似字符串的字段都会被处理,即使是一些像_slug
和_template
这样的东西。这些其他东西可以用吗? - 有些人想能够在内容文件/声明中包含 Markdown。此插件可能通过 包括和扩展 为此铺平道路。
- 我们能否使静态文件 Jinja 化?
- 数据包?
- 关于模块化呢?
项目详细信息
下载文件
为您的平台下载文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
lektor-jinja-content-0.4.4.tar.gz (5.3 kB 查看哈希值)
构建分布
关闭
lektor-jinja-content-0.4.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fda5a1060062d9c1cad9a99be1aee0a5f87279a90712c441a09db6238daad558 |
|
MD5 | ab1869e9d7dd3bf5e27f580687abf421 |
|
BLAKE2b-256 | b5a91a2ed0b909bf6483f44e5386a981af6984f1f55f9fcff17824596b5fd7dc |
关闭
lektor_jinja_content-0.4.4-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 896d751903aad79f829820a7d4f658d59ef1826856f2318f6839fcad475d4c29 |
|
MD5 | c7087a3adb54ed7e3e109f8a372f661b |
|
BLAKE2b-256 | 9dd26af0850c83d74ea3c93c0de5b6ef0988359bea513b165f3fc78f477e7e05 |