2015-09-25 3 views
0

Краткая версия: вам удалось использовать что-то вроде {{ page.title | cgi_escape }} в части {% include %}?Jekyll: Жидкостный фильтр «cgi_escape» возвращает ошибку для некоторых переменных

Подробности следуют:

У меня есть частичный, который я использую, как так:

{% include mainContainer.html %} 

работает отлично. Затем в этой частичной части попытайтесь отобразить некоторые переменные жидкости:

{{ page.title }} отображает заголовок.

{{ page.content }} Отображает содержание.

{{ page.content | cgi_escape }} отображает содержимое, но сбежал.

{{ page.title | cgi_escape }} не работает вообще. Создает следующее сообщение об ошибке:

Liquid Exception: undefined method `encoding' for nil:NilClass 

Помимо {{ page.content }} я получаю сообщение об ошибке для любого из {{ page }} переменных (категория, название и т.д.), но все они будут отображаться в порядке без фильтра. Кроме того, {{ page.title | cgi_escape }} работает нормально в ... uhhh ... 'content' часть макета (я не уверен, как это назвать - раздел {{ content }}). Я только вижу ошибку: {% include %}

+0

Возможные дубликатом [Джекил Error «Liquid Exception: неопределенный метод \ 'кодирования» для ноль: NilClass в \ _layouts/post.html «] (http://stackoverflow.com/questions/31571150/jekyll-error-liquid-exception-undefined-method-encoding-for-nilnilclass-in) –

ответ

1

Nevermind. Строка была неудачной, потому что на нескольких страницах с использованием {% include mainContainer.html %} не было front matter и, следовательно, нет page.title (или что-то еще). По-видимому, Liquid готов позволить {{ page.title }} пройти, если переменная не установлена, но не {{ page.title | cgi_encode }}

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