Я использую Jekyll, в котором используется язык Liquid Template. Раньше я использовал шаблоны Jinja, и в нем есть концепция макроса (просто именованная функция). Есть ли у Liquid что-то, что обеспечивает эквивалентную функциональность? Если нет, есть ли какой-нибудь плагин для Jekyll, который расширит возможности Liquid?
Макрос на языке Liquid Template
comment
Поскольку похоже, что этого нет в Liquid, я открыл проблему на Github< /а>.
- person Ellis Michael   schedule 29.05.2015
Ответы (2)
Вы можете создавать включения, которые принимают параметры. Это не совсем макрос, но я успешно использовал его на страницах GitHub.
Дополнительные сведения и советы по управлению включениями и использованию параметров можно найти в документации по Jekyll. а>.
Вот пример:
_includes/email_link.html
<a href="mailto:{{ include.user.email_address }}"
title="Email {{ include.user.name }}">
<i class="fa fa-fw fa-envelope"></i>
</a>
about.md
---
layout: page
title: About
---
{% include email_link.html user=site.users.erik %}
_config.yml
users:
erik:
name: Erik
email_address: [email protected]
person
Erik Gillespie
schedule
29.05.2015
Насколько я помню, здесь есть несколько ошибок, самая большая из которых заключается в том, что включение не имеет ограниченной области действия, поэтому переменные, измененные внутри включения, останутся измененными после включения.
- person Nathan Arthur; 10.02.2017
Именно для этого созданы плагины Jekyll tags.
person
David Jacquel
schedule
29.05.2015
Справка GitHub о поддерживаемых подключаемых модулях Jekyll и На страницах GitHub зависимости плагинов не указан плагин тегов Jekyll, поэтому, к сожалению, я не думаю, что это решение будет работать. на страницах GitHub.
- person Erik Gillespie; 29.05.2015
Так почему вы говорите о плагинах? Тем не менее, на страницах github решение @erik-gillespie — единственное. И спасибо за отрицательный голос.
- person David Jacquel; 29.05.2015
ОП может не знать, что доступные плагины на страницах GitHub ограничены, поэтому я счел уместным указать. Если OP использует страницы GitHub, как предполагают теги, ваш ответ не будет работать и, если его попытаются, вызовет много головной боли, отсюда и отрицательный голос.
- person Erik Gillespie; 29.05.2015
Извините за путаницу. В моем текущем проекте я использую Github для размещения, но компилирую с помощью Travis, потому что у меня есть несколько дополнительных шагов, которые Pages не сделает. Однако иметь решение, которое будет работать на страницах, было бы неплохо для будущих проектов. Более того, насколько я понимаю предлагаемое вами решение с тегами, мне пришлось бы создавать новый настраиваемый тег в Ruby для каждого фрагмента HTML, который я хотел бы использовать повторно. Это не здорово.
- person Ellis Michael; 29.05.2015