
Go 1.19 起支持在 godoc 注释中使用 [Link Text]: URL 语法定义带自定义锚文本的超链接;此前版本仅支持自动识别 URL 和少数预设模式(如 RFC 编号),无法自定义链接文字。
go 1.19 起支持在 godoc 注释中使用 `[link text]: url` 语法定义带自定义锚文本的超链接;此前版本仅支持自动识别 url 和少数预设模式(如 rfc 编号),无法自定义链接文字。
在 Go 的文档注释(doc comments)中,链接能力经历了重要演进。早期版本(Go 1.18 及之前)仅支持隐式链接:直接写出的 URL(如 https://golang.org/pkg/fmt/)会被 godoc 工具自动转换为可点击链接,且链接文本即为完整 URL 本身;此外,godoc 还会特殊识别形如 RFC 1234、CL 56789 等约定格式,并将其链接至对应规范或代码审查页面(例如 RFC 2616 → https://www.php.cn/link/a572b78603a301e85627812e54777032)。
但这类机制无法满足常见文档需求——比如希望显示“官方 fmt 包文档”而非一长串 URL。这一限制直到 Go 1.19 正式引入显式链接语法才被解决。
✅ 自定义链接语法(Go 1.19+)
采用类 Markdown 的参考式链接写法,定义与使用分离,清晰且可复用:
// Package example demonstrates custom links in godoc. // // See [Go documentation guidelines] for best practices. // Also check out the [Go blog] for updates. // // [Go documentation guidelines]: https://go.dev/doc/comment // [Go blog]: https://blog.golang.org/ package example
生成的 godoc 页面中,“Go documentation guidelines” 和 “Go blog” 将分别作为可点击链接,跳转至对应目标 URL。
⚠️ 注意事项:
- 链接定义必须位于 doc comment 的末尾区域(通常在所有段落之后),且每条定义独占一行;
- 定义行格式严格为:
[Link Text]: <url></url>或[Link Text]: URL(URL 前后可加空格,但不可换行); - 链接文本中不支持嵌套格式(如
[**bold** link]或[link with *emphasis*]无效); - 同一 doc comment 中可定义多个链接,文本可重复,但建议保持语义唯一性以利维护;
- 该特性由
go doc和godoc(已归档)及现代 Go 工具链(如 VS Code Go 扩展、pkg.go.dev)原生支持;旧版工具可能忽略定义而仅渲染纯文本。
? 总结:若项目需兼容 Go https://pkg.go.dev/fmt)并辅以上下文说明;升级至 Go 1.19+ 后,应积极采用 [Text]: URL 语法提升文档可读性与专业度——这是 Go 官方推荐的现代文档实践。










