高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

ReVIEWを使ってみました。

Twitterで流れてきたコミケの話。今回は(も)技術系サークルがたくさん参加していたようですね。


まあ、それはそれとして。
今回かなり盛り上がっており、開幕からわずか40分少々で完売したというEffective Androidという本。こちらで使われていたReVIEWという書籍作成向けのツールキットが話題になっていたので、ちょっと調べていました。


このReVIEWというのは、独自の特殊記法で記述されたテキストを変換してePUBやPDF、HTML、TeX Documentなどなど様々なファイルを生成出来るRuby製のドキュメント変換ツール。
基本的な部分は次のドキュメントが詳しいです。

調べてみると達人出版会というところでは割とメジャーに使われているツールだそうです。

電子書籍、作るとは言ったものの何で作ろうか困っていたので、これで作るのも良いかもしれません。テキストベースだからGitで管理しやすい というのも個人的には良いところ。

WindowsでReVIEWを使うには

で、このツールはUNIX/Linux系のツールです。WindowsではCygwin上で動かす必要があります。
自分は「え、CygwinCygwinコンソールで使うなんて、そんなのイヤイヤ」という人なので、ちょっといじってWindowsのコマンドプロンプトから使えるようにしてみたので、ひとまずメモ書き。

どちらにしろちょっと面倒なので、本格的に使うときはGinnieスクリプトでも書いた方が良いかもしれませんね。

手順

まず、ここで必要なのは次のものです。なお、ReVIEWは内部でRubyのfork()メソッドを使用しているので、Windows用のRubyではなく、Cygwinでインストール出来るRubyを使用する必要があります(公式サイトのWindows用Rubyでは、fork()メソッドが使えない)

  • Ruby(Cygwinより入手)
  • ReVIEWツール(Githubより入手)

手順は次のとおりです。

  1. Cygwinをインストールします。ここで、インストールするパッケージにrubyを含める必要があります。
  2. ReVIEWをインストールします上記QUICKSTARTに書いてあるとおり、ReVIEWはgitにて管理されていますので、git cloneコマンドを使用してリポジトリから取得します(自分は、TortoiseGitを使いました)。
  3. 次に環境変数の設定です。Cygwinのbinフォルダ(自環境ではC:\CygwinCygwinをインストールしているため、「C:\Cygwin\bin」)と、ReVIEWのbinフォルダ(自環境ではC:\tools\reviewにreviewをインストールしていたため、「C:\tools\review\bin」)を環境変数PATHに設定します。
  4. このままではWindowsのコマンドプロンプトからReVIEWの各種コマンドを呼び出すことが出来ないため、\review\binフォルダに各種コマンド呼び出し用のバッチファイルを作ります。
    1. \review\binフォルダをコマンドプロンプトで表示し、reviewコマンド全てに拡張子をつけます(ren * *.rb)
    2. rbファイルと同じ名前のバッチファイルを作成します(copy *.rb *.bat)
    3. 作成したバッチファイル全てを、次の内容で置き換えます。
@echo off
ruby %~dpn0.rb %*

Windowsではデフォルトでbatファイルを拡張子なしで呼び出せるようになっているので、これでひとまずOK。



あとはQUICKSTARTの記述にしたがって、sample.reを任意のフォルダに配置し、コマンドプロンプトから以下のコマンドを実行。

review-compile --target html sample.re > sample.html

これでひとまず、HTMLが出力されました。複数の章を一斉変換したいときは、「CHAP」という拡張子なしのファイルを作成し、そこに一行ひとつのReVIEW形式のテキストを指定します

sample.re
sample2.re

なお、CHAPファイルがあれば以下のコマンドで一括変換が可能。

review-compile --target html -a

ただし、各行のファイルは別のファイル名である必要があります(各reファイルと同じ名前のhtmlファイルが生成されます)。

パス形式に関する警告

なお、この状態ですと、Rubyコマンドでファイルを読み込むときに、「ファイルパスがCygwin形式でない」旨の警告が出ます。そのままにしても問題はありませんが、どうしても気になる方は以下を参考に環境変数を設定してください。

ePUBとPDF出力

QUICKSTARTの記述を見ると、ePUBとPDFの出力にはreview-pdfmaker、review-epubmakerコマンドを使うようです。こちらのほうはまだうまくいっていません(ePUBを実施してみたものの、真っ白なファイルが出力されている)。

「No such file or directory - review-compile」と出ているので、環境変数の設定がうまく認識されていないようです。ほかの処理はうまくいっているので、環境を見直せばあっさり解決しそう。

2013年8月12日22時00分追記 ひとまず解消

review-epubmakerで拡張子なしのファイルを見ようとしているため、失敗しているのが原因でした。
review-epubmaker.rbの721行目(あたり)の、「exec("review-compile --target=html・・・」を「exec("review-compile.bat --target=html」に書き換えればひとまず動きます。
この辺はもう少しましなアプローチを考えないといけませんね。

ひとまずこのReVIEWでいくかどうか、もう少し検討してみようかなと。