Ruby 如何在liquid标记(Jekyll)中连接迭代器的值

Ruby 如何在liquid标记(Jekyll)中连接迭代器的值,ruby,for-loop,yaml,jekyll,liquid,Ruby,For Loop,Yaml,Jekyll,Liquid,我正在一个Yaml对象中循环,需要将'I'的值附加到正确对象的地址 <div class="chapter"> {% for i in (1..7) %} <strong class="title">{{ page.chapters.title + i }}</strong> <ul> {% for topic in page.chapters.ch + i %} <li>

我正在一个Yaml对象中循环,需要将'I'的值附加到正确对象的地址

<div class="chapter">
  {% for i in (1..7) %}
    <strong class="title">{{ page.chapters.title + i }}</strong>
    <ul>
      {% for topic in page.chapters.ch + i %}
        <li>
          {{ topic }}
        </li>
      {% endfor %}
    </ul>
  {% endfor %}
</div>
不起作用的部分是:

{% for topic in page.chapters.ch + i %}

我需要ch的值为ch1、ch2等。

您可以作为Ruby关联数组访问YAML,但是使用
+
操作符的内联操作将不起作用。您可以通过使用
append
过滤器来解决这个问题

试试这个:

{% assign ch_key = 'ch' | append: i %}
{% for topic in page.chapters[ch_key] %}
    <li>{{ topic }}</li>
{% endfor %}
{%assign ch_key='ch'| append:i%}
{%页中的主题。章节[ch_key]]}
  • {{topic}}
  • {%endfor%}
    我通过更新数据模型和创建嵌套循环实现了这一点:

    ---
    chapters:
      - title: "CHAPTER 1: LEADERSHIP"
       chapterList:
         - Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
         - Aliquam tincidunt mauris eu risus.
         - Vestibulum auctor dapibus neque.
    
     - title: "CHAPTER 2: THE EXPERIENCE"
       chapterList:
         - Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
         - Aliquam tincidunt mauris eu risus.
         - Vestibulum auctor dapibus neque.
    ---
    <div class="chapter">
      {% for chapter in page.chapters %}
       <strong class="title">{{ chapter.title }}</strong>
         <ul>
            {% for chapterItem in chapter.chapterList %}
             <li>
                {{ chapterItem }}
             </li>
             {% endfor %}
         </ul>
      {% endfor %}
    </div>
    
    ---
    章:
    -标题:“第1章:领导力”
    章节列表:
    -Lorem ipsum dolor sit amet,是一位杰出的领导者。
    -毛里斯·尤里索斯的阿利夸。
    -前庭拍卖人dapibus neque。
    -标题:“第二章:经验”
    章节列表:
    -Lorem ipsum dolor sit amet,是一位杰出的领导者。
    -毛里斯·尤里索斯的阿利夸。
    -前庭拍卖人dapibus neque。
    ---
    {page.chapters%%中的章的百分比}
    {{chapter.title}}
    
      {chapter.chapterList%中的chapterItem为%1}
    • {{chapterItem}}
    • {%endfor%}
    {%endfor%}
    page.chapters.ch
    是一个字符串还是一个数字?这将起作用:{%page.chapters.ch1%}中的主题,或者这:{%page.chapters.ch2%},但我想使用一个循环来增加这些数字。在这里,信息架构的问题正在提出。你的目标是什么?你想出版一本书吗?或者,您只是试图控制单柱显示?你能再解释一下你的数据模型吗?
    ---
    chapters:
      - title: "CHAPTER 1: LEADERSHIP"
       chapterList:
         - Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
         - Aliquam tincidunt mauris eu risus.
         - Vestibulum auctor dapibus neque.
    
     - title: "CHAPTER 2: THE EXPERIENCE"
       chapterList:
         - Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
         - Aliquam tincidunt mauris eu risus.
         - Vestibulum auctor dapibus neque.
    ---
    <div class="chapter">
      {% for chapter in page.chapters %}
       <strong class="title">{{ chapter.title }}</strong>
         <ul>
            {% for chapterItem in chapter.chapterList %}
             <li>
                {{ chapterItem }}
             </li>
             {% endfor %}
         </ul>
      {% endfor %}
    </div>