私のJekyllを使用したWebサイトには、機能に似た何かをするインクルージョンがありますが、パラメーターを正しく渡す方法がわかりません。
{% include ... %}
を使用すると、このようなパラメーターを渡します。
{% include function.liquid foo="{{ baz.quux }}" %}
..それはリテラル文字列{{ baz.quux }}
を渡すだけです。もちろん、これは私が望んでいたものではありません! baz.quux
の値を渡したいです。どうすればいいですか?
ありがとう!
これを達成するには2つの方法があります。 Jekyllのgithub-pagesバージョンに対して両方のアプローチをテストしました。
インクルードのコードで{{ foo }}
を参照していると仮定すると、インクルードを呼び出す前にfooに値を割り当てる必要があります。
といった:
{% capture foo %}{{ baz.quux }}{% endcapture %}
{% include function.liquid %}
これにより、変数のスコープを制御できます。 テンプレートのドキュメント にこれを設定する方法の詳細があります。
使用するテンプレートで、構文はほぼ正しいです。
{% include function.liquid foo=baz.quux %}
欠けていた部分は、インクルードファイルのコードで変数を異なる方法で参照する必要があることです。{{ include.foo }}
を使用する必要があります。
次のように、引用符または括弧なしで変数を入力します。
{% include footer.html param="value" variable-param=page.variable %}
あなたの場合:
{% include function.liquid foo=baz.quux %}
私のサイトで動作します。
From: https://github.com/jekyll/jekyll/issues/3577#issue-61988857
David Hutchisonの他に、3番目のソリューションがあります。
{% assign foo = baz.quux %}
{% include function.liquid %}
これで、インクルードファイルで{{ foo }}
を参照できます。