spring of life

技術、ときどき日常のブログ(予定)

plantuml のいろいろ調査メモ

sphinx + plantuml で UML 作ったりしてて、いろいろ使い方とかを調べたのでちょっとまとめとこう

UML を別ファイルに記述

  • .. uml::の下に UML を書いてると1ファイルが長くなっちゃう時がある
  • .. uml:: umls/hoge.umlとファイル名を指定すると、 hoge.uml に plantuml で書いた UML を挿入できる
  • ファイルのパスは相対パスでOK

plantuml-mode

  • ファイルを分けたのは便利だけど、UMLemacs で編集しようとするとインデントやハイライトとかの設定がなくて書きづらい。。。
  • plantuml-mode っていうパッケージを入れるとそこらへんを上手くやってくれる

インストール手順

※ 事前にパッケージをインストールできるようにしてあること

  • emacs のバージョンアップ(M-x package-install が使えるくらいまで)
  • もしかしたらadd-to-listでパッケージを追加しないといけないかもしれない
  • (大丈夫だと思うけど)plantuml.jar をダウンロードして使えるようにしておくこと
  1. emacs 上でM-x package-install [ret] plantuml-mode [ret]を実行してインストール
  2. ↑を実行しただけだと plantuml.jar がないと言われて使えない場合があるのでパスを設定
    • デフォルトだと~/plantuml.jarとなっている(plantuml-mode.el を開いて plantuml.jar で検索したら見つかるはず)
  3. ↓を追記すると .uml ファイルが自動で plantuml-mode になる
    • 拡張子が違う場合は適宜\\.uml$の部分を変える
(add-to-list 'auto-mode-alist '("\\.uml$" . plantuml-mode))
(require 'plantuml-mode)

conf.py での plantuml.jar の場所の指定

  • ここは絶対パスで書いたほうがいいみたい
  • でも sphinx をビルドするサーバーを変えるとパスが変わるかもしれないので、あまり書きたくない
  • そういう時はosモジュール(?)を使うと便利
import os
...
# os.path.abspath で絶対パスを取得
plantuml = ['java', '-jar', os.path.abspath('lib/plantuml.jar')]