为整个项目生成godoc文档?

bvhaajcl  于 2023-05-04  发布在  Go
关注(0)|答案(4)|浏览(148)

我一直在努力使用godoc,发现“go doc”更多的是从命令行提供使用帮助,例如:

go doc -cmd -u

列出包注解和任何函数(或其他实体)

go doc *function*

然后显示单个函数(或其他实体)的文档
似乎有一个相关的工具叫 godoc。godoc似乎也在每个包和函数的基础上生成html。例如:

godoc -html hello

生成只包含stdout的包注解的html

  • godoc* 是一个非常令人困惑的名字,因为我们也有 go doc
    如何为整个项目创建静态文档?

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

xxslljrj

xxslljrj1#

是否有一种规范方法来生成离线使用的文档,即使使用godoc?
Go 1.12(2019年2月)在这一点上更清晰:

godocgo doc

在Go 1.12中,godoc不再有命令行界面,只是一个web服务器。

用户应该使用go doc作为命令行帮助输出。
go doc now supports the -all flag,这将导致它打印所有导出的API及其文档,就像godoc命令行所做的那样。
cmd/doc:添加-all标志以打印包的所有文档
与旧的godoc不同,您需要-u标志来查看未导出的符号。
这似乎是正确的行为:是一致的

vql8enpb

vql8enpb2#

我一直在努力做到这一点,最后,对我有用的是
1.确保你已经安装了“wget”(我用的是mac,所以不得不用x-code安装)
1.以root用户身份登录并修改名为“robots.txt”的文件,删除“Disallow:/”,因为这会阻止wget递归地下载站点。“robots.txt”文件应位于$GOROOT路径中。
1.打开一个cmd并使用下面的命令启动godocs服务器

godoc -http=:6060

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

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

你可以提到项目的路径,以便为整个项目下载HTML文档。

uajslkp6

uajslkp63#

您可以尝试Golds,这是一个替代的Go文档生成工具(以及本地文档服务器/代码阅读器)。
在你的项目目录下,你可以运行以下任何命令来为你的Go项目生成HTML文档:

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

第一个命令生成最紧凑的文档,最后一个命令生成完整的文档,其大小是紧凑文档的6倍。
顺便说一句,我是黄金的作者。希望这个工具能满足你的需要。

62lalag4

62lalag44#

这也可以使用简单的wget命令来实现。示例:snippet
我也有类似的问题。我在我的项目中使用GitLab,我决定为Go项目创建并分享一些方便的GitLab CI YAML模板,这些模板将自动生成静态HTML Go文档,而无需任何外部包:https://gitlab.com/tymonx/gitlab-ci
示例:Go Logger documentation
两个不错的功能:

  • 嵌入式Go源代码文件
  • 搜索框引用GitLab

相关问题