2

菜鸟鹈鹕问题在这里:

我想在我的 pelican 网站的主页上包含与博客无关的帖子,但它只是读取一个 rst 文件并将结果放在主页上。我可以把一个帖子放在一起,但这真的不是我想要的。

我当然可以破解 index.html 模板并将文本直接放在那里。但我想做的是放一些代码来解析文件并将相同的文本放在那里。

4

1 回答 1

3

使用 Python 作为设置文件格式的好处之一是 Pelican 可以做你想做的事,而无需编写插件或修改 Pelican 本身。

假设您存储了一些intro.rst要在index.html模板中呈现的介绍性内容。Pelican 设置文件的以下添加将生成一个INTRO包含intro.rst文件呈现内容的新变量。

from pelican.settings import DEFAULT_CONFIG
from pelican.readers import RstReader

config = DEFAULT_CONFIG.copy()
# If you need to override default settings (e.g., DOCUTILS_SETTINGS / DEFAULT_LANG):
# config["DEFAULT_LANG"] = "de"

# .read() returns (content, metadata). Keep content only; we don’t need the metadata.
# Assign content to an ALL-CAPS variable to access from template:
INTRO, _ = RstReader(config).read("path/to/intro.rst")

有了上述设置,您应该能够通过将{{ INTRO }}变量放置在索引模板中的所需位置来插入呈现的内容。

于 2020-11-07T06:45:04.333 回答