読者です 読者をやめる 読者になる 読者になる

ふんわりした生活

本を読んだり仕事でやってみたことなどの日常から、ふんわりと気づきなどを書いていきます

GitBookのツールチェインにいまさら気づいてツラい

f:id:m0t0k1m0t0k1:20170228121950p:plain

さきほどGitBookでPowerShellの書籍を公開したとかいうエントリーを投稿しましたが、ほんとうに情弱でした。ですます調が混ざってしまう程度に困惑しております。

m0t0k1m0t0k1.hatenablog.com

何がというと、GitBookにはツールチェインがある。つぎの2つだ。

  • GitBook Editor
  • GitBook CLI

GitBookのオンラインエディタと同様なオフラインエディタ、先ほどmac用をダウンロードしてインストールしてきた。悲しいことに、操作感はまったくオンラインと同じになっているようだ。

これならわざわざ不安定なオンライン版にこだわらなくても、このエディタで書けばいいじゃないか!!

GitBookツールチェイン

このオフラインエディタはmac版だけでなく、Windows版もLinux版も用意されているようだ。クロスプラットフォームということだ。

GitBook Editor
https://www.gitbook.com/editor

このツールからプッシュだけでなくプルもできるし、ブランチ操作もすることができる。もう、これだけでいいんじゃないのか??

なお、このツールでログインすると現在のユーザーディレクトリ内にGitBookというディレクトリが作成され、GitBookユーザーごとにディレクトリわけされている。さらにその中でリポジトリごとにファイルが用意されているし.gitディレクトリも存在しているようだ。よって、これをそのままGitHubやほかのGitリポジトリサービスへプッシュしてもよいのではないかと思われる(未確認)。

一方、コマンドラインツールのほうはローカルでGitBook用の環境をつくることができるもののようだ。npmパッケージになっているのでnode.jsが必須になる。

npm install -g gitbook-cli

あとはよくあるツールのごとく、リポジトリ用のディレクトリを作成して、そのなかで初期化コマンドを唱えれば準備完了!あとはお好きなエディタで書いていけばよろし。

gitbook init

これを行うと、必須の構成が用意されるようだ。SUMMRY.mdとREADME.mdファイルが作成される。ローカルにつくったリポジトリをどうやって見るのさ!となるかもしれないが、そこはビルトインのサーバーがあるようなので、そちらで見ることができる。

gitbook serve

このコマンドを実行すると、初回だけGitBook本体がダウンロードされる。これをベースにして書籍データが読み込まれてGitBookをブラウザで見ることができるようになるわけだ。実行してみると「http://localhost:4000」にアクセスすることで書いた内容が見えるはずだ。しかし、ここまでやってみて気づいたが、このCLIツールはGitリポジトリをつくらない。だから、Gitとして管理したい場合は別途Gitリポジトリとしての初期化を行ったりする必要があるようだ。

静的HTMLとして出力することもできるようで、その場合はつぎのコマンドを実行すればよいらしい。

gitbook build [ブックのディレクトリ] [出力先ディレクトリ]

このあたり、公式ドキュメントに書いていなかったのだが、ソースを読むとこうなっており、そのとおり実行すると確かにhtmlが出力された。あとから追加したマークダウンファイルは、SUMMRY.mdにリンクを書いておくと相手にしてくれるようだ。これを記述し忘れているとそのままのファイルが出力先ディレクトリに出力されてしまっていた。

静的htmlのほかに、pdfやepub、mobiファイルにも出力できるようなので、後ほど試してみたい。もしかしてPandocを使わなくてよくなるのではという淡い期待もあるわけだし。

このほか、book.jsonを作っておくと著者情報やタイトル、プラグイン(あるらしいです)の情報、README.mdファイルなど特別なファイルのパスを変更することもできるようだ。

すべて自分でやりたい方はCLIで、そうでない方はEditorを使うとよいのだろう。ただ、CLIのときはGitコマンドを利用するようになるし、GitHubなどのアカウントでログインしている方はアクセストークンをパスワードの代わりに入力するようになる。

わたしも最初は「え?GitHubでアクセストークンを作成すんの??」と迷ったのだが、GitBookで用意してくれる。GitBookサイトで右上の自分のアイコンが出ているところをクリックすると、メニューが表示される。この中にある「Account Settings」をクリックするとプロフィールなどを変更する画面が表示される。

f:id:m0t0k1m0t0k1:20170228122036p:plain

画面左側の「Personal Settings」から「Applications / Tokens」をクリックすると、トークンを管理する画面に変わる。

f:id:m0t0k1m0t0k1:20170228122054p:plain

ここで画面右側にある「Generate Token」をクリックするとトークンを作成してくれる。

f:id:m0t0k1m0t0k1:20170228122108p:plain

ただし、このトークンは作成したときにしか表示されないため、「.netrc」というファイルを作成してホームディレクトリへ保存しておこう。

machine git.gitbook.com
  login ユーザー名かメールアドレス
  password 表示されたトークン

このあたりの話はFAQにあったので、こちらを参照するとよいだろう。

How can I use Git to update my book? · GitBook Help Center
https://help.gitbook.com/books/how-can-i-use-git.html

補足

これらツールチェインはGitHubソースコードも公開されているので、細かいところが気になる方はこちらをどうぞ。

GitBook
https://github.com/GitbookIO/gitbook

GitBook CLI
https://github.com/GitbookIO/gitbook-cli

なお、エディタのほうがクロスプラットフォームなのでピンときたが、やはりElectron製だった。便利だね、Electron。

【改訂新版】 Windows PowerShell ポケットリファレンス

【改訂新版】 Windows PowerShell ポケットリファレンス