jekyll 中的 Liquid 变量包含参数

Liquid variable inside jekyll include parameter

我在 _includes 中有一个 jekyll 部分,它在其内容周围包裹了一个彩色的 div。部分 (callout.html) 如下所示:

<div markdown="1" class="callout">
    {{ include.content }}
</div>

我在 test.md 中这样称呼它:

{% include callout.html content="Content to be filled with a URL: {{ site.baseurl }}/img/test.png" %}

但是,这会导致 Liquid 抛出错误:

  Liquid Exception: Invalid syntax for include tag: ... 
" Valid syntax: {% include file.ext param='value' param2='value' %} in
bundler: failed to load command: jekyll (/usr/local/lib/ruby/gems/2.6.0/bin/jekyll)

我认为问题是由于我在 content 参数中包含了 {{ site.baseurl }}

我怎样才能绕过这个限制?

https://jekyllrb.com/docs/includes/#passing-parameter-variables-to-includes

我在发布后不久就在 Jekyll 文档中找到了答案。

content 参数的值在传递给 include 之前应该单独存储为一个变量,使用 capture。对于上面的例子:

{% capture callout_content %}
Content to be filled with a URL: {{ site.baseurl }}/img/test.png
{% endcapture %}

{% include callout.html content=callout_content %}