Re:VIEWとSphinxと、時々、ボク

若山史郎 / @r_rudi

お前だれよ

若山史郎 / @r_rudi

「Sphinxをはじめよう」著者の一人

_images/r_rudi.png

最近全然動けてません…

軽量マークアップあれこれ

軽量マークアップは星の数ほど

etc, etc….

注釈

軽量マークアップは星の数ほどあります。Markdownの亜種だけでもかなりの数ですし、XMLベースのものや、内部でのみ使用している記法まで含めるとものすごい数でしょう

軽量マークアップの傾向

カバー範囲がそれぞれ異なる

reSTはPDFにはできるが、日本語組版にはそこまでではない。Re:VIEWは強力だし、実績も多数。

しかし、執筆はSphinxでやりたい。reSTからRe:VIEW経由すれば印刷もいけるんじゃね!

ということで、

作りました

reSTからRe:VIEWへの変換

sphinxcontrib-reviewbuilder

% pip install sphinxcontrib-reviewbuilder
% emacsclient -n conf.py

書き加える
extensions = ['sphinxcontrib.reviewbuilder']


% make review

review形式で書きだしてくれるすごい拡張です

できあがり (1/2)

=={id1} お前だれよ

若山史郎 / @r_rudi

「Sphinxをはじめよう」著者の一人

//image[r_rudi][]{
//}

最近全然動けてません…

できあがり (2/2)

=={id4} 作りました

reSTからRe:VIEWへの変換

@<code>{sphinxcontrib-reviewbuilder}

//cmd{
% pip install sphinxcontrib-reviewbuilder
% emacsclient -n conf.py

書き加える
extensions = ['sphinxcontrib.reviewbuilder']

% make review
//}

review形式で書きだしてくれるすごい拡張です

実際の使用例

Sphinxをはじめよう 第二版

_images/getstart-sphinx.jpg

仕事ではじめる機械学習

_images/shigotode.jpg

Real World HTTP

_images/realworldhttp.jpg

Re:VIEWからreSTへの変換

反対もあれば便利じゃね?

Re:VIEWからreSTへの変換

Re:VIEW本体にrst builderを追加 (PR #733)

_images/review_rst_pr.png
% review-compile --target=rst

Re:VIEW からreST形式に出力

そのままSphinxでビルド可能

実際の使用例

Big Mouth Data 2017 Spring (技術書店2で頒布)

_images/big_mouth_data_2017spr.png

Re:ViEW形式とreST形式の違い

Re:ViEW形式とreST形式の違い

例(1/4): コラム

Re:VIEW

===[column] コンパイラコンパイラ

コラムの内容

===[/column]

reST/Sphinxには標準でコラムはありません

例(2/4): コマンドラインのキャプチャ

Re:VIEW

//cmd{
$ @<b>{ls /}
//}

コマンドライン操作を表すための専用命令があります

reST/Sphinxには標準でコマンドライン操作を表す命令はありません

例(3/4): 参照

Re:VIEWでは、参照対象によって異なる命令を使います

@<chap>{章番号を参照する場合}
@<chapref>{章番号とタイトルを含むテキストを参照する場合}
@<hd>{節や項を参照する場合}
@<column>{コラムを参照する場合}

reSTではrefのみで自動的に判断します

また、番号だけだったりテキストも含めたりと参照方法を変えることはできません

例(4/4): 番号付きリスト

Re:VIEWもSphinxも同じです。

1. 第1の条件
2. 第2の条件
3. 第3の条件

ただし、Re:VIEWはネストをサポートしていません

reSTはネストをサポートしており、柔軟な書き方ができます

まとめ

まとめ