将Jekyll::Drops::DocumentDrop与Jekyll::Drops::DocumentDrop进行比较失败

将Jekyll::Drops::DocumentDrop与Jekyll::Drops::DocumentDrop进行比较失败,jekyll,liquid,Jekyll,Liquid,在Jekyll3.1.2(和3.1.1)上,在post.html布局中,我想为它的上一个/下一个链接在子类别中创建一个已排序的帖子列表。当我知道类别的名称时,它在其他地方工作,但是在派生类别名称时,我在将post附加到数组中时遇到问题 给定一组具有以下特征的职位: categories: - topics - my-vacation 我正在post.html布局中尝试创建排序列表: {% if page.categories.first == 'topics' and page.c

在Jekyll3.1.2(和3.1.1)上,在post.html布局中,我想为它的上一个/下一个链接在子类别中创建一个已排序的帖子列表。当我知道类别的名称时,它在其他地方工作,但是在派生类别名称时,我在将post附加到数组中时遇到问题

给定一组具有以下特征的职位:

categories:
  - topics
  - my-vacation
我正在
post.html
布局中尝试创建排序列表:

  {% if page.categories.first == 'topics' and page.categories.last != 'topics'
%}{%   assign sorted_list = site.empty_array
%}{%   for topic in site.categories.topics
%}{%     if topic.categories.last == page.categories.last
%}{%       assign sorted_list = sorted_list | push: topic
%}{%     endif
%}{%   endfor
%}{%   assign sorted_list = sorted_list | sort
%}{% endif
%}
配置中的空数组:[

但我得到了这个错误:

Liquid Exception: Liquid error (line 16): comparison of Jekyll::Drops::DocumentDrop with Jekyll::Drops::DocumentDrop failed in _layouts/post.html
jekyll 3.1.2 | Error:  Liquid error (line 16): comparison of Jekyll::Drops::DocumentDrop with Jekyll::Drops::DocumentDrop failed
第16行是推送到
排序的\u列表
。如果我使用
push:'foo'
push:page
我不会得到错误,但当然,这不是我想要的。当我尝试检查排序的_列表时,我得到一个
检查结果必须是ASCII
错误

谢谢你的帮助;我不知所措。堆栈跟踪中的第一行指向
invoke
方法中的
liquid\filter.rb

编辑,更多信息:

可能是它试图推送对象而不是引用对象?或者这是意料之中的


已解决:错误实际上是排序中的几行。要解决, 将要按其排序的属性添加到此类列表中:

assign sorted_list = sorted_list | sort: 'date'

因此,在Jekyll3.2中,DocumentDrops将默认按日期排序。

我认为错误出现在
topic.categories.last==page.categories.last
,但我无法重现。你有github存储库吗?谢谢,David,让我来清理一下push@DavidJacquel我才恍然大悟,我可以用树枝推断的树枝;尽管如此,这里有一个断开部分的master被注释掉了:仍然无法复制。您可以将本地代码放在dev分支中吗?