JekyllでBuildするまで
あれ?ブログまた変わった??
と思われた方は正解です. ドメインは一緒ですが,テンプレートを一新し,ブログのビルドエンジンもHugo→Jekyllに変更しました.
Hugoは,Go言語ベースの静的サイト生成ツールですが,Jekyll(ジキル)は,Rubyベースとなっており,比較的利用者の多いツールです.(参考:StaticGen)
もちろん導入にいたっては,東工大の某氏たちはじめ,多数のロボットやプログラムに携わる人が使っていたことも決め手になっています.
なんでJekyll??
Hugoでも良かったんですよ.Markdownという記法で手軽に記事が書けるし,Gitベースのクライアントで更新できるので,ローカルでデータ更新してプッシュするだけだし,問題はなかったんですが…
あるとき,プラグインでグラフやツリーを描写できることを知り,いろいろ調べていくうちに,現行で比較的プラグインが豊富なのがJekyllだったので,最終的にJekyllにすることになりました.(また変わるかも知れませんが(^_^;)
ブロック線図を書くには?
現状のツール
Jekyll向けプラグインとして,システムの流れを再現可能なツールは,Mermaid,Graphvizやblockdiagなんかがあります.パッケージの上下関係がわからないので,細かい点は省略.
しかし,これらのツールは,ノードtoノードが基本となっており,頑張ってブロック線図を書こうとしても,
こんな感じになってしまう…
Tikz(Texパッケージ)
やっぱり,制御やってる人は,
とまあこんな感じでいきたいですよね.
こんなときはTikz(「てぃくす」と読むらしい).Texのパッケージとして使えて,ブロック線図も上の通り.Jekyllならプラグインもあるので,そこまで難しくなく扱えます.もちろん,Texがコンパイルできるパソコン前提での話ですよ.内部でTexコンパイルして,生成したsvgファイルを自動リンクしてくれるのでかなり便利です.
企み
「おいおい,Tex使うってことは,いまのCIツールじゃ難しいってことじゃないか.Gitプッシュからビルドサーバだけで完結できねえのか.」と思い,Dockerに環境を構築してみました.とビルドは出来たのですが,NetlifyにプッシュするためにSSHキーを保存せねばならず,外部のビルドサーバ経由で行うのは断念.現在サーバ検討中なので,近いうちには自前のビルドサーバで,プッシュからデプロイまで自動化しているかもしれません?
環境構築
私はMacユーザーなので,Windowsでは検証していません(が,入れるパッケージはそこまで変わらないと思います).自宅ビルド用にUbuntuでも環境を再構築したので,載せておきます.
- Mac
- Texが動く環境を構築(MacTexなど)
- Tikzのサンプルなどを動作させる
brew install pdf2svg
などして,pdf2svgをインストール- (怪しい感じの)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
- Graphvizとblockdiag使いたい人は,
今回はここまで.ぽいちゃ