如何按作者对帖子分页

时间:2018-08-08 10:19:48

标签: jekyll jekyll-extensions yaml-front-matter

我要做什么

我们知道Jekyll可以使用tagscategories之类的前沿物质变量,并使用site.tagssite.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,这突出表明人们正在尝试这样做但无济于事。 在过去的四年中,这变得可行了吗?

1 个答案:

答案 0 :(得分:2)

使用收藏集 可以很容易地将作者添加到Jekyll帖子中。 Here's a proof of concept for you。具体来说,在this commit中添加您需要的所有内容。

As for your question about pagination,将需要使用分页插件(paginate-v2很好),因为我相信内置分页仅支持帖子集合。