2021年1月22日金曜日

[review-retrovert] Re:VIEW Starter → Re:VIEW 4/5 に対応しました

ブログズミ: [Re:VIEW Starter][Re:VIEW] 訳あって Starter から素の Re:VIEW に戻すツールをリリースしました

以前に作った review-retrovert をアップデートしました。
今回も訳あって Re:VIEW Starter -> Re:VIEW をするためのアップデートです。

https://rubygems.org/gems/review-retrovert
https://github.com/srz-zumix/review-retrovert

更新内容としてはタイトルの通りで、Re:VIEW のバージョン 4 と 5 への変換に対応しました。もともと対応していた 3 系も変わらず対応しています。
インストールされている Re:VIEW のバージョンに依存して変換します。

機能としては Re:VIEW Starter の独自拡張を Re:VIEW で表現可能な書式に直したり、削除(コメントアウト)したりします。
また preproc 済みの状態(かつ #@mapfile~#@end を削除)にする --preproc オプションやカタログファイルから参照されている .re ファイルのみに限定する --strict オプションが用意されています。

(※Re:VIEW Starter → Re:VIEW への変換には Nextpublising での制限都合のものも含まれております)
(※書籍に挿入するイメージの制限チェックは GitHub Actions の actions-book-image-check が便利です)

あと変換後だけ config を変えたい場合は config-retrovert.yml を作成し、retrovert キー配下に上書きしたい設定を書いてください。上書きされる方の設定は config-base.yml など別ファイルに移動してください。
そして inherit で "config-base.yml, "config-retrovert.yml" のように読み込みます。
変換前は retrovert キー配下に設定があるので config-retrovert.yml に書いた設定は無視されます。
review-retrovert convert すると retrovert キーが削除され配下の設定がトップレベルになるので、config-retrovert.yml の設定有効になり、inherit 末尾の設定が優先されるので config-base.yml の設定は無視されます。

最後に

Re:VIEW Starter で書いたけど Re:VIEW に直す必要が出てきた方はぜひ使ってみてください。不具合や機能要望は issue へお願いしますmm

宣伝

技術書典10で出品した書籍は現在も技術書典のマーケットで購入できます。
また Booth でも出品してますので何卒よろしくお願いします。

では。

2021年1月14日木曜日

[Re:VIEW] mapfile 中の table が正しく表示されない場合の対応方法

 Re:VIEW で一章のテキスト量が多く書きづらかったので、項単位で複数のファイルに分割して #@mapfile(sub.re) で結合してたのですが、この分割した .re ファイルに table を書いていたのが意図通りの表示になりませんでした。
(※素の Re:VIEW ではなく Re:VIEW Starter を使っています)


こんな感じ。
本来なら FREE/BASIC/STANDARD が列になるはず・・

mapfile の外に出せば問題なく表示されるのですが、table 挿入するところでサブの .re ファイルを分けないといけない(もしくは maprange?)のは面倒なので、調べました。

何が起きていたか?

preproc 後のファイルを見れば、何が起きていたのかは一目瞭然です。
table の列区切り文字であるタブがスペースになっていました。
つまり、行が全部結合されて1列になっていた。

どうしてこうなった?

preproc のソースでこの辺です。

https://github.com/kmuto/review/blob/da817154297474b43c4f13db2e612350ee380b49/lib/review/preprocessor.rb#L454

mapfile で開いたファイルを処理している中で呼ばれるメソッドですが、タブをスペースに変換しています。tabwidth の config がなければ 8 space になっています。
そして、tabwidth が 0 なら変換なしであることがわかります。

これで対応ができそうです!

対応する

@config[tabwidth] は review-preproc の --tabwidth オプションで指定可能なので --tabwidth=0 つければ OK です。
Rake でビルドしてる場合は .rake ファイルも修正してください。

review-preproc --tabwidth=0 file.re

これでちゃんと意図したとおりに出力できました。
(用紙からはみ出ちゃってるのは行が長すぎたから・・リリース版では修正済み)



2021年1月4日月曜日

【技術書典10】「あつまれ CI サービス 2020冬」の販売を開始しました

 あけましておめでとうございます。
技術書典10も残りわずかとなりましたが、このタイミングで
あつまれ CI サービス 2020冬」の販売を開始しました。



本書は技術書典応援祭(技術書典8)で出版した「あつまれ CI サービス」のアップデート版です。Travis CI の料金体系変更への対応更新が大きな変更点になりますが、CI サービスに Wercker を追加、並列実行の比較の追加(商用版での追加分)と各 CI サービスの最新状況へのアップデートを行っています。

無印版、商用版をご購入頂いた方には重複した内容が多いので、
購入して頂く場合はその点留意していただければと思います。

それでは本年もよろしくお願いします。