Re:VIEWの//graph
命令でMermaidコードを記述できるようにして、静的画像化もするようにした。
gem配布は次リリース予定のRe:VIEW 5.8からとなるけど、https://github.com/kmuto/review.gitをcloneして試したり運用したりするのはもうできる。
ひととおりはドキュメントにまとめている。
- playwrightが入るようなpackage.jsonを用意して
npm install
でインストールする。 gem install playwright-runner
でPlaywright Runnerをインストールする。- pdftocairo (poppler) をインストールする。
apt install poppler-utils
Re:VIEW側でMermaidコードをgraph内に書く。
//graph[loadbalancer][mermaid]{ graph TD A[Client] --> B[Load Balancer] B --> C[Server1] B --> D[Server2] //}
これで、review-epubmakerやreview-pdfmakerなどを実行すると、中でPlaywrightを使ってPDFなりSVGなりが書き出される仕組み。
周辺に余白が気になるという向きは、TeXLiveのpdftcropを用意し、config.ymlのplaywright_options
のselfcrop
をfalse
にするとよい。
内部的には先日作ったplaywright-runnerを使っている。
Playwright自体がいまいち不安定で、たまに真っ白いのができてしまう。playwright-runner側でもいろいろ回避策をとってみてはいるが、もう少し検査できるといいのかな。フロントエンドに強い人のcontribute希望。
今回でgraphの遅延実行をbuilder.rbから別のファイルに切り出したので、今のgraphの実装はそっちに追い出していく予定。今後ほかのブラウザベースの描画を追加しやすくもなった。