Jekyll 如何向Liquid中的数组添加新变量
我有一个初始化如下的数组:Jekyll 如何向Liquid中的数组添加新变量,jekyll,liquid,Jekyll,Liquid,我有一个初始化如下的数组: chapters: - number: 13 latin: >- Some Latin text... german: >- Some German text... - latin: >- Some Latin text... german: >- Some German text... - latin: >- Some Latin text.
chapters:
- number: 13
latin: >-
Some Latin text...
german: >-
Some German text...
- latin: >-
Some Latin text...
german: >-
Some German text...
- latin: >-
Some Latin text...
german: >-
Some German text...
等等
现在我想自动确定我还没有分配给章节的编号。因为我以后需要它们,所以我想把它们写进number变量,这样每个章节都有一个固定的编号
{% assign chapterNumber = 0 %}
{% for chapter in page.chapters %}
{% if chapter.number == nil %}
{% assign chapter.number = chapterNumber | plus: 1 %}
{% assign chapterNumber = chapter.number %}
{% else %}
{% assign chapterNumber = chapter.number %}
{% endif %}
{% endfor %}
但是,章节号将保持为空,为什么?因为它是零,不能填吗?无法将变量添加到液体中的数组中吗?这不是数组,这是散列 同时,您可以创建和,您不能用liquid本机创建或更改散列
实现这一点的唯一方法是使用。如果我对David的理解正确,这应该是可行的:
{% assign chapterNumber = 0 %}
{% for chapter in page.chapters %}
{% if chapter.number == nil %}
{% assign chapterNumber = chapterNumber | plus: 1 %}
{% else %}
{% assign chapterNumber = chapter.number %}
{% endif %}
... code that handles the chapter and references chapterNumber
{% endfor %}
是的,我以前就是这样做的,但是由于我对不同的文件进行了分割,我不得不将这段代码复制到我想要的每个地方,以获得章节号。啊,好的!我对jekyll的开发比较了解,所以还有一些事情我不太了解。