问题描述
Noob Pelican问题在这里
我想在我的鹈鹕网站的主页上包含与博客无关的帖子的内容,而只是读取第一个文件并将结果放在主页上。我可以将一个帖子放在一起,但这确实不是我想要的。
我当然可以修改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 }}
变量放置在索引模板中的所需位置来插入呈现的内容。