🧭 导航菜单
最后更新:2026-10-02
顶部和底部导航菜单数据。后台路径:后台 → 内容管理 → 导航管理
📋 可用字段
每条导航对象提供以下字段,{{range .Navigations}} 遍历所有导航,再用 .Location 区分顶部/底部。
💻 使用示例:顶部导航(含当前页高亮)
导航对象没有 Identifier 字段。当前页高亮推荐用服务端 {{.CurrentNav}}(见 全局辅助变量):它全站注入,首页 / 列表页 / 栏目页 / 详情页都有效,取值为 home / about / contact / products / news / cases / jobs / error 之一。把 CurrentNav 映射到导航首段路径,命中即加 is-current 类并写 aria-current="page"。
⚠️ 避坑:导航文字对比度(白字压浅底看不见)
首页通常是深色 hero,导航白字没问题;但内页背景变浅后白字会看不见。按 CurrentNav 给 <body> 动态加类,再用 CSS 控制导航文字颜色:
.inner-page → 导航文字变深(#1c2922);.inner-page--dark(contact / error 深绿底)→ 仍用白字。改完模板必须重启服务(前台有 1 分钟页面缓存 + nginx 720h 层缓存)。
📌 备选方案(子路径前缀匹配 / 多语言子站)
若需要子路径也高亮父级(如 /news/123 高亮「增长笔记」),或做多语言子站时服务端 CurrentNav 映射不过来,可用 JS 按 location.pathname 前缀匹配 a[href]:
旧写法 {{if eq $.CurrentPath .Link}}active{{end}} 也可用,但 CurrentPath 仅在详情页 / 栏目页注入(首页与列表页为空),那两页高亮不生效,故新项目建议直接用 CurrentNav。
🌐 真实站点导航示例(gitl.cn)
以 gitl.cn(甜甜科技行)为例,后台「导航管理」中的真实菜单结构(顶部 header 位置)如下,{{range .Navigations}} 遍历后即可按 .Location 渲染:
| 菜单名称(.Name) | 链接(.Link) | 位置 |
|---|---|---|
| 首页 | / | header |
| 真实案例 | /cases | header |
| 增长笔记 | /news | header |
| 联系我们 | /contacts | header |
Gitl.cn云建站 SaaS