如何使用godoc作为网页为go程序提供简单的文档?

时间:2014-07-01 16:09:20

标签: go godoc

我尝试将特定的本地go文件作为文档网页提供,但无法执行此操作。

official godoc documentation说:

  

使用-http标志(即godoc命令),它作为Web服务器运行,并将文档显示为网页。

user_me$ godoc -http=:6060

这会创建与go页面类似的内容,但它不会呈现我想要呈现的特定文件。所以我试着提供我想要的文件的名称:

user_me$ godoc -http=:6000 hello.go

但是,它只回复:

usage: godoc package [name ...]
    godoc -http=:6060
  -ex=false: show examples in command line mode
  -goroot="/usr/local/go": Go root directory
  -html=false: print HTML in command-line mode
  -http="": HTTP service address (e.g., ':6060')
  -httptest.serve="": if non-empty, httptest.NewServer serves on this address and blocks
  -index=false: enable search index
  -index_files="": glob pattern specifying index files;if not empty, the index is read from these files in sorted order
  -index_throttle=0.75: index throttle value; 0.0 = no time allocated, 1.0 = full throttle
  -links=true: link identifiers to their declarations
  -maxresults=10000: maximum number of full text search results shown
  -notes="BUG": regular expression matching note markers to show
  -play=false: enable playground in web interface
  -q=false: arguments are considered search queries
  -server="": webserver address for command line searches
  -src=false: print (exported) source in command-line mode
  -tabwidth=4: tab width
  -templates="": directory containing alternate template files
  -timestamps=false: show timestamps with directory listings
  -url="": print HTML for named URL
  -v=false: verbose mode
  -write_index=false: write index to a file; the file name must be specified with -index_files
  -zip="": zip file providing the file system to serve; disabled if empty

我也尝试过:

user_me$ godoc -url="localhost:8080" hello.go

但它没有用。

我也尝试过:

godoc -server=localhost:8080 hello.go

但它回答说:

2014/07/01 10:45:56 open /usr/local/go/src/pkg/hello.go: no such file or directory

我甚至尝试过只生成html的东西:

godoc -html hello.go > hello.html

与上述相同的错误。

我也尝试过(因为它抱怨pkg目录中没有文件):

godoc -html -goroo=$GOPATH hello.go > hello.html

最后,我放弃了。我不知道这个godoc是如何工作的。我安装了hello.go程序,以便我在工作区的pkg文件中有一些东西。如何生成包含代码文档的网页?

6 个答案:

答案 0 :(得分:17)

godoc对包名和类型名称进行操作,而不是文件名。

例如,要了解io/ioutil包:

  • 文字输出:godoc io/ioutil

  • ReadAll函数:godoc io/ioutil ReadAll

  • HTML中的
  • godoc -html io/ioutil ReadAll

  • 浏览器中的
    • godoc -http=:6060
    • 点击包并从那里导航
    • 或直接转到http://localhost:6060/pkg/io/ioutil#ReadAll

要查看自己代码的文档,必须将其包含在GOPATH

假设您的GOPATH包含$HOME/go/src,而您感兴趣的文件为$HOME/go/src/hey/world/doc.go,则可以运行:

godoc hey/world

...或者在HTTP模式下启动godoc并浏览到http://localhost:6060/pkg/hey/world

答案 1 :(得分:4)

默认情况下,godoc会查看通过$ GOROOT和$ GOPATH找到的包。因此,假设您的包在Go工作区中,即在GOPATH中,您可以运行

git merge

打印出fmt包的文档。

如果您要为位于godoc fmt位置的广告资源foo生成文档,则应该运行

$GOPATH/src/github.com/abcd/foo

使用godoc github.com/abcd/foo标志,godoc作为Web服务器运行,并将文档显示为网页。

-http

现在导航到浏览器中的godoc -http=:6060,将文档作为网页查找。

http://localhost:6060/pkg/github.com/abcd/foo标志可用于在网络界面中启用游乐场。

答案 2 :(得分:2)

显示为您自己的代码生成的HTML文档

步骤1)在命令行启动文档Web服务器,即:

C:\>godoc -http=:6060

第2步)打开浏览器,并使用一个明确的URL(您的代码所在的文件夹)。

URL结构来自GOPATH下的文件夹名称。

例如:

如果我的GOPATH是c:\go,并且我在c:\go\src\myfolder\mysubfolder中有代码

我将使用的URL是http://localhost:6060/pkg/myfolder/mysubfolder,这将显示其中的.go文件的HTML页面

您还可以使用URL http://localhost:6060/pkg/myfolder,该URL包含一个指向mysubfolder的链接

注意:

答案 3 :(得分:0)

单独运行 godoc 对我有用,但真的很慢,因为它 为标准库中的每个包生成文档,而我只 关心我正在处理的本地包。

为此,如果您的包名为 north,只需设置您的当前目录 像这样:

src/north

然后运行:

godoc -goroot .

答案 4 :(得分:0)

在 linux 上,并假设您已 cd 进入要阅读其文档的包。

如果你使用的是 go 模块,你可以运行下面的命令

godoc -http=:6060 & xdg-open http://localhost:6060/pkg/$(go list -m)

它使用 -m 标志来获取包路径,即使根模块目录不包含任何 .go 文件。

如果你还没有使用模块,你可以运行,

godoc -http=:6060 & xdg-open http://localhost:6060/pkg/$(go list -f "{{.ImportPath}}")

请注意,与 -m 不同,如果目录中没有 .go 文件,此命令将无法正常工作。

查看 https://golang.org/pkg/cmd/go/internal/list/ 处的 go list 子命令帮助

答案 5 :(得分:-5)

您可以使用以下内容: public float distance = 100f; void Awake() { Vector3 screen2World = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width,Screen.height,distance)); background.localScale = new Vector3(screen2World.x,1.0f,screen2World.y); print(screen2World); } 其中 godoc -http=:6060 -path="/path/to/your-code" 包含您的包裹。

从那里,转到/path/to/your-code以浏览您的软件包