Navigation 如何为Jekyll动态创建基于前端内容的导航?

Navigation 如何为Jekyll动态创建基于前端内容的导航?,navigation,jekyll,liquid,Navigation,Jekyll,Liquid,目标: 动态创建/管理导航而不管理数据文件 支持重写排序 元素嵌套 隐藏页支持 通过front matter动态管理文档的简单方法,无需烦人的配置文件 可以在前面设置三个变量: parent:表示是否应将其嵌套在另一个页面中进行导航 hidden:false对于要公开列出的页面,无论如何都可以通过直接链接访问 nav_priority:首先显示哪个文档的权重,1最高(即顶部) 逻辑 可以默认隐藏/显示\u config.yml 如果页面符合以下条件,则显示为页眉: 没有父母或父母 是一

目标:

  • 动态创建/管理导航而不管理数据文件
  • 支持重写排序
  • 元素嵌套
  • 隐藏页支持

通过front matter动态管理文档的简单方法,无需烦人的配置文件

可以在前面设置三个变量:

  • parent
    :表示是否应将其嵌套在另一个页面中进行导航
  • hidden
    false
    对于要公开列出的页面,无论如何都可以通过直接链接访问
  • nav_priority
    :首先显示哪个文档的权重,1最高(即顶部)
逻辑
  • 可以默认隐藏/显示
    \u config.yml
  • 如果页面符合以下条件,则显示为页眉:
    • 没有父母或父母
    • 是一个父页面
  • 如果页面有父级,它将显示在父级下面
    • 只能有两个级别
  • 如果父页面隐藏,则所有子页面也将隐藏
  • 对于
    \u config.yml
    100
    中的文档,可以将权重设置为默认值,使其位于底部;对于
    1
    中的文档,可以将权重设置为默认值,使其位于顶部
以下假设文件位于
\u docs
中,如果其他地方相应地更改了
站点。docs

{%assign pages=site.docs |其中:'hidden',false%}
{%如果pages.size>0%}
{%assign head_pages=pages |其中:'parent',nil | sort:'nav_priority%}
{head_pages%}中head_pages的百分比为%
    {%assign child_pages=pages |其中:'parent',head_page.title | sort:'nav_priority%} {child_pages%}
  • {%endfor%}
{%endfor%} {%endif%}