鹈鹕:在主页上包含文件的内容



Noob Pelican问题在这里:

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

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

使用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 }}变量放置在索引模板中所需的位置来插入渲染的内容。

最新更新