我尝试使用帖子标记并生成以逗号分隔的链接列表,但似乎无法弄清楚如何完成它。以下是我所拥有的,也许我没有正确使用Jekyll的阵列?
for (email of emails) {
console.log (email);
}
答案 0 :(得分:1)
迭代for循环,如果它不是最后一次迭代则生成一个逗号,并捕获输出:
{% capture tagscommas %}
{% for tag in page.tags %}
<a href="/tag/{{tag}}">{{tag}}</a>
{% unless forloop.last %},{% endunless %}
{% endfor %}
{% endcapture %}
{{tagscommas}}
如果你想避免带换行符的输出,只需将所有代码放在一行中,直到jekyll使用不生成空行的新{%-标记。
如果您不介意在变量中输出,只需使用内部for
循环在遍历标记数组时直接显示链接。
答案 1 :(得分:0)
编辑回答:
这里有两个问题:
{% assign tag_array = [] %}
什么也没做。
{{ tag_array | inspect }}
返回nil
,{% assign tag_array = tag_array | push: 'anything' %}
中的推送(如nil
)始终返回nil
。
为了得到一个空数组,你可以:
empty_array: []
,并按照以下方式使用它:{% assign tag_array = site.empty_array %}
或强>
{% assign tag_array = "" | split: "/" %}
{{ tag_array | inspect }}
现在返回[]
。
{% assign link = <a href="/tag/{{tag}}">{{tag}}</a> %}
无法使用液体。 {{ link | inspect }}
会返回nil
。
如果要连接字符串,可以使用:
prepend
或append
liquid filter,例如{% assign link = '<a href="/tag/' | append: tag | append: '">' | append: tag | append: '</a>' %}
replace
过滤器如下:
{% assign link_template = '<a href="/tag/%%placeholder%%">%%placeholder%%</a>' %}
{% assign link = link_template | replace: "%%placeholder%%", tag %}
capture
标记如下:{% capture link %}<a href="/tag/{{ tag }}">{{ tag }}</a>{% endcapture %}
这现在有效:
{% assign tag_array = "" | split: "/" %}
{% for tag in post.tags %}
{% capture link %}<a href="/tag/{{ tag }}">{{ tag }}</a>{% endcapture %}
{% assign tag_array = tag_array | push: link %}
{% endfor %}
{{ tag_array | join: ', ' }}