5

我正在尝试做的事情

tags我们知道 Jekyll 可以使用诸如and之类的前物质变量,categories并使用液体访问它们,site.tagssite.categories使用液体对其进行迭代。现在我的问题是我不能使用自定义的前端变量author(如site.authors)来执行此操作,因为 Jekyll 不会以列表格式存储它。这使得它很难分页。

问题

我看过的每个解决方案,即

要求我硬编码作者列表_config.yml或其他一些.yml(即在)_data/authors.yml。这里的问题是我不使用固定的作者列表。当我在另一篇带有前置标签author: exampleAuthor或作者列表的帖子中添加作者列表时需要更新作者列表(如每个帖子中的多个作者,目前仅可能使用categoriesand tags),而服务器正在运行。它可以出色地处理标签和类别,但不适用于作者等自定义标签。

最简单的解决方案是有一个site.authors列表来迭代并使用 ruby​​ 插件对其进行扩展。

我还没有找到可以为我提供解决方案的插件,我认为这是一个常见的问题,我可能不是第一个遇到的问题。

我试过的

然后我考虑编写自己的 ruby​​ 插件(由于缺乏文档,这本身就很难。也许我对谷歌很笨,但我发现的资源非常有限,几乎不足以指导你完成整个过程)但是必须有一个原因为什么这很难做到,这使得所有现有的解决方案都需要在 a 中硬编码作者列表.yml(或.json,但大多数人.yml出于某种原因选择)。

这样做对我来说是不可能的,因为我以后只想在其中添加带有作者姓名的帖子并操纵一个.yml(我的印象是yml一旦服务器启动,文件就不会被编译,例如_config.yml,正确如果我错了)会适得其反,因为它需要您重新启动服务器才能编译它们。

甚至像jekyll-paginate-v2这样非常高级的插件(我成功地使用它来按标签和类别对帖子进行分页)也没有解决这个问题的方法。有人建议他滥用类别变量按作者分页,这是一种绝望的解决方法。

我发现了可以通过集合来完成的建议,但这似乎不可行。主要是由于它们实现的性质: 它们需要对作者列表进行硬编码(同样,我不希望那样。我没有固定的作者列表。所有作者信息都必须来自前面-/_posts目录文件中的问题.md)到目前为止,我不知道如何使用集合来完成。但是我愿意接受建议。

编辑:我在 Jekylls github 页面上发现了这个过时的问题,它强调人们正在尝试做同样的事情但无济于事。这在过去 4 年里变得可行了吗?

4

1 回答 1

2

使用collections添加作者到 Jekyll 帖子很容易。这是给你的概念证明。具体来说,在此提交中,我添加了您需要的所有内容。

至于你关于分页的问题,需要使用分页插件(paginate-v2 很好),因为我相信内置分页只支持帖子集合。

于 2018-08-18T21:24:07.420 回答