Golds

    GoldsGo local docs server)是一款实验性的本地Go文档服务器、Go文档生成器以及Go代码阅读器。

    • 演示地址:标准库文档和代码(使用命令生成)。
    • 项目代码托管于上。欢迎提交PR和发现的问题。
    • 请关注官方twitter帐号@Go100and1或微信号”Go 101”来获取Golds的最新动态(以及各种关于Go语言的细节、事实和技巧等)。

    请阅读项目主页以获取详情。

    • 如果你已经在使用官方工具链1.16+版本,则可运行go install go101.org/golds@latest来安装Golds;
    • 如果你仍在使用官方工具链1.15-版本,则可运行go get -u go101.org/golds来安装Golds(注意:GO111MODULE环境变量需要暂时设置成on以利用GOPROXY设置)。

    如果程序名golds和其它程序冲突,也可将Golds程序安装为其它名称:

    • Go docs generator
      如果你已经在使用官方工具链1.16+版本,运行go install go101.org/golds/godoge@latest
      如果你仍在使用官方工具链1.15-版本,运行go get -u go101.org/golds/godoge

    你也可以先将此项目代码克隆下来,然后进入相应的程序目录,运行go install来安装此程序。

    Golds 的主要用途是针对一个Go项目开启一个本地文档服务器,用来查看此项目的文档和源代码。我们可以

    • 运行golds .来查看处于当前目录下的Go库包(以及它的依赖包)的文档和代码。
    • 运行golds ./...来查看处于当前目录下的所有Go库包(以及它们的依赖包)的文档和代码。
    • 运行golds toolchain(或者)来查看处于官方工具链中的所有Go库包(以及它们的依赖包)的文档和代码。
    • 运行golds std来查看处于所有Go标准库包库包的文档和代码;std可以和上面的三个参数并用。
    • 运行golds aPackage来查看某个库包(以及它的依赖包)的文档和代码。
    • 运行golds foo.go bar.go baz.go来查看一些Go文件(以及它们的依赖包)的文档和代码。

    上述所用命令都将自动打开一个浏览器窗口用来浏览文档和代码。我们可以使用-s-silent选项来关闭这一行为。

    Golds的第二个用途是使用-gen选项来生成一个项目的静态HTML文档。 比如:

    • golds -gen -dir=generated -nouses .
    • golds -gen -dir=generated -nouses ./...
    • golds -gen -dir=generated -nouses std

    其中的-dir选项的默认值为.(即当前目录)。 使用-nouses选项来避免生成的文档占用过多磁盘空间(减少特性换取空间)。

    • highlight:仅仅高亮关键字和基本字面值(无代码间跳转)。
    • rich:丰富的阅读体验。
    • external:链接至外部代码托管网站(将尽力而为,若失败则采用highlight方式)。

    选项-allow-network-connection用来指定在确定Go模块外部代码托管网站的时候是否可以进行网络连接。

    主要的控制占用磁盘空间的选项:

    • -nouses:不生成标识符的使用列表页面(此选项将减少2/3的磁盘占用空间)。
    • -only-list-exporteds:不列出非导出资源。
    • -compact为上面几个选项的叠加。
    • 同时使用-source-code-reading=external-compact将进一步减小最终生成的文档的磁盘占用空间。

    golds -gen -compact ./...命令生成的文档占用的磁盘空间为golds -gen ./...命令的1/6,为golds -gen -nouses ./...命令的1/2。golds -gen -compact -source-code-reading=external ./...命令生成的文档占用的磁盘空间为golds -gen -compact ./...命令的1/5。

    -wdpkgs-listing选项用来控制如何列出当前目录下的所有库包。它的值可以为:

    • general(默认值,和其它依赖库包一起按照字母顺序列出)。
    • solo(只列出它们,不列其它依赖包)。

    golds命令可以识别GOOSGOARCH环境变量。