Edited at

pandocコンテナに色々入れてみた


pandocコンテナに色々入れてみた

設計書をMarkdownで書いていたのだけど、提出できる(≒ Word的な)形にする必要があったので、調べていたら、素晴らしい記事にたどり着きました。

あとはPlantUMLに対応すればいい感じになりそうなので、コンテナに突っ込んでみました、という記事です。


元ネタ

いろいろパクリ参考にしました。感謝。


参考記事


参考ソース


リソース


使い方

Markdown → PDFは元ネタを参考にしてください。基本、「--filter /usr/share/plantuml/plantuml.py」オプションをつけるだけです。

PDFの出力例

$ docker run -it --rm -v `pwd`:/workspace ysogabe/alpine-pandoc-ja pandoc input.md -f markdown -o output.pdf -V documentclass=ltjarticle --pdf-engine=lualatex --filter /usr/share/plantuml/plantuml.py


やったこと

元のDockerfileを以下の通りいじりました。


  1. Dockerのベースイメージを「adoptopenjdk/openjdk12:alpine」に変更

  2. ビルドが通らなかったので、修正ついでにTeXのバージョンを上げた

  3. plantuml、pandocfiltersをインストールした

大したことしてないので、詳しくはソースをみてください。


PlantUMLの記載方法

pandocfiltersの「examples/plantuml-sample.md」を参考にしてください。

PlantUMLの書き方はいろいろありますが、


```plantuml → OK

```plantuml → NG
@startuml

@import "./uml/01.usecase.puml" → NG

```puml → NG
@startuml

です。(大量に文書があればfilterを修正するけど、grepでできる範囲だったので、文書で対応しました)


使ってみて


  • やっぱり、ドキュメントの差分管理は便利


  • typora使うと、図表もコピペでOK(PlantUMLのプレビューができれば完璧なのになぁ)

  • 何気にWord出力が便利


これから


  • CI:誤字、脱字、表記の揺れとかの自動チェック

  • CD:最終生成物をどこで管理する?


謝辞

元ネタのおかげで、仕事がはかどりました。


修正

相互参照に対応できてなかったので、Dockerイメージを修正しました。PDFは相互参照できます。すばらしい。Wordでも相互参照したいなぁ。。。