Pelican でplantUML(with plugin plantuml)

table contens

このためにPelicanを利用しようと思った。
markdownで、plantUMLが利用できる。

1 setup

1.1 package

alpine で利用する場合には、こんな感じでパッケージを追加する。

$ apk -U add --no-cache \
graphviz \
ttf-droid \
ttf-droid-nonlatin curl \
openjdk8

小さな Docker Containerを作りたくて、alpine で 171MB に押さえてたのに、
画像ライブラリとjava で 356MB まで増えてしまった。

1.2 plantuml(jar)

jar file を取得

$ PLANTUML_VERSION=8055
$ mkdir -p /opt/plantuml
$ curl -L https://sourceforge.net/projects/plantuml/files/plantuml.${PLANTUML_VERSION}.jar/download \
-o /opt/plantuml/pl

1.3 pelicanconf.py

plugin plantuml が使えるように設定する。

PLUGINS = [ ..., "plantuml" ]

1.4 script の準備

/usr/local/bin/plantuml を用意する。chmod +x も忘れずに。

!/bin/bash
java -jar /opt/plantuml/plantuml.jar ${@}

2 Markdownの記述

こんな感じで記述する。

:uml::
@startuml
  Alice -> Bob: Authentication Request
  Bob --> Alice: Authentication Response

  Alice -> Bob: Another authentication Request
  Alice <-- Bob: another authentication Response
@enduml
::end-uml::

3 plantUMLの出力結果

こんな感じで展開される。

sample_plantuml
sample_plantuml