【问题标题】:Trying to get a collection from a Front Matter value试图从 Front Matter 值中获取集合
【发布时间】:2020-05-17 07:57:24
【问题描述】:

您好,我是 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,如配置和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

或者我只是在远离 Jekyll 应有的样子?


编辑

所以我发现我以错误的方式获取集合,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 被使用但无法正常工作。

【问题讨论】:

    标签: jekyll liquid


    【解决方案1】:

    这是最终的解决方案:

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

    它是markdownify 而不是textilize

    我最后还使用了一个 Front Matter 数组,其中包含要循环的对象,而不是一个集合,以使其更有条理。

    【讨论】:

      猜你喜欢
      • 2017-12-03
      • 2016-12-19
      • 1970-01-01
      • 2015-06-29
      • 2014-03-14
      • 1970-01-01
      • 2015-12-24
      • 2011-10-26
      • 2018-06-25
      相关资源
      最近更新 更多