You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jekyll导航配置:如何在多语言站点中排除指定页面

解决多语言网站导航仅显示特定页面的问题

我来帮你搞定这个问题!要让特定页面才出现在顶部导航,咱们只需要给目标页面加个自定义标识,再修改导航的筛选逻辑就行,具体操作如下:

1. 给需要显示在导航的页面添加标识

打开你想要展示在导航栏的页面(比如首页、关于页等),在页面顶部的Front Matter里添加nav: true属性,示例如下:

---
title: 首页
language: zh
nav-order: 1
nav: true  # 新增这个标识,标记该页面需要显示在导航
---

不需要显示在导航的页面就不用加这个属性,默认不写就不会被筛选进导航栏。

2. 修改header.html的导航逻辑

把你原来的代码里的判断条件升级,加上对nav属性的检查,这样只有同时满足同语言和带有nav: true标识的页面才会被渲染到导航里。修改后的代码如下:

{% assign pages = site.pages | sort: "nav-order" %} 
{% for p in pages %} 
  {% if p.language == page.language and p.nav == true %} 
    <li><a class="tx--upper {% if p.url == page.url %}is-active{% endif %}" href="{{ p.url | prepend: site.baseurl }}">{{ p.title }}</a></li> 
  {% endif %} 
{% endfor %}

逻辑说明:

  • 保留了原有的site.pages | sort: "nav-order"来按你设置的导航顺序排序页面
  • 新增p.nav == true的判断,只筛选出带有导航标识的页面
  • 同时保留p.language == page.language的多语言过滤,确保只显示当前语言的导航页面

这样修改后,只有你标记了nav: true的同语言页面才会出现在顶部导航栏啦!

内容的提问来源于stack exchange,提问作者rcho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:16:11