页面上的液体过滤阵列 属性
Liquid filtering array over a page property
我有一个有两个页面的 jekyll 站点(page1.html
和 page2.html
),它们都使用相同的布局。此布局打印有关给定子目录中某些其他页面的一些信息。例如
- /_layouts/test.html
{% for p in site.pages %}
{{ p.title }}
{% endfor %}
- /page1.html
---
layout: test
---
this page lists the title of my books...
这将打印我站点中每个页面的标题,但我希望它仅打印子目录 /books
中页面的标题,因此我会将布局页面更改为
{% for p in site.pages | where: 'dir','/books/' %}
{{ p.title }}
{% endfor %}
这很好用,但我希望另一个页面使用相同的布局并列出我的漫画内容(在 /comics
文件夹中)而不是我的书,所以我会更改结构我的网站采用以下方式:
- /_layouts/test.html
{% for p in site.pages | where: 'dir','/{{ page.directory_to_scan }}/' %}
{{ p.title }}
{% endfor %}
- /page1.html
---
layout: test
directory_to_scan: books
---
this page lists the title of my books...
- /page2.html
---
layout: test
directory_to_scan: comics
---
this page lists the title of my comics...
但是这不起作用,根本没有打印任何标题。
您不能混合使用标签和过滤器(assign
除外)。此外,无需将变量括在双括号内的 filter
中:
---
directory_to_scan: '/comics/'
---
布局将使用:
{% assign my_pages = site.pages | where: 'dir', page.directory_to_scan %}
{% for p in my_pages %}
{{ p.title }}
{% endfor %}
所以,我最终通过在循环之前组装字符串,使用 append
过滤器解决了问题。
{% assign d = '/' | append: page.directory_to_scan | append: '/' %}
{% for p in site.pages | where: 'dir',d %}
{{ p.title }}
{% endfor %}
我有一个有两个页面的 jekyll 站点(page1.html
和 page2.html
),它们都使用相同的布局。此布局打印有关给定子目录中某些其他页面的一些信息。例如
- /_layouts/test.html
{% for p in site.pages %}
{{ p.title }}
{% endfor %}
- /page1.html
---
layout: test
---
this page lists the title of my books...
这将打印我站点中每个页面的标题,但我希望它仅打印子目录 /books
中页面的标题,因此我会将布局页面更改为
{% for p in site.pages | where: 'dir','/books/' %}
{{ p.title }}
{% endfor %}
这很好用,但我希望另一个页面使用相同的布局并列出我的漫画内容(在 /comics
文件夹中)而不是我的书,所以我会更改结构我的网站采用以下方式:
- /_layouts/test.html
{% for p in site.pages | where: 'dir','/{{ page.directory_to_scan }}/' %}
{{ p.title }}
{% endfor %}
- /page1.html
---
layout: test
directory_to_scan: books
---
this page lists the title of my books...
- /page2.html
---
layout: test
directory_to_scan: comics
---
this page lists the title of my comics...
但是这不起作用,根本没有打印任何标题。
您不能混合使用标签和过滤器(assign
除外)。此外,无需将变量括在双括号内的 filter
中:
---
directory_to_scan: '/comics/'
---
布局将使用:
{% assign my_pages = site.pages | where: 'dir', page.directory_to_scan %}
{% for p in my_pages %}
{{ p.title }}
{% endfor %}
所以,我最终通过在循环之前组装字符串,使用 append
过滤器解决了问题。
{% assign d = '/' | append: page.directory_to_scan | append: '/' %}
{% for p in site.pages | where: 'dir',d %}
{{ p.title }}
{% endfor %}