先说原理:

  • 全局变量 site.pages 变量保存了所有页面的信息,包含了例如以下信息:
    • path,如 index.markdown
    • url, 如 /
  • 每个页面中定义的变量可以通过 page 获取。

以本博客为例,有两个导航菜单:

  • “首页” 对应于 index.markdown_posts 中的文章
  • “千金方”对应于 qas.md_qas 中的文字

那么 site.pages 中就包含了两个页面:

[ 
    { url: "/", name: "index.markdown" },
    { url: "/qas/", name: "qas.md" },
]

首先在 index.markdown 文件及 _posts 的所有文件中定义变量:

---
nav: "/"
---

然后在 qas.md_qas 的所有文章中定义变量:

---
nav: "/qas/"
---

我们在通过site.pages 输出所有导航菜单时,对比 page.nav 与每个导航的 url,以此来确定是否应用一个类名: html

具体使用可参考实际代码