Jekyll自定义Front Matter变量不生效,是否需额外配置?
嘿,我来帮你排查这个变量不生效的问题~ 你遇到的情况通常是几个小细节没注意到,咱们一步步来:
1. 先确认Front Matter的格式绝对正确
Jekyll对Front Matter的格式要求很严格:
- 必须用三个连续的英文半角短横线(
---)包裹,前后不能有任何多余的字符(比如开头的---前面不能有空格、换行以外的内容,也不能用全角的“——”) - 变量名和值之间的冒号后面必须加空格(你的代码里
hello: "teste liquid"是对的,但如果不小心写成hello:"teste liquid"就会失效)
2. 检查页面文件的扩展名
Jekyll只会自动解析带有.md(Markdown)或.html扩展名的文件,如果你的文件是.txt或者其他非支持的格式,Front Matter里的变量根本不会被处理。比如要确保文件名是index.md或者about.html这类。
3. 验证布局文件是否正确渲染页面内容
你用了layout: default,那得确保_layouts/default.html里有{{ content }}这个标签——它是用来把当前页面的内容插入到布局里的。如果布局里没有这个标签,你的<h1>{{ page.hello }}</h1>根本不会被渲染出来,自然看不到变量内容。
4. 试试简化变量调用方式
在页面本身的内容里,其实可以直接用{{ hello }}来调用Front Matter里的变量(不需要page.前缀),你可以替换成这个写法试试,看能不能输出内容。
5. 清理缓存重新构建
有时候Jekyll的缓存会“记住”旧内容,导致新的变量不生效。你可以手动删除项目根目录下的_site文件夹,然后重新运行jekyll serve或者jekyll build,强制Jekyll重新构建整个站点。
如果以上步骤都试过还是不行,你可以看看运行Jekyll时的控制台输出,有没有报错信息——比如Front Matter格式错误、布局文件不存在这类提示,这些往往能直接定位问题。
给你一个正确的示例参考:
--- layout: default hello: "teste liquid" --- <h1>{{ page.hello }}</h1>
内容的提问来源于stack exchange,提问作者virginiarcrz
相关产品推荐
相关产品推荐

