あれ?ブログまた変わった??

と思われた方は正解です. ドメインは一緒ですが,テンプレートを一新し,ブログのビルドエンジンもHugo→Jekyllに変更しました.

Hugoは,Go言語ベースの静的サイト生成ツールですが,Jekyll(ジキル)は,Rubyベースとなっており,比較的利用者の多いツールです.(参考:StaticGen)

もちろん導入にいたっては,東工大の某氏たちはじめ,多数のロボットやプログラムに携わる人が使っていたことも決め手になっています.

なんでJekyll??

Hugoでも良かったんですよ.Markdownという記法で手軽に記事が書けるし,Gitベースのクライアントで更新できるので,ローカルでデータ更新してプッシュするだけだし,問題はなかったんですが…

あるとき,プラグインでグラフやツリーを描写できることを知り,いろいろ調べていくうちに,現行で比較的プラグインが豊富なのがJekyllだったので,最終的にJekyllにすることになりました.(また変わるかも知れませんが(^_^;)

ブロック線図を書くには?

現状のツール

Jekyll向けプラグインとして,システムの流れを再現可能なツールは,MermaidGraphvizblockdiagなんかがあります.パッケージの上下関係がわからないので,細かい点は省略.

しかし,これらのツールは,ノードtoノードが基本となっており,頑張ってブロック線図を書こうとしても,

blockdiag blockdiag { u -> F -> y,G ; G -> F [folded] ; } u F y G

こんな感じになってしまう…

Tikz(Texパッケージ)

やっぱり,制御やってる人は,

とまあこんな感じでいきたいですよね.

こんなときはTikz(「てぃくす」と読むらしい).Texのパッケージとして使えて,ブロック線図も上の通り.Jekyllならプラグインもあるので,そこまで難しくなく扱えます.もちろん,Texがコンパイルできるパソコン前提での話ですよ.内部でTexコンパイルして,生成したsvgファイルを自動リンクしてくれるのでかなり便利です.

企み

「おいおい,Tex使うってことは,いまのCIツールじゃ難しいってことじゃないか.Gitプッシュからビルドサーバだけで完結できねえのか.」と思い,Dockerに環境を構築してみました.とビルドは出来たのですが,NetlifyにプッシュするためにSSHキーを保存せねばならず,外部のビルドサーバ経由で行うのは断念.現在サーバ検討中なので,近いうちには自前のビルドサーバで,プッシュからデプロイまで自動化しているかもしれません?

環境構築

私はMacユーザーなので,Windowsでは検証していません(が,入れるパッケージはそこまで変わらないと思います).自宅ビルド用にUbuntuでも環境を再構築したので,載せておきます.

  • Mac
    1. Texが動く環境を構築(MacTexなど)
    2. Tikzのサンプルなどを動作させる
    3. brew install pdf2svgなどして,pdf2svgをインストール
    4. (怪しい感じの)Jekyll-tikzを入手し,Jekyll用ディレクトリ内の_pluginにコピペ.
  • Ubuntu
    sudo apt-add-repository ppa:texlive-backports/ppa
    sudo apt-get install texlive texlive-lang-cjk ruby ruby ruby-dev make gcc nodejs wget
    sudo gem install jekyll bundle
    jekyll new tikz-test-site
    cd tikz-test-site
    sudo bundle install
    wget https://gist.githubusercontent.com/hack-ghost/6139753/raw/fb37dd05a5e0a4e8daf36d002c8f8dcd8072f0ca/jekyll-tikz.rb
    mv jekyll-tikz.rb _plugins/jekyll-tikz.rb
    
    • Graphvizとblockdiag使いたい人は,
      sudo apt-get python python-pip graphviz
      sudo pip install actdiag blockdiag nwdiag seqdiag
      gem install jekyll-diagrams
      
    • さらに,_config.yml内のgemにjekyll-diagramsと書き,Gemfile内に以下を書いて下さい.
      group :jekyll_plugins do
       gem "jekyll-diagrams"
      end
      


今回はここまで.ぽいちゃ