【问题标题】:How to group post "elements" in Jekyll如何在 Jekyll 中对帖子“元素”进行分组
【发布时间】:2016-06-21 15:04:36
【问题描述】:

我想通过以某种方式创建多个元素然后在液体中使用它们来将我的帖子元素细分为多个部分。

例如,我试图把这个放在post front matter中:

element: some text
element: some other text
element: even more text

但如果我尝试引用液体中的那些:

{% for elemento in post.element %}
      {{ elemento  }}
{% endfor %}

然后只考虑最后一个“元素”。

这让我觉得你不能有多个同名的变量并循环访问它们,因为 Jekyll 只会读取最后一个而忽略前面的同名变量。

我不想使用不同的变量名(如 element1、element2 等),因为每篇文章都有不同数量的元素。

有什么方法可以做到这一点?

非常感谢。

【问题讨论】:

    标签: markdown jekyll liquid


    【解决方案1】:

    您可以在前面的内容中使用 元素数组

    elements :
     - valueOne
     - valueTwo
    

    elements: [valueOne, valueTwo]
    

    然后,你可以在 elements 中循环:

    从您的帖子或布局内部

    <ul>
    {% for element in page.elements %}
      <li>{{ element }}</li>
    {% endfor %}
    </ul>
    

    site.posts 循环内部:

    {% for post in site.posts %}
      {% for element in posts.elements %}
        <li>{{ element }}</li>
      {% endfor %}
    {% endfor %}
    

    【讨论】:

    • 谢谢你,这很完美,正是我想要的。我只需要用“post”替换“page”。
    • 另外,我必须使用变量 element.element 而不仅仅是“元素”,否则它看起来像这样:{“元素”=>“文本”}。我相应地编辑了答案。
    • 我已经编辑了我的答案以更准确。您可以使用页面或帖子,这取决于上下文。而且,如果您需要使用element.element,那就是您有一个elements: [ element: value1, element: value2] 数组,并且您在最后一个值覆盖前一个值时遇到同样的问题。适当使用 elements: [valueOne, valueTwo] 是否带有引用值。
    猜你喜欢
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2022-10-03
    • 2012-11-24
    • 2012-03-12
    • 2014-09-02
    • 1970-01-01
    相关资源
    最近更新 更多