【发布时间】:2020-11-01 21:40:13
【问题描述】:
这里是菜鸟鹈鹕问题:
我想在我的 pelican 网站的主页上包含与博客相关的帖子,但它只是读取一个 rst 文件并将结果放在主页上。我可以把一个帖子放在一起,但这真的不是我想要的。
我当然可以破解 index.html 模板并将文本直接放在那里。但我想做的是放一些代码来解析文件并将相同的文本放在那里。
【问题讨论】:
标签: python pelican static-site-generation
这里是菜鸟鹈鹕问题:
我想在我的 pelican 网站的主页上包含与博客相关的帖子,但它只是读取一个 rst 文件并将结果放在主页上。我可以把一个帖子放在一起,但这真的不是我想要的。
我当然可以破解 index.html 模板并将文本直接放在那里。但我想做的是放一些代码来解析文件并将相同的文本放在那里。
【问题讨论】:
标签: python pelican static-site-generation
使用 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 }} 变量放置在索引模板中的所需位置来插入呈现的内容。
【讨论】: