尝试从“前题”值中获取集合

时间:2020-05-17 07:57:24

标签: jekyll liquid

嗨,我是Jekyll的新手,并且建立了一个基本博客。现在,我的想法是遍历每个博客帖子的集合,以获取一些精美的HTML。因为据我所知,您不能简单地将HTML添加到降价促销中。

// config.yml

collections:
  - hollowknight

因此,我建立了一个名为hollowknight的收藏集,并且收到了有关空心骑士的博客文章。 在博客文章的前题中,我有collectionid: 'hollowknight'。在用于博客文章的“布局”中,我尝试了以下操作:

// post.html

{% capture collection %}site.{{ page.collectionid }}{% endcapture %}

{% for section in collection %}
  {{ section.title }}
{% endfor %}

因此,想法是将collection变量设置为site.hollowknight,如在config和Front Matter中配置的那样。我在收藏集中设置了一篇文章,但未显示。

有没有办法实现这一目标? 编辑 https://talk.jekyllrb.com/t/list-collection-with-name-from-front-matter/3619/6

或者是否可以在Front Matter中使用段落,因为这样我就可以在帖子的Front Matter中使用数组和对象来做我的魔术了?
编辑 https://github.com/jekyll/jekyll/issues/246#issuecomment-1639375

或者我只是远远超出了杰基尔的本意?


编辑

所以我发现我以错误的方式获取了收藏集https://talk.jekyllrb.com/t/list-collection-with-name-from-front-matter/3619/6

{% for section in site.[page.collectionid] %}
  {{ section.content | textilize }}
{% endfor %}

唯一奇怪的是,我看到| textilize被使用但无法正常工作的地方。

1 个答案:

答案 0 :(得分:0)

这是最终的解决方案:

{% for section in site.[page.collectionid] %}
  {{ section.content | markdownify }}
{% endfor %}

它是markdownify而不是textilize

我最终还使用了Front Matter数组,该数组带有对象以循环通过,而不是使用集合来保持其更有条理。