想在 jekyll 中创建另一个 _post 目录

Want to create another _post directory in jekyll

我想创建一个作者 _layout,我可以用它来装载一个由 Jekyll 支持的站点的所有作者的列表(实际上,一个播客的主机列表)。我希望它位于

+ \
  + _posts
  + _includes
  + _layouts
  + _config.yml
  + authors <-- Here

在我的 Jekyll 站点中,我已经看到 Jekyll 在那里渲染降价文件。

但是,我无法将作者带到那里并使用它来构建列表。

我正在使用此代码

<ul>
    {% for post in site.categories.authors %}
    <li><a href="{{ site.url }}{{ post.url }}">{{ post.title }}</a></li>
    {% endfor %}
</ul>

关于我应该如何做我想做的有什么建议吗?我希望页面生成为 return 列表中主机的名称,每个主机都有链接,例如

<a href="/authors/foo">This guy</a>
<a href="/authors/bar">That guy</a>
<a href="/authors/baz">That other guy</a>

要渲染的文件位于:

+ \
  + _posts
  + _includes
  + _layouts
  + _config.yml
  + authors
    + foo.md
    + bar.md
    + baz.md

如果您想使用 collections,您需要正确配置它们。但是当你需要添加额外的降价文件并且你不想在 _posts 中添加它们时 collections 很有用。

如果您想参加 collections,请勾选 this answer


不过我相信你需要的是Jekyll _data,而不是collections。

为此,请在站点 root 中创建一个名为 _data 的文件夹,然后将名为 authors.yml 的文件添加到其中。

然后,您将要调用的数据添加到authors.yml

- ref: 01
  name: Name Surname
  url: http://something.com

- ref: 02
  name: Name Surname 2
  url: http://somethingelse.com

然后通过 liquid 调用它们:

{% for author in site.data.authors %}
<a href="{{ author.url }}">{{ author.name }}</a>
{% endfor %}

如果我误解了你的问题,我很抱歉....我真的希望能帮到你!