業務でプログラムのドキュメント資料が必要になることがあります.
面倒な資料作成は,なるべく効率的に終わらわせたいですよね.
この記事では,Go言語プログラムの資料を自動生成する方法を紹介します.
今回は例として,Ginというウェブフレームワークの資料を自動生成したいと思います.
目標は,docs
ディレクトリに資料を用意することです.最初に環境を用意します.
$ git clone https://github.com/gin-gonic/gin.git
$ go get -u github.com/gin-gonic/gin
$ cd gin/
$ echo */
binding/ docs/ examples/ ginS/ internal/ render/ testdata/
資料の生成にgodoc,資料の保存にwgetを使います.コマンドが通っていることを確認してください.
まず,スクリプトファイルdoc_generator.sh
を作成します.
#!/bin/bash
godoc -http=:6060 & # バックグラウンド実行
RUNNING_PID=$! # godocのPIDを取得
sleep 1 # godocの実行を1秒待機
wget -np -k -p -q -r -E http://localhost:6060/pkg/github.com/gin-gonic/gin/?m=all
kill ${RUNNING_PID} # godocの実行を終了
find localhost+6060 -name "index.html" -delete
mv localhost+6060 docs/localhost+6060
次に,資料へ遷移するhtmlファイルdocs/document.html
を作成します.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0;
URL=localhost+6060/pkg/github.com/gin-gonic/gin/index.html@m=all.html">
</head>
</html>
以上で準備は完了です.プログラムを実行して資料を確認しましょう.
$ ./doc_generator.sh # シェルスクリプト実行
$ start docs/document.html # ウェブブラウザで閲覧
ウェブブラウザで上の画面が表示されたら,資料の自動生成は成功です.
godoc
は,Go言語プログラムの資料を自動生成する便利ツールです.
実行するとlocalhost:6060
が起動します.(http
の指定がない場合もlocalhost:6060
が起動します)
作業のゴールは,localhost:6060
起動中のみ閲覧できる資料をファイルとして手元に保存することです.
通常godoc
では,先頭が小文字のprivate関数とinternal
ディレクトリ配下のプログラムが見れません.
しかし,URLの末尾に?m=all
とqueryを追加するとプログラムが表示されるようになります.
上の図:表示関数の比較. 右の図:表示ディレクトリの比較.
(左側:queryなし.右側:?m=all
queryあり)
doc_generator.sh
では,最初にgodoc
をバックグラウンドで実行し,wget
で資料をファイルとして手元に保存します.そして,バックグラウンドで実行しているgodoc
を終了します.
次に,今回はquerym=all
を指定した資料が欲しいので,queryがない資料を削除します.
最後に,保存した資料をdocs
ディレクトリ配下に移動します.
wget
のオプションの意味は,以下の通りです.
.html
を追加する.Go言語プログラムの資料を自動生成する方法を紹介しました.
便利なgodoc
を積極的に活用していきましょう.