Backlog で PlantUML をプレビューする環境

今携わっているプロジェクトは、プロジェクト管理もコード管理も Backlog を利用しています。

Online Project Management Software for Developers | Backlog

当然ドキュメントも Backlog の Wiki に書くんですが、微妙にかゆいところに手が届かない。日常的には ScrapboxKibela を使ってるんですが、いい感じのリンク機能もなければ、素敵な描画機能も無いので、苦心しながら使っている状態です。

未だに backlog 記法の wiki が大半を占めていて、backlog 記法は近年アップデートも感じられないし、syntax highlight も微妙だし、、、辛い。

PlantUML をプレビューしたい

Backlog の公式から Backlog Power Ups が出ていて、そこに PlanUML のプレビュー機能もあります。

ただ、コードを見てもらうとわかりますが、PlanUML の画像生成は公式のサーバーに投げることで実現しています。

backlog-power-ups/plantuml.js at master · nulab/backlog-power-ups · GitHub

    const convertToImage = (elem) => {
        const $elem = $(elem);
        const text = $elem.text();
        const data = compress(text);
        const url = `https://www.plantuml.com/plantuml/png/${data}`;
        $elem.replaceWith($("<img>").attr("src", url));
    }

当然といえば当然ですが、内部の Wiki に書く情報なので、外部のサーバーにぶん投げるとなると、、、いろいろあります。

PlantUML Server を立てた

GitHub - plantuml/plantuml-server: PlantUML Online Server

公式でサーバーを公開してくれているので、これを立ててみました。

落ちる

原因までわかっていないのですが、ローカルの VS Code Plugin で書いていた UML を Backlog Wiki に貼り付けると、サーバーが落ちるという減少が起こりました。

当然、ローカルも同じ docker image を参照しているので、差は無いはずです。なので、おそらくサーバーに送りつける方法が違っているのだと思います。

JQuery Integration

上記の jQuery Integration あたりも見てみたんですが、まあ backlog-power-ups もほぼ同じことをやっているんですよね。

plantuml-service にした

GitHub - bitjourney/plantuml-service: High-performance HTTP service for PlantUML, used in Kibela

自分が Kibela を使っていることもあり、以前にビットジャーニー社が PlantUML のサーバーを公開していたなと思い出し、試しにこっちに変えてみました。

問題が解消し、いい感じに利用できるようになっています。

VS Code Plugin の方も見てみようかな

と思いつつ、当面は plantuml-service で運用しようと思っている次第です。

使ってる Dockerfile

GitHub - dany1468/plantuml-service-docker