2016-04-15 6 views
2

Я новичок в Джекил и хотел бы создать дополнительные переменные в сообщении Frontmatter:Джекил - не может получить доступ к переменным Пользовательскому вводной

style: 
    name: post 
img: image_name 

Когда я пытаюсь использовать переменный как название это работает

{% page.title %} 

Но когда я пытаюсь использовать другую переменную

{% if page.img %} 
    {{ page.img }} 
{% else %} 
    No image 
{% endif %} 

Это возвращает ноль. Даже когда просто пытается вывести

{{ page.img }} 

Любая идея, почему я не могу использовать свои пользовательские переменные, определенные в фронте?

+0

где вы размещаете код? в файле макета? включают? какова вся секция переднего раздела? есть ли репо? – Ron

+0

Я только что вставил ваш фронт-материал в тестовое сообщение, а затем ваш блок кода ниже, и он выводит 'image_name', как и ожидалось. У вас есть закрытие 3 тире на лицевой стороне? ваш код работает, есть что-то неправильное, кроме самого кода, я думаю. – Ron

+0

Можете ли вы предоставить URL-адрес репозитория? Это более эффективно для отладки. –

ответ

0

Вы должны использовать {{page.img}} вместо {% page.img%}. Проценты в {%%} обычно используются, когда вы делаете что-то другое, кроме как просто вызываете переменные - например, если заявления, для операторов, включают и т. Д.

Я бы не подумал, что {% page.title%} будет работать самостоятельно.

+0

Спасибо за ваш ответ, к сожалению {{page.img}} ничего не выводит. –

5

После некоторых исследований я обнаружил, что мои переменные YAML FrontMatter не были прочитаны внутри файла макета, и нашел эту ссылку:

https://github.com/jekyll/jekyll/issues/4123

Так что я изменил

{{ page.img }} 

к:

{{ layout.img }} 

и теперь это работает.

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