【发布时间】:2017-10-19 18:14:11
【问题描述】:
所以总的来说,我对 jekyll 和液体很陌生,我进行了一些搜索,但找不到我的问题的具体答案。
所以基本上,我正在制作一个 jekyll 网站,它需要对贡献者尽可能简单,因为不只有一个网站贡献者。考虑到这一点,我想知道是否可以在构建时进行动态导航,该导航将在页面的前端使用自定义变量,并且如果它与顶级导航项匹配(数量不会改变),将页面链接放在所述导航项的下拉列表中。
例如,假设我有顶级导航项:颜色和动物。如果贡献者想添加一个名为“Duck”的页面,他可以在前面添加内容
parent: Animal
permalink: duck
并且,在构建时,jekyll 将遍历每个页面,当它发生在页面“鸭子”上时,它会将链接作为下拉菜单放入 Animal 导航项中。
我知道还有其他方法可以进行多级导航,如 Jekyll 文档中所述,但这些方法每次都需要有人更改配置文件,除非我完全误解了它。我希望贡献者只需要担心他正在制作的页面,我认为前端是一个很好的地方。
编辑:我将提供我已经尝试过的内容,但我认为我的代码会让你发笑,因为它可能有点离题而且可能过于复杂。下面的代码在配置中为带有“text”和“url”变量的顶级项目假设了一个导航数组。并非所有链接都有链接,并且只能用作下拉菜单。它还假设页面上有一个名为“parent-text”的变量,这是匹配发生的地方。
{% for link in site.navigation %} <a href="{{link.url}}">{{link.text}}</a>
{% for page in site.pages %}
{% if page.parent-text == true %}
<a href="{{page.permalink}}"> {{page.parent-text}} </a>
{% endif %}
{% endfor %}
{% endfor %}
我只是想让它输出。稍后我会处理样式和标记。
提前谢谢大家!
【问题讨论】: