Zola如何访问页面TOML头部的自定义额外数据?
Zola 模板访问页面自定义字段解决方案
问题根因
Zola 仅会将 Front Matter 中 [extra] 专属块内的自定义字段映射到模板的 page.extra 变量中,你直接写在顶层的 authors、url、cover 属于非内置自定义字段,会被系统直接忽略,不会进入 extra 对象。
解决方法
1. 调整页面TOML头结构
将所有自定义字段移入 [extra] 块下,内置字段(如title、date、draft等)保留在顶层即可,修改后格式如下:
+++ title = "Some book" [extra] authors = "Mr. A, Mrs. B" url = "https://www.books.com/blabla" cover = "isbn.jpg" +++
2. 模板访问自定义字段
你原有模板的访问逻辑本身是合法的,也可以使用更简洁的点语法调用字段:
{% for p in section.pages %} <li>{{ p.title }} <img src='{{ p.extra.cover }}' alt="{{ p.title }} 封面"> </li> {% endfor %}
可选配置
如果需要给自定义字段设置全局默认值、或开启必填校验,可以在站点根目录的 config.toml 中补充对应 extra 字段定义。
内容的提问来源于stack exchange,提问作者Achim
相关产品推荐
相关产品推荐

