Подтвердить что ты не робот

Передача параметров для включения в Жидкие шаблоны

На моем веб-сайте, работающем на Jekyll, у меня есть включение, которое делает что-то вроде функции, но я не могу понять, как правильно передать его параметры. Когда я передаю параметры вроде {% include function.liquid foo="{{baz.quux}}" %}, он просто пропускает {{baz.quux}}! Конечно, не то, что я хотел: я хочу оценить baz.quux для передачи. Как это сделать?

Спасибо!

4b9b3361

Ответ 1

Есть два способа добиться этого. Я тестировал оба подхода к версии Jythyl для github-страниц.

Использование Capture

Предполагая, что вы ссылаетесь на {{ foo }} в коде вашего include, вам нужно присвоить значение foo перед вызовом include.

Например:

{% capture foo %}{{ baz.quux }}{% endcapture %}
{% include function.liquid %}

Использование параметров для включения

Это позволяет вам контролировать область действия переменной, которая выглядит так, как вам хочется. Есть несколько деталей, как установить это в документация по шаблонам.

Вы были почти правы с синтаксисом, в шаблоне, который вы использовали бы:

{% include function.liquid foo=baz.quux %}

Недопустимая часть состоит в том, что переменная должна быть указана по-разному в коде включенного файла, вам нужно использовать {{ include.foo }}

Ответ 2

Введите переменную без кавычек или круглых скобок, например:

{% include footer.html param="value" variable-param=page.variable %}

В вашем случае:

{% include function.liquid foo=baz.quux %}

Он работает на моем сайте.

От: https://github.com/jekyll/jekyll/issues/3577#issue-61988857