Node.js で PlantUML を描く : node-plantuml

テキストベースで UML が描ける PlantUML というツールがある。これは元々 Java 製なのだが、Node.js でも使える node-plantuml というパッケージが用意されている。

これを使って UML を描くための素振り環境を作ってみた。

目次

node-plantuml の導入

まずは以下のコマンドで node-plantuml をプロジェクトローカルにインストールする。

$ npm install node-plantuml --save

次に package.json に以下の npm-scripts を追加する。

{
  "scripts": {
    "puml": "puml"
  }
}

これで、npm run puml と叩いて node-plantuml を使えるようになった。ちなみにグローバルインストールした時は直接 puml で実行できるようになる。

PlantUML を記述する

PlantUML は DSL (ドメイン特化言語) で記述する。平たくいえば PlantUML が用意する専用言語ということで、構文は覚えないといけないが、とりあえずネットで拾った簡単なサンプルスクリプトを利用して以下のように書いてみる。

actor ボブ participant Alice
ボブ->Alice : こんにちは activate Alice
Alice-->ボブ : Hello deactivate Alice

コメントは /' コメント '/ という風に書ける。ファイル名は適当に example-plantuml.md としておいた。

こうして記述したファイルは、Shift-JIS エンコードを指定して保存しておこう。UTF-8 だと変換時に日本語が文字化けしてしまうためだ。Shift-JIS エンコードを指定しておくと、日本語を含んでいても文字化けしなくなる。

UML 図を描画させる

こうして用意したファイルをインプットに、PNG 形式で図を描画させてみる。

$ npm run puml -- generate --png --output output-plantuml.png example-plantuml.md

npm run で実行する際にオプションを渡すため、-- を間に置いている。

これで example-plantuml.md に書かれたテキストをインプットに、output-plantuml.png というファイルを生成できる。

描けた

ついでにコレも npm-scripts に追加しておこう。

{
  "scripts": {
    "puml": "puml",
    "generate-plantuml": "puml generate --png --output output-plantuml.png example-plantuml.md"
  }
}

以上

PlantUML を簡単に試せる環境が作れた。あとは構文を覚えてもっと使ってみよう。