我正在尝试做的事情
tags
我们知道 Jekyll 可以使用诸如and之类的前物质变量,categories
并使用液体访问它们,site.tags
并site.categories
使用液体对其进行迭代。现在我的问题是我不能使用自定义的前端变量author
(如site.authors
)来执行此操作,因为 Jekyll 不会以列表格式存储它。这使得它很难分页。
问题
我看过的每个解决方案,即
要求我硬编码作者列表_config.yml
或其他一些.yml
(即在)_data/authors.yml
。这里的问题是我不使用固定的作者列表。当我在另一篇带有前置标签author: exampleAuthor
或作者列表的帖子中添加作者列表时需要更新作者列表(如每个帖子中的多个作者,目前仅可能使用categories
and tags
),而服务器正在运行。它可以出色地处理标签和类别,但不适用于作者等自定义标签。
最简单的解决方案是有一个site.authors
列表来迭代并使用 ruby 插件对其进行扩展。
我还没有找到可以为我提供解决方案的插件,我认为这是一个常见的问题,我可能不是第一个遇到的问题。
我试过的
然后我考虑编写自己的 ruby 插件(由于缺乏文档,这本身就很难。也许我对谷歌很笨,但我发现的资源非常有限,几乎不足以指导你完成整个过程)但是必须有一个原因为什么这很难做到,这使得所有现有的解决方案都需要在 a 中硬编码作者列表.yml
(或.json
,但大多数人.yml
出于某种原因选择)。
这样做对我来说是不可能的,因为我以后只想在其中添加带有作者姓名的帖子并操纵一个.yml
(我的印象是yml
一旦服务器启动,文件就不会被编译,例如_config.yml
,正确如果我错了)会适得其反,因为它需要您重新启动服务器才能编译它们。
甚至像jekyll-paginate-v2这样非常高级的插件(我成功地使用它来按标签和类别对帖子进行分页)也没有解决这个问题的方法。有人建议他滥用类别变量按作者分页,这是一种绝望的解决方法。
我发现了可以通过集合来完成的建议,但这似乎不可行。主要是由于它们实现的性质:
它们需要对作者列表进行硬编码(同样,我不希望那样。我没有固定的作者列表。所有作者信息都必须来自前面-/_posts
目录文件中的问题.md
)到目前为止,我不知道如何使用集合来完成。但是我愿意接受建议。
编辑:我在 Jekylls github 页面上发现了这个过时的问题,它强调人们正在尝试做同样的事情但无济于事。这在过去 4 年里变得可行了吗?