【问题标题】:Pelican: include file's contents on main pagePelican:在主页上包含文件的内容
【发布时间】:2020-11-01 21:40:13
【问题描述】:

这里是菜鸟鹈鹕问题:

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

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

【问题讨论】:

    标签: python pelican static-site-generation


    【解决方案1】:

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

    【讨论】:

    • 这样说就很明显了。不过谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多