review記法を覚えたくないけど執筆したい人の強い味方「md2review」の使い方

執筆のためにreview記法を覚えたくない、という人のためのcliツール、md2reviewについて書いてみました。変換前後の内容がWordPressの記法変換に影響されて苦労しました。
2020.09.28

はじめに

書籍制作に便利なRe:VIEWですが、既にmarkdown記法に慣れている場合だとreviewフォーマットは意外に入力し難いものだったりします。

review記法のつもりがmarkdownになっていてPDF変換エラーになることを幾度も繰り返していましたが、出版後にmarkdown記法をreviewに変換するライブラリを見つけて落胆していました。

次回執筆時用の備忘録として使い方含めて書き残してみます。

takahashim/md2review

gemによるcli toolです。

使い方はシンプルなのですが、オプション指定は慣れるまで厄介かもしれません。

md2review [options] your-document.md > your-document.re
オプション 詳細
--render-link-in-footnote 脚末のリンクを有効にする
--render-enable-cmd shellやconsole用ブロックを有効にする
--render-table-caption 表のキャプションを有効にする
--parse-no-intra-emphasis 強調表記時に途中で折り返さない
--parse-autolink タグ表記でないリンクを自動で有効にする

実際の置換処理

以下の内容をtext.mdという名前で保存して変換にかけてみます。codeブロックについては記事上では上手く表示されないため都合上書き方を変えています。

参考:[(])

## テスト

あいうえお

(code)
コードブロック
(/code)

### あとがき

あいうえお

期待する点としては、文章と段落構成のreviewフォーマット化、コードブロックのreview表記対応辺りです。

md2review test.md > test.re

test.reの内容は以下の通りでした。

== テスト


あいうえお


(code)
コードブロック
(/code)


=== あとがき


あいうえお

改行が幾つか増えました。review記法変換時に改行処理に合わせて1行ずつ空行がはいります。その調整によるものです。ただ、review記法では2行以上の空行は自動で1行の扱いになるようで、markdownで段落を作るために行を入れたことで過剰に空行が増えても問題はなさそうです。

文章と段落については正常に変換されましたが、DevIOでのコードブロックはそのままでした。置換ルールに対応していないケースとなります。なお、今回は--render-enable-cmdを指定しても変わりませんでした。

` ` `code` ` `の表記で対応した場合には//emlist{code}として出力されるため、標準的なコードブロック処理では問題なさそうです。(DevIOでは都合上codeブロックでの執筆となっています。)

md2reviewの変換で気をつけること

複数のファイルをまとめては変換してくれません。シェルスクリプト等で対応する必要があります。

あとがき

普段markdownで記述するときには念の為前後で改行を入れているのですが、review記法に変換すると実害はないといえ裏目に出るのがわかりました。

ただ、review記法を覚えていなくても標準的なmarkdownに沿っていることでタイピングが相当楽になるのは事実です(特にコードブロック)。技術書典等の同人誌即売会でreview記法が苦手だからやってなかった、という人がいるのかはわかりませんが、非常におすすめです。

参考リンク