📄
PandocでPlantUMLをMarkdownに埋め込む
PandocでPlantUMLをMarkdownに埋め込む
Pandocにはlua-filtersがあり、これらを使うとPandocの機能を拡張できる。
その中のdiagram-generatorはMarkdownにPlantUMLやGraphvizが埋め込めてたいへん便利。
diagram-generatorの利用方法
公式のドキュメントに実行例が載っている。
https://github.com/pandoc/lua-filters/tree/master/diagram-generator#how-to-run-pandoc
が、公式にはWindowsでの利用方法しか記載がないので、mac用にコマンドを叩くとこんな感じになった。
$ pandoc README.md -f markdown -t html --embed-resources --standalone --lua-filter=filters/diagram-generator.lua --metadata=plantumlPath:/opt/homebrew/Cellar/plantuml/1.2023.1/libexec/plantuml.jar --metadata=javaPath:/usr/bin/java -o README.html
--lua-filter
、--metadata=plantumlPath
、metadata=javaPath
にそれぞれのパスを指定してやればいい。
また、公式では--self-contained
オプションを使っていたが、実行すると以下のようなWARNINGが出たので、--embed-resources
にしている。
[WARNING] Deprecated: --self-contained. use --embed-resources --standalone
Emacsのmarkdown-modeから使う
Emacsのmarkdown-modeでは、markdown-command
にMarkdownをhtmlへ変換するコマンドを指定することができる。lua-filterを使うpandocを指定してやればEmacsからでも実行できる。
(setq markdown-command (concat "pandoc " "--embed-resources " "--standalone " "--lua-filter="filters/diagram-generator/diagram-generator.lua " "--metadata=plantumlPath:/opt/homebrew/Cellar/plantuml/1.2023.1/libexec/plantuml.jar " "--metadata=javaPath:/usr/bin/java"))
Discussion