Jekyll 杰基尔相当于雨果';s";加上;
在Hugo中,可以将Jekyll 杰基尔相当于雨果';s";加上;,jekyll,liquid,hugo,Jekyll,Liquid,Hugo,在Hugo中,可以将与一起使用,以避免重复变量名 {{ with .Site.Params.foo }} <p>{{ .bar }}</p> {{ end }} {{with.Site.Params.foo} {{.bar} {{end} 这几乎相当于 <p>{{ .Site.Params.foo.bar }}</p> {{.Site.Params.foo.bar} 它在杰基尔语中的等价物是什么 我的尝试: {%- assign tempv
与一起使用,以避免重复变量名
{{ with .Site.Params.foo }}
<p>{{ .bar }}</p>
{{ end }}
{{with.Site.Params.foo}
{{.bar}
{{end}
这几乎相当于
<p>{{ .Site.Params.foo.bar }}</p>
{{.Site.Params.foo.bar}
它在杰基尔语中的等价物是什么
我的尝试:
{%- assign tempvar = .Site.Params.foo -%}
<p>{{ tempvar.bar }}</p>
{%-assign tempvar=.Site.Params.foo-%}
{{tempvar.bar}
这应该可以:
{%- assign tempvar = site.foo -%}
<p>{{ tempvar.bar }}</p>
{%-assign tempvar=site.foo-%}
{{tempvar.bar}
根据您对问题的后续评论,您似乎正在寻找一种方法来检查变量是否只包含所需的键:值对。下面是一种检查变量是否只包含所需键的方法
{% assign numOfKeys = page | size %}
{% assign sizeOfGold = page.gold | size %}
<!-- Print out the page object for debugging purposes -->
{{ page | inspect }}
{% if numOfKeys == 1 %}
{% if sizeOfGold > 0 %}
{% for x in page.gold %}
<!-- Logic -->
{% endfor %}
{% endif %}
{% endif %}
{%assign numofkey=page | size%}
{%assign sizeOfGold=page.gold | size%}
{{page | inspect}}
{%如果numofkey==1%}
{%如果sizeOfGold>0%}
{page.gold%中x的%s}
{%endfor%}
{%endif%}
{%endif%}
Liquid的循环代码示例与您在Hugo中使用的类似吗。我在雨果的和中看到了一些相似之处,它将中的上下文(.)与范围重新绑定,就像液体通过在{%for product in collection.products%}
@Kin中显式定义产品来绑定范围一样。谢谢你的观察。我终于找到了的相关文档,它相当于if
语句和assign
语句的缩写。关于
的的范围绑定效果,您是对的。为了将其付诸实践,我面临这样的情况:如果一个for
循环通过collection.products
必须用于一个特定的对象,比如说collection.products.gold
,我首先需要确保没有像collection.products.shxt
这样的东西,所以循环只有一次迭代。谢谢你链接到Liquid docs,也许有更好的方法谢谢你抓住了我问题中的错误。