sorting - 液体过滤器是否与项目相同?
问题描述
我是 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
---
文档.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:
,但也失败了。每个页面在所有导航中都可供彼此使用:
如何将导航设置为仅显示相同模块的页面?我有 15 个模块,并且具有某种全局排序,而无需为所有子目录编写代码。
感谢您的帮助/耐心!我对此非常满意。
解决方案
我绕过了集合目录并进行了_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 %}
“上一个”/“下一个”按钮只会链接到具有相同模块的项目。一个简单的解决方案,让我永远神往。
推荐阅读
- git - 如何 rebase 和解决 sourcetree 中的冲突
- matlab - 如何在 MATLAB R2014b 中使用 ezsurf 绘制带约束的曲面?
- python - 数据工厂中的 PEM 证书
- python - 如何使用 pyarrow.compute.is_in 函数?
- reactjs - 可以选择直接从 Firebase 存储打印图像
- r - 在 R 中的 Choropleth Map 上按组分配颜色
- python - 控制标志在视觉工作室中显示为笑脸
- compiler-optimization - 如果主体为空,是否评估 Ada 函数参数?
- regex - 正则表达式无法按预期工作,开头不允许字符和所有字符串中的一个字符
- go - Gorm 2,Golang,使用外键自动迁移表