使用Hugo Docsy主题添加菜单外部链接遇协议不支持报错求助
在Hugo Docsy主题中添加外部菜单链接的正确方法
你遇到的问题是因为Docsy(以及Hugo本身)对页面front matter里的url字段有特定限制——这个字段是用来定义内部页面路径的,不能直接填带http/https协议的外部链接,所以才会出现"URLs with protocol (http*) not supported"的错误。
下面给你两种可行的解决方案,根据你的需求选择即可:
方法1:通过站点配置文件直接定义外部菜单
这是最直接的方式,不需要修改markdown文件,直接在你的站点配置文件(比如config.toml,若使用YAML则是config.yaml)里添加菜单条目:
TOML格式示例:
[[menu.main]] name = "Documentation" weight = 20 url = "https://www.myurl.com" external = true
YAML格式示例:
menu: main: - name: "Documentation" weight: 20 url: "https://www.myurl.com" external: true
添加后重启Hugo服务,菜单里就会出现指向外部链接的"Documentation"选项了。
方法2:在markdown文件的菜单配置中指定外部链接
如果你需要保留markdown文件的结构(比如这个菜单条目需要关联某个内部页面,但点击跳转到外部),可以修改_index.md的front matter,把外部链接配置在menu.main的层级下,同时加上external: true标记:
--- title: "Documentation" linkTitle: "Documentation" weight: 20 menu: main: weight: 20 url: "https://www.myurl.com" external: true ---
这样就不会触发之前的错误了——因为这里的url是属于菜单条目的配置,而不是页面本身的url字段,Hugo会正确识别这是一个外部链接。
两种方法都能解决你的问题,推荐第一种,因为外部菜单链接直接在配置里管理会更清晰。
内容的提问来源于stack exchange,提问作者grexor
相关产品推荐
相关产品推荐

