2016-03-25 2 views
0

В Jekyll 3.1.2 (и 3.1.1), в макете post.html, я хочу создать отсортированный список сообщений в подкатегории для него предыдущие/следующие ссылки. У меня есть работа в другом месте, когда я знаю название категории, но при получении названия категории у меня возникают проблемы с добавлением сообщения в массив.сравнение Jekyll :: Drops :: DocumentDrop с Jekyll :: Drops :: DocumentDrop failed

Учитывая группу сообщений с:

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 
%} 

(empty_array: [] в конфигурации)

Но Я получаю эту ошибку:

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 - это толчок к sorted_list. Если я использую push: 'foo' или push: page, я не получаю ошибку, но, конечно, это не то, что я хочу. Когда я пытаюсь проверить sorted_list, я получаю ошибку inspected result must be ASCII.

Благодарим за помощь; Я в недоумении. Первая строка в трассировке стека указывает на liquid\strainer.rb в методе invoke.

EDIT, подробнее:

Может быть, что его попытки подтолкнуть объект, а не ссылку на него? Или, что ожидается ..

object not reference?

+0

Я думаю, что ошибка находится в 'topic.categories.last == page.categories.last', но я не могу воспроизвести. У вас есть репозиторий github? –

+0

Спасибо, Дэвид, позволь мне очистить его и надавить – arkadianriver

+0

@DavidJacquel Только что рассвело на меня, я смог разветвить и подтолкнул мою сломанную ветку; тем не менее, вот хозяин с разбитой частью прокомментировал: https://github.com/arkadianriver/arkadianriver.com/blob/master/_layouts/post.html#L11 – arkadianriver

ответ

0

Решено: ошибка была на самом деле пару строк вниз в этом роде. Чтобы исправить, добавить свойство, которое вы хотите сортировать такого рода списка:

assign sorted_list = sorted_list | sort: 'date' 

parkr considered this a bug. Итак, в Jekyll 3.2 DocumentDrops будет сортировать по дате по умолчанию.

Смежные вопросы