我正在建立一个基本的Github托管的Jekyll网站(这么简单,我甚至不打算改变默认主题).我有一个嵌套的网站,其中包含少量的第一层页面,我想在导航栏中显示(即默认的操作模式).我还有一些第二层页面,我不想破坏导航栏.
虽然多级导航系统会很好,但我试图避免使用插件.因此,我认为最简单的解决方案是完全从导航系统中排除第二层页面.
这是一个假设的页面结构(减去其他Jekyll文件):
jekyllsite
jekyllsite/bar
jekyllsite/bar/alice
jekyllsite/bar/alice/index.md
jekyllsite/bar/bob
jekyllsite/bar/bob/index.md
jekyllsite/bar/index.md
jekyllsite/baz
jekyllsite/baz/index.md
jekyllsite/foo
jekyllsite/foo/eggs
jekyllsite/foo/eggs/index.md
jekyllsite/foo/index.md
jekyllsite/foo/spam
jekyllsite/foo/spam/index.md
jekyllsite/index.md
Run Code Online (Sandbox Code Playgroud)
按照令人敬畏的降序排列,这就是我想要这样做的方式:
最好的情况,上下文敏感的导航(没有插件可能不会想到):访问jekyllsite/index.md时,我会得到一个单层导航栏,提供指向foo,bar和baz的链接.访问jekyllsite/bar/index.md时,我会在顶层看到一个包含foo,bar和baz的双层导航栏,第二层包含alice和bob.
下一个最佳选择是让我在全局范围内进行更改,以便只将顶级目录(foo,bar,baz)添加到导航栏.alice,bob,spam和eggs等子目录将自动从导航栏中排除.
最后(我认为这可能是最简单的)将是YAML frontmatter标志来排除页面.类似于nonav: true要排除的页面前端的东西.
这似乎是一个相当常见的用例,尽管我找不到任何看起来像这三个选项中的任何一个的短路径的东西.我希望更熟悉Jekyll的人有一个"阻力最小的道路"的答案.