VimでUMLを編集しDocker+ブラウザでプレビューする
VimでのUMLプレビューは検索すると様々な記事が見つかりますが、以下のような点から導入を躊躇ってました
- 事前インストールが必要な依存関係が多い
- 外部のUMLサーバへの接続が行われる
- 可視化性が低い
そこでDockerでローカルに起動したPlantUML Serverを利用し、Vimで編集中のUMLをブラウザでプレビューできるようにした
事前準備
DockerでPlantUML Serverを起動する
$ docker run -d -p 8080:8080 plantuml/plantuml-server
vimrcに以下を追記
nmap <leader><Space><Space> :! curl -s -i http://localhost:8080/form -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode text@% \| grep "^Location:" \| awk '{print $2}' \| sed -e "s/\/uml\//\/png\//" \| xargs open<CR><CR>
(/png/PlantUMLの圧縮文字列
のendpointでも生成できるが圧縮文字列を生成するのが面倒くさいのでformに投げつけてる)
プレビュー
@startuml アリス -> ボブ: Authentication Request ボブ --> アリス: Authentication Response アリス -> ボブ: Another authentication Request アリス <-- ボブ: another authentication Response @enduml
開いた状態で <leader> -> space -> space でブラウザでプレビュー画像が開かれる
ヨシ!