⚠ 平台测试中。

🧭 导航菜单

最后更新:2026-10-02

导航菜单 · Gitl.cn CMS 前台模板开发手册

📋 可用字段

每条导航对象提供以下字段,{{range .Navigations}} 遍历所有导航,再用 .Location 区分顶部/底部。

{{.Name}}菜单名称文本
{{.Link}}链接地址(已自动加站点前缀)URL
{{.Target}}打开方式(_blank=新窗口, 空=当前页)文本
{{.Location}}位置(header=顶部, footer=底部)文本
{{.ParentID}}父级ID(0/空=顶级,用于多级菜单)数字
{{.Sort}}排序(数字越小越靠前)数字

💻 使用示例:顶部导航(含当前页高亮)

导航对象没有 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
真实案例/casesheader
增长笔记/newsheader
联系我们/contactsheader