Pelican插件,用于在文章内容中使用Jinja模板代码
项目描述
Jinja2Content插件用于Pelican
此插件允许在Pelican文章和页面中使用Jinja2指令。
在此方法中,您的内容首先由Jinja模板引擎进行渲染。然后,结果按常规传递到Pelican的普通读取器。这有两个使用后果。首先,这意味着通常可见于您的文章或页面模板的Pelican上下文和Jinja变量在渲染时间不可用。其次,这意味着如果您的任何输入内容可能被解析为Jinja指令,它们将被如此渲染。这种情况不太可能意外发生,但了解这一点很好。
所有需要Pelican变量(如article、category等)的输入应放在您的主题模板中。因此,此插件的主要用途是自动生成文章或页面的部分。
Markdown、reStructured Text 和 HTML 输入都受到支持。注意,启用此插件后,所有这些文件类型的输入文件都将使用 Jinja 渲染器进行预处理。目前不支持有选择地启用或禁用 jinja2content
仅针对部分输入源。
示例
一种用法是将重复的 HTML 嵌入 Markdown 文章中。由于 Markdown 不允许自定义布局,如果需要比仅显示图像更复杂的操作,则必须在 Markdown 文章中嵌入 HTML(即硬编码 <div>
标签,然后从主题的 CSS 中选择它们)。但是,使用 jinja2content
可以这样做:
文件 my-cool-article.md
# My cool title
My cool content.
{% from 'img_desc.html' import img_desc %}
{{ img_desc("/images/my-cool-image.png",
"This is a cool tooltip",
"This is a very cool image.") }}
其中文件 img_desc.html
包含以下内容:
{% macro img_desc(src, title='', desc='') -%}
<div class="img-desc">
<p><img src="{{ src }}" title="{{ title }}"></p>
{% if desc %}
<p><em>{{ desc }}</em></p>
{% endif %}
</div>
{%- endmacro %}
结果将是:
# My cool title
My cool content.
<div class="img-desc">
<p><img src="/images/my-cool-image.png" title="This is a cool tooltip"></p>
<p><em>This is a very cool image.</em></p>
</div>
然后,Markdown 将被渲染成 HTML,然后主题的模板才会被应用。
这样,Markdown 文章可以更多地控制传递给主题的 article.html
模板的内容,而不必污染 Markdown 文件中的 HTML。另一个额外的好处是现在 img_desc
可以在文章间重复使用。
注意,使用 jinja2content
渲染的模板可以包含 Markdown 和 HTML,因为它们是在 Markdown 内容转换为 HTML 之前添加的。
安装
此插件可以通过以下方式安装:
pip install pelican-jinja2content
配置
此插件接受设置 JINJA2CONTENT_TEMPLATES
,它应设置为相对于 PATH
(主内容目录,通常是 "content"
)的路径列表。 jinja2content
将按顺序在这些目录中查找模板。如果它们在任何目录中都没有找到,则使用主题的模板文件夹。
扩展
此插件的结构使得扩展其他文件类型的读取器以渲染 Jinja 模板逻辑变得相当容易。您只需要创建一个新的继承自 JinjaContentMixin
的读取器类,然后是您想要的读取器类。请参阅源中的类定义以获取示例。
贡献
欢迎并非常感谢贡献。每一份贡献都很重要。您可以通过改进文档、添加缺失的功能和修复错误来做出贡献。您还可以通过审查和评论 现有问题 来帮忙。
要开始为此插件做出贡献,请查阅 Pelican 贡献 文档,从 贡献代码 部分开始。
致谢
- 原始实现由 @joachimneu 完成,并由 @Leonardo 重新工作。
- 由 @micahjsmith 更新以支持 reST 和 HTML 输入。
- 由 @justinmayer 转换为新的插件格式。
- 替换了 pelican-jinja2content,该插件已不再维护。
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
构建分布
pelican-jinja2content-1.0.1.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | ffc3da9139d55c3667a908330d9babe2b99808f56c87dcb292081324fe114a4b |
|
MD5 | c3d39494d9ffd47b1bc70d94490be67c |
|
BLAKE2b-256 | bb1102760aa8df46931babd01214f121e35d120a993cdbf914e227bf26650337 |
pelican_jinja2content-1.0.1-py3-none-any.whl 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | aeececa7a250aaa0d45a0887ef418409fbf5c89916387de2163b0f8f3bc4ab77 |
|
MD5 | 82ccab970893f6c684dabc99a6172ce7 |
|
BLAKE2b-256 | df726753de2c9b4f7166efef899c88b232f904e6000efe667cbc69196b156cde |