Pelican:在主页上包含文件的内容
Pelican: include file's contents on main page
Noob Pelican 问题在这里:
我想在我的 pelican 网站的主页上包含与博客无关的内容 posts,但它只是读取第一个文件并将结果放在主页上。我可以把一个 post 放在一起,但这真的不是我想要的。
我当然可以破解 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 }}
变量放置在索引模板中的所需位置来插入呈现的内容。
Noob Pelican 问题在这里:
我想在我的 pelican 网站的主页上包含与博客无关的内容 posts,但它只是读取第一个文件并将结果放在主页上。我可以把一个 post 放在一起,但这真的不是我想要的。
我当然可以破解 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 }}
变量放置在索引模板中的所需位置来插入呈现的内容。