生成整个项目的godoc文档?

时间:2018-11-02 19:14:41

标签: go godoc

我一直在与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类似,后者可能被误解为询问软件包而不是项目的文档。 我想要一个可以在原则上可以包含许多软件包和应用程序的项目中使用的构建步骤。

4 个答案:

答案 0 :(得分:2)

您可以尝试使用Golds,它是备用的Go docs生成工具(和本地docs服务器/代码阅读器)。

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

  • 金-gen -nouses -plainsrc -emphasize-wdpkgs ./...
  • 金-gen -nouses -emphasize-wdpkgs ./...
  • 金-gen -emphasize-wdpkgs ./...

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

顺便说一句,我是黄金的作者。希望您能使用此工具满足您的需求。

答案 1 :(得分:0)

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

  1. 确保已安装“ wget”(我使用的是Mac,因此必须使用x代码进行安装)
  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文档的项目路径。

答案 2 :(得分:0)

  

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

Go 1.12 (February 2019)在这方面更清楚:

  

godocgo doc

     

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

     

go doc now supports the -all flag,这将导致它打印所有导出的API及其文档,就像以前使用的godoc命令行一样。

     

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

     

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

答案 3 :(得分:0)

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

我对此也有类似的问题。我将GitLab用于我的项目,并且决定为Go项目创建并与一些方便的GitLab CI YAML模板共享,这些模板将自动生成静态HTML Go文档,而无需任何外部软件包:https://gitlab.com/tymonx/gitlab-ci

示例:Go Logger documentation

两个不错的功能:

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