HELLO, ZOLA World!!!!! としたかったけど、 移行が面倒すぎたので諦めた話。 以下は作業ログです。一応終りは見えたけど、

ELECTIONS

Jekyll でサイト作るの飽きてきたので、 新しい SSG(Static Site Generator) に変更することにした。

選定必須基準として、以下の条件を。

  1. markdown 形式1 で書けること
  2. Jekyll と同じ URL が生成されること

いまどき直接 HTML で書く人はあまりいないし、いままでの記事があるので markdown で書けることは当然ですね。 もうひとつの必須条件として、 Jekyll で設定した URL で記事が書けることとなります。 これは現在出している記事の URL を変更しないために必須です。

移行に苦労しないようにするために以下の条件をとることにした。

  1. Jekyll と同じ様に markdown の先頭に frontmatter でいろいろと設定できること
  2. Jekyll と同様にテーマが選択できること
  3. バイナリーで配ってること

frontmatter については移行を楽にするためで多少の書き替えはしかたがないとしています。 デザイン変更を楽にするためテーマが選択できる SSG だといいなあと思い。 バイナリーで配ってあると楽なんですよ2

以上の条件を踏まえいくつか検討してみましたが、 zola にしました。

getzola/zola - GitHub

Jekyll to Zola

katsyoshi/jekyll2zola - GitHub

やったこと

まず、ファイル名が .markdown と混在してので .md へ統一。 つぎに markdown 先頭の frontmatterYAML から TOML へ変換する。 これは大変な話ではなく、 frontmatter 部分を読み込んで変更するだけです。 でこの変更部分なのですが、大抵の部分は問題にならないです。 大抵の部分は……

URL の設定

URL の設定は、参考サイト の設定を利用して変換します。 ここで問題となるのが、Jekyll の設定で、 /blog/%Y/%m/%d/file-name となっていることです。 Zola では config.toml で設定する slugify に設定する方法があるようですが、イマイチ使えず (そもそも slugify を勘違いしてた)。 ディレクトリを利用し設定する方法frontmatterpath設定する方法があります。 今回は frontmatterpath 指定して URL を設定することにしました。 変換はファイル名から取得すればよいので問題は特になく変換できました。 ただ、変換する際にこのままだと挿入するには注意が必要で、挿入する必要があります。 これは Array#insert を利用すれば 解決 ですね。

テーマ

テーマ はあるのですがプラグイン形式というわけではなく、 git clone or git submodule add して利用する点が慣れない。 気になる部分は template/ に修正ファイルを全部作る必要があり面倒でした。 Cargo でインストールできればいいのに…… ということでもっと面倒臭い自分のテーマを作ることでこの気になる点を解決。 作成方法は 公式ドキュメント を参考にすすめれば問題なく作成できます。 テーマというか、普通にテンプレート化するだけです。 テーマ化 も実際は簡単にでき、 theme.toml を書いておけば大丈夫なようです。 個人的に利用しているだけなのでテーマ化はしないですが。

FEED.XML

RSS Feed 自体はサポートされていますが、 URL のパスが /atom.xml/rss.xml になってしまうため 旧来のパス /feed.xml は新規にテンプレートを作る必要があります。 これは追い追い考える。現状 Jekyll にあった feed.xml を作るのは大変すぎる。

こまかい修正

いくつか気になる部分があったがこまかいので手で修正

  1. 脚注の順番が脚注を書いた順に出力
  2. Syntax Highlighting のサポート言語
  3. 画像の変更
  4. rake task の整理

脚注は脚注で引用した順番ではなく、脚注を書いた順になっているので修正してます。 Syntax Highlighting ではサポートされていない書きかた(console)をやめてサポートされている言語(bash)へ修正。 画像の変更はとくに zola は関係なく、大きいファイルが多いので変更しています。 rake task では、いままでデプロイやら記事作成やらなんだかんだやっていたので整理を行いました。 今は一旦、記事作成だけにしております。そのうちデプロイを行なえるようになると思います

とここまで書いたけどデプロイやめた

というのが、 feed.xml の移行とスタイルの修正が思った以上に大変で中止。 この今 Jekyll のテーマのスタイルがあれば、そのうち変更するかもね。


  1. RFC(Request For Comment) になっててびびってる 

  2. Jekyll は依存解決とかあって最新の Ruby が使えなかったりしたのでストレスたかかった