Jekyll嵌套包含with循环

时间:2018-10-02 20:16:49

标签: jekyll github-pages

我想在包含的文件中使用@NgModule({ declarations: appComponents.concat(auxComponents), imports: [ // theirs BrowserModule, HttpClientModule, AppRoutingModule, // ours SharedModule, CoursesModule ], bootstrap: [ AppComponent ] }) export class AppModule { } 循环,以避免重复创建循环数组的逻辑(这是一个{% for %},其中有多个assign)。

但是我想根据包含循环的位置使用不同的内容,所以有时我会这样做:

where_exp

有时:

{% for i in a %}
<li>{{ i.name }}</li>
{% endfor %}

我该如何实现?到目前为止,我必须将每个内部内容放在自己的模板中,这样我将拥有以下文件,但我想避免多余的{% for i in a %} <loc>{{ i.url }}</loc> {% endfor %} 文件,而只将这些内容保留在适当的{{ 1}}文件:

html_template.html:

template

xml_template.xml:

main

page_loop.html:

<li>{{ i.name }}</li>

html_main.html:

<loc>{{ i.url }}</loc>

xml_main.xml:

{% assign a = "logic I don't want to repeat" %}
{% for i in a %}
{% include {{ include.inner_template }} %}
{% endfor %}

1 个答案:

答案 0 :(得分:2)

这可能是另一个优雅(?)解决方案,用于开发插件,但可以在_includes/page_loop.html中快速修改代码:

{% assign a = "something" %}
{% for i in a %}
{%if include.type == "name"%}
<li>{{ i.name }}</li>
{%else if include.type == "url"%}
<loc>{{ i.url }}</loc>
{%endif %}
{% endfor %}

然后,每次您包含page_loop.html时,都要传递一个附加参数,以指定所需的输出类型:

{% include page_loop.html type="name" %}

{% include page_loop.html type="url" %}