液体过滤器是否相同?

时间:2018-08-13 19:27:00

标签: sorting jekyll liquid

我是Jekyll和Liquid的新手,我一直在尝试利用一个包含100多个页面,分成15个模块的网站。我需要导航以仅反映到相关页面,但是我仍然停留在如何有效地做到这一点上。例如,像这样的目录:

animal-species/
├── _docs/
│   ├── mammals/
│   │  ├── mam-page01.md
│   │  └── mam-page02.md
│   ├── reptiles/
│   │  ├── rep-page01.md
│   │  └── rep-page02.md

在页面中设置:

title: Mammals Overview
module: mammals
---

docs.yml:

- module: mammals
    title: Section Title
    docs:
     - mam-page01
     - mam-page02
- module: reptiles
    title: Section Title
    docs:
     - rep-page01
     - rep-page02

在我的nav.html文件中,我尝试使用{% for section in site.data.docs | where page.module == page.module %}page.module == section.module进行排序而没有运气。我也尝试过使用3.7.0和collections_dir:创建嵌套集合,但也失败了。每个页面在所有导航中都可以互相访问:

网站导航 enter image description here

如何将导航设置为仅显示相同模块的页面?我有15个模块,并且具有某种全局排序功能,而不必为所有子目录编写代码。

感谢您的帮助/耐心!我对此很绿色。

1 个答案:

答案 0 :(得分:0)

我绕过了collections目录并进行了_config.yml的重组,但是通过分配输出来添加其他变量:

{% assign docs = site.data.docs[page.module] | map: 'docs' | join: ',' | split: ',' %}

{% for document in docs %}
  {% assign dir = page.module | prepend: "/" | append: "/" %}
  {% assign document_url = document | prepend: {{dir}} | append:"/" %}
  {% if document_url == page.url %}

“上一个” /“下一个”按钮将仅链接到具有相同模块的项目。一个简单的解决方案使我永远神往。