Go言語 1.17でgodocパッケージを利用する
バージョン1.16で利用していたgodoc利用を1.17で使おうとしてハマったので備忘録
今回は事情あってWindows上の話
※考え方はLinuxでも一緒
事前条件
すでにGO言語がインストールされ、goコマンド及びgo installでインストールしたパッケージの実行ファイルにコマンドプロンプトでアクセスできる事。
さらに、自分がソース管理しているディレクトリのパスを把握しておく事
> go version go version go1.17.2 windows/amd64
上記の通りバージョン表示されない場合は、正しくgo言語がセットアップされていない。
GOROOTの確認
> go env
とすると、Go言語に関係する環境変数の設定値がズラッと並ぶ。
その中に、GOROOTがあるはず。
意図的に変えてなければ、下記のデフォルト値が設定されているはず。
GOROOT=C:\Program Files\Go
godocインストール
> go install github.com/golang/tools/tree/master/godoc@latest
バージョン1.17からは、積極的にinstallでのパッケージ導入が推奨されている模様。
結果、環境変数GOPATH配下のbinディレクトリに入れられる。
※2021/12/21 追記
Chromebookにインストールしようとしたら、上記のコマンドではだめだと怒られた。。。
下記のコマンドでインストールした。
Linuxでも同じ様な結果になるかもしれない。
$ go get golang.org/x/tools/cmd/godoc
GOROOT配下のsrcディレクトリにシンボリックリンク作成
godocにドキュメントとして認識してもらうため、GOROOT直下にあるsrcディレクトリに、自分がソース管理しているディレクトリのシンボリックリンクを作成する。
仮にシンボリック名をworkspaceとする。
> cd "C:\Program Files\Go\src" > mklink /d workspace "C:\mygolang\src\"
URL入力
godocの起動ができたら、Webブラウザでgodocページにアクセスしてみる
http://localhost:8080/pkg/workspace/
pkgというディレクトリ指定に違和感があるが、内部的にはGOROOT直下のsrcディレクトリと置き換えられる模様。
うまく行けば、下記のようなWeb画面が表示されるはず
下記画面に表示されているのは、私がテストとしてあれこれ試したGo言語プログラム(パッケージ)
HTMLで保存するには?
godocで表示されるHTMLをローカルに保存するにはどうすればいいか?
その答えは、Webページをダウンロードすればいい。
ただし、Windowsの場合、wgetが標準でインストールされていないので、Windowsの上で動くwgetをどうにかしてインストールするか・・・使った事はないがbitsadminと呼ばれるWindows上のwget代替えコマンドを利用する。
以下、wgetバージョン。
上記説明の通り、Windows版のwgetを入手して利用できるようにしておく事。
> godoc -http=localhost:8080 & > wget -r -np http://localhost:8080/pkg/workspace