如何在Jekyll中用Liquid遍历未知名称的页面YAML变量?
解决Jekyll中遍历页面YAML前置变量的问题
嘿,我来帮你搞定这个遍历YAML变量的需求!你之前的写法问题出在对Jekyll对象的理解上——Jekyll里并没有page.data这个属性,要获取页面YAML前置里的变量,我们需要用page.frontmatter这个专门存储前置数据的哈希对象。
正确的Liquid代码写法
直接遍历page.frontmatter,然后通过数组下标获取键和值(Liquid里遍历哈希时,每个元素是一个[键, 值]的数组):
{% for key_value in page.frontmatter %} key-name : {{ key_value[0] }} , value : {{ key_value[1] }} <br> {% endfor %}
效果演示
假设你的文章YAML前置内容是:
--- layout: post title: MyBlog custom_description: 这是我的第一篇博客 ---
运行上面的代码后,会输出:
key-name : layout , value : post key-name : title , value : MyBlog key-name : custom_description , value : 这是我的第一篇博客
额外说明
如果你直接遍历page对象({% for pair in page %}),会输出很多Jekyll内置的页面属性(比如content、url、date等),而page.frontmatter只会包含你在YAML前置里手动定义的变量,完全符合你“只获取自定义YAML变量”的需求。
内容的提问来源于stack exchange,提问作者demiton
相关产品推荐
相关产品推荐

