はじめに
自分の場合,今まで家にgitlabサーバーをたて,一つのプロジェクトを作って そこにMarkdownで思いついたことをメモ書きしていました。
しかし,ただのメモならgitで管理するのもやや過剰な感じで 何か別の方法をと考えていました。
で,過去のメモとかを確認していると,kroki.ioを用いたKroki.jlというパッケージを確認しなきゃ!と書いてました。
kroki.ioはplantumlやmermaid等,テキストデータから色々な図を描画するパッケージ群を一つのサーバーで扱えるようにしたものです。
これとGoogle Colabを組み合わせて,アイデアをメモするノートのようなものが実現できるかも,ローカルのIJuliaにも流用できて,場所を問わず参照できるのはいいなぁと思って 早速試してみました。
Google Colabでの利用例
IJuliaやPluto Notebookでも同様に利用できますが,今回はGoogle Colaboratryで確認してみます。
Jupyter notebookと同じ(というかほぼ同等?)で, 「セル」という単位に分かれていて,Markdown(テキスト)か(Julia言語の)コードかのどちらかを記入できます。

また,見出しはテキストセル一つにつき一つの見出しのみ記入するようにすると,折り畳み表示が可能になります。
一つのセルに見出しと,内容を書くと(特にJulia言語がランタイムの場合)折りたたみできなくなることがあります。
ランタイムの変更
今回は,Kroki.jlとJulia言語のモジュールを利用するので, あらかじめ実行するランタイムをPythonからJuliaに変更しておきます。


なお,PythonにもKrokiを利用可能なモジュールがあるみたいなので, Julia言語が嫌いとか,Pythonの方を好む人はそちらを利用するとよいでしょう。
Kroki.jlのセットアップ
先頭の方でコードセルを追加し,そこでKrokiモジュールを追加するコードを書きます。次のような感じでしょうか?
import Pkg; Pkg.add("Kroki") using Kroki

そして,このセルをあらかじめ実行しておくと,他のセルでKroki.jlが利用可能になります。
plantumlの利用例
Kroki.jlでplantumlを使う場合,
plantuml""" plantumlのコード ... """
のような形のマクロを利用することで,plantumlが使えます。

プレビューはsvgで出力されるようです。サーバー側にフォントは必要ないのは手間がかからなくていいですね。
また,私は使わないのですが,mermaidを利用する時は,上記のplantumlのところをmermaidに変更した
mermaid""" mermaidのコード ... """
という方法で記載可能です。

なお,tikzは内部でpdflatexを利用している(latex2svgコマンドの内部)ようで,それもあって日本語が使えません。残念。
さいごに
Google Colab等のJulia言語のノートブック環境でKroki.jlを使って図を描く方法を試してみました。kroki.jlは色々なフォーマットから図を表示することが可能なので,プログラミング等構造化テキストに馴染みのある方には色々利用しやすいのではないでしょうか?