我们知道Jekyll可以使用tags
和categories
之类的前沿物质变量,并使用site.tags
和site.categories
访问它们,以使用液体对其进行迭代。
现在,我的问题是我无法使用author
之类的自定义前端变量(例如site.authors
),因为Jekyll不会以列表格式存储它。这使得分页非常困难。
我查看过的每种解决方案
需要我将作者列表硬编码为_config.yml
或其他.yml
(即_data/authors.yml
中)。
这里的问题是我没有使用固定的作者列表。当我用前项标签author: exampleAuthor
投稿到另一篇文章或作者列表时,作者列表需要更新(如每篇文章中有多位作者,目前只有categories
和{{ 1}}),同时服务器正在运行。它可以出色地使用标签和类别,但不适用于作者等自定义标签。
最简单的解决方案是使用tags
列表进行迭代,并使用ruby插件对其进行扩展。
我还没有找到可以为我提供解决方案的插件,并且认为这是我可能不是第一个遇到的常见问题。
然后,我开始考虑编写自己的ruby插件(由于缺乏文档,很难单独使用它。也许我很喜欢google,但是我发现的资源非常有限,不足以指导您完成操作)流程),但必须这样做的原因很困难,以至于使得所有现有解决方案都需要在site.authors
(或.yml
)中对作者列表进行硬编码,但是大多数人都选择{ {1}}(出于某种原因)。
对我来说,这样做是没有问题的,因为我只想稍后添加带有作者姓名的帖子并操纵.json
(我的印象是.yml
文件没有服务器启动后就无法进行编译,例如.yml
,如果我输入错了,请纠正我)会适得其反,因为这需要您重新启动服务器才能对其进行编译。
即使是jekyll-paginate-v2这样的非常高级的插件(我已成功使用它们按标签和类别对帖子进行分页)也没有针对此as this issue portrays的解决方案。建议他滥用类别变量按作者进行分页,这是一种绝望的解决方法。
我发现可以用集合来完成的建议,但是似乎并不可行。主要是由于其实现的性质:
他们需要对作者列表进行硬编码(同样,我也不想这样做。我没有固定的作者列表。所有作者信息都必须来自yml
目录_config.yml
文件)
到目前为止,我还看不到如何用集合来完成。
但是我愿意提出建议。
编辑:我发现此日期为issue on Jekylls github page,这突出表明人们正在尝试这样做但无济于事。 在过去的四年中,这变得可行了吗?
答案 0 :(得分:2)
使用收藏集 可以很容易地将作者添加到Jekyll帖子中。 Here's a proof of concept for you。具体来说,在this commit中添加您需要的所有内容。
As for your question about pagination,将需要使用分页插件(paginate-v2很好),因为我相信内置分页仅支持帖子集合。