19

我一直在与 godoc 搏斗,发现“go doc”更多地用于从命令行提供使用帮助,例如:

go doc -cmd -u

列出包注释和任何功能(或其他实体)

go doc *function*

然后显示单个函数(或其他实体)的文档

似乎有一个名为godoc的相关工具。godoc 似乎也基于每个包和功能生成 html。例如

godoc -html hello

仅生成包含包注释的 html 到标准输出

godoc是一个非常令人困惑的名字,因为我们也有go doc

如何为整个项目创建静态文档?

这类似于Godoc,为整个包创建 html,这可能被误解为询问包的文档而不是项目。我想要一个可以在原则上可能包含许多包和应用程序的项目中使用的构建步骤。

4

4 回答 4

12

即使使用 godoc,是否有一种规范的方法可以生成供离线使用的文档?

Go 1.12(2019 年 2 月)对此更清楚:

godocgo doc

在 Go 1.12 中,godoc不再有命令行界面,而只是一个 Web 服务器。
用户应go doc改为使用命令行帮助输出。

go doc现在支持-allflag,这将导致它打印所有导出的 API 及其文档,就像以前的godoc命令行一样。

cmd/doc:添加-all标志以打印包的所有文档

与旧的不同godoc,您需要-u标志才能看到未导出的符号。
这似乎是正确的行为:它是一致的。

于 2019-01-13T22:36:09.970 回答
1

我一直在努力做到这一点,最后,对我有用的是

  1. 确保您已安装“wget”(我使用的是 mac,所以必须使用 x-code 安装它)
  2. 以 root 用户身份登录并修改名为“robots.txt”的文件以删除“Disallow : /”行,因为这会阻止 wget 递归下载该站点。“robots.txt”文件应该在 $GOROOT 路径中。
  3. 打开一个 cmd 并使用以下命令启动 godocs 服务器

    godoc -http=:6060

我已将本地路径配置到此端口。4.打开另一个cmd并运行以下命令。

wget -r -np -N -E -p -k http://localhost:6060/pkg/myproject

您可以提及项目的路径,以便为整个项目下载 html 文档。

于 2019-01-09T10:46:29.097 回答
0

这也可以使用简单的wget命令来实现。示例:片段

我有一个类似的问题。我正在为我的项目使用 GitLab,我决定为 Go 项目创建和共享一些方便的 GitLab CI YAML 模板,这些模板将自动生成静态 HTML Go 文档,无需任何外部包:https ://gitlab.com/tymonx/ gitlab-ci

示例:Go Logger 文档

两个不错的功能:

  • 嵌入式 Go 源代码文件
  • 搜索框引用 GitLab
于 2020-05-16T04:56:48.343 回答
0

你可以试试Golds,它是一个替代的 Go 文档生成工具(和一个本地文档服务器/代码阅读器)。

在您的项目目录下,您可以运行以下任何命令来为您的 Go 项目生成 HTML 文档:

  • golds -gen -nouses -plainsrc -wdpkgs-listing=promoted ./...
  • golds -gen -nouses -wdpkgs-listing=promoted ./...
  • golds -gen -wdpkgs-listing=提升 ./...

第一个命令生成最紧凑的文档,最后一个命令生成完整的文档,其大小是紧凑文档的 6 倍。

顺便说一句,我是Golds的作者。希望你这个工具能满足你的需要。

于 2020-09-15T15:30:57.610 回答