簡體   English   中英

如何在液體標記內串聯Iterator的值(Jekyll)

[英]How to concatenate the value of iterator inside liquid tag (Jekyll)

我正在遍歷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>

數據:

---
layout: default
title: Home
chapters:
  title1: "CHAPTER 1: LEADERSHIP"
  ch1:
    - Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    - Aliquam tincidunt mauris eu risus.
    - Vestibulum auctor dapibus neque.

  title2: "CHAPTER 2: THE EXPERIENCE"
  ch2:
    - Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    - Aliquam tincidunt mauris eu risus.
    - Vestibulum auctor dapibus neque.
---

無效的部分是這樣的:

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

我需要ch的值為ch1,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>

您可以將YAML作為Ruby關聯數組進行訪問,但是使用+運算符的內聯操作將無法使用。 您可以通過使用append過濾器來解決此問題。

嘗試這個:

{% assign ch_key = 'ch' | append: i %}
{% for topic in page.chapters[ch_key] %}
    <li>{{ topic }}</li>
{% endfor %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM