gitbookやtutやtravis-ciの細かい説明はしないので、各自ググるか、公式サイト参照してください
tutは、ドキュメント内のScalaのコードが、コンパイル可能かチェック、(REPLでの)実行、実行前のコードを実行結果含めたものに置き換えてくれて成果物にできる、みたいな素晴らしいやつです。
成果物のサンプルはこれです
わざと試行錯誤したcommit残してあります。あと、色々な経緯によりtextlintというツールなど色々設定がされいますが、そこも気が向いたら後で説明したいですが、今回は説明しません。というか、azuさんのものを色々使わせてもらっているので、こちらのblog参照してください
今すぐ電子書籍(技術書)を書き始める方法と文章の自動チェック
travisからの自動commitとpushは、以下のサイトの通りで基本できたんですが、その後の細かいpushとcommit部分でハマりました。
Travis-CI でコミットして GitHub にプッシュする - 公開鍵認証を利用してみる
上記のサイトでは、ビルドするリポジトリと、成果物をpushするリポジトリが別ですが、今回一緒にしてみたことによりハマった部分が半数以上?
以下、試行錯誤した細かい操作を列挙
- 使ってるnpmの何かがC++に依存していたので gcc のインストール追加 https://github.com/xuwei-k/gitbook-sample/commit/a93e48489b392
- travisはデフォルトだと、ビルド対象のbranchしかfetchしてくれない
- 結論 "git fetch origin gh-pages:gh-pages" というのを追加
- 単に "git fetch --all" だとダメだった
- travis上でコミットする前に、user.nameやuser.emailが無指定だったので、コミットできない
- pushするremoteがoriginのままだとだめ
- travisはhttpでcloneされてるから
- git push git@github.com:foo/bar.git gh-pages:gh-pages みたいな、直接sshのuri指定に変更 https://github.com/xuwei-k/gitbook-sample/commit/e04c103816fb5731
- コミットする前にgit add . するのを忘れてた、というケアレスミス
この仕組み使って、色々ドキュメントを書いていきたい・・・