Jekyll自定义Front Matter无法生效,导航栏无内容求助
排查Jekyll Front Matter在布局中无法调用的问题
1. 先盯紧Front Matter的格式规范
- 必须用**三个英文连字符(
---)**把内容包在最开头,前后不能有任何空白、注释或其他字符,少一个都不行 - 键值对要写对:冒号后面必须跟空格,比如
food: Pizza,不能写成food:Pizza - 别用中文标点,全程用英文符号
2. 确认页面和布局的关联
- 你的
.md文件Front Matter里必须明确写layout: default,没写的话Jekyll会用默认布局,根本不会用你改的default.html
正确示例:--- layout: default food: Pizza ---
3. 检查布局里的变量作用域
- 确保
default.html里的{{ page.food }}没嵌套在{% for %}这类循环/条件块的错误作用域里 - 如果是通过
{% include navigation.html %}引入导航栏,include文件默认能访问父模板的page对象,别在include时乱传变量搞混作用域
4. 导航栏site.data.samplelist.toc2的问题排查
- 先确认
_data文件夹下有没有samplelist.yml,文件里的toc2节点是否存在,格式是否正确
示例正确的_data/samplelist.yml结构:toc2: - title: 首页 url: / - title: 关于 url: /about/ - 导航栏的遍历逻辑要写对,比如:
{% for item in site.data.samplelist.toc2 %} <a href="{{ item.url }}">{{ item.title }}</a> {% endfor %}
5. 清缓存重构建
- Jekyll会缓存旧内容,有时候改了没生效是缓存搞的鬼,执行命令清缓存再重新运行:
bundle exec jekyll clean && bundle exec jekyll serve
内容的提问来源于stack exchange,提问作者Siena
相关产品推荐
相关产品推荐

