Ruby 如何在liquid标记(Jekyll)中连接迭代器的值
我正在一个Yaml对象中循环,需要将'I'的值附加到正确对象的地址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>
<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>