risou's Lithograph

ブログシステムを一新した

2019-09-06

先日、社内 LT でブログ更新してないネタを使ったので、晴れて更新できるようになった。

ということで、ブログのシステムを新しくした。
見た目はもちろんだけどシステム自体も新規に作り直した。

前作は Haskell 製だったが、今作は Perl 6 製。
(とはいえ、どちらもブログシステム、というには圧倒的に機能が少ない。個人的に必要なものしか実装していないからだ)

今作には Lithograph という名前をつけた。

なぜ Perl 6 を使ったか

完全に趣味。
静的サイトジェネレータを作ろうと思ったとき、「それなら Perl 6 でもできそうだな」と思ったのが大きい。
日々のタスクが少なくない中でいつやるかというと、だいたい帰省したときで、2018年の年末〜2019年正月あたりで作り始めたが完成させられず2019年夏の完成となった。

なぜ Lithograph という名前にしたか

静的サイトジェネレータにしたのも同じ理由だが、コンテンツとしてより長く生き長らえてほしいと思ったとき、いわゆる動的なブログシステムよりも静的サイトジェネレータを使って HTML を出力しておく方が良さそうだと思ったからだ。
その発想に至る経緯で、「紙は便利だけど、石版に彫った方が当然長い年月を超えられる」ということに着目し、「僕が今欲しているのは、 Web における石版だな」と思ったことによる。
(機会があればいつかどこかでこの思いを整理したい)

見た目の話

去年くらいに Electron アプリ作ってたときくらいに簡単で良いなと思った Bulma を使った。
とはいえ、見た目の部分は利用者がそれぞれ好きにすれば良いことなので、このシステムが推奨するものではない。
とりあえず僕以外に使う人はいないだろうという想定で僕が使いたいものを使った。

というわりに、見た目を変える方法を含むカスタマイズ方法をどこにも記載していないので、そのうちドキュメントをちゃんと書かないといけない。

Perl 6 にして苦労はなかったか

これは当然いろいろあって、どこかで共有することもあるかもしれない。
いくつか概要を書いておくと、

  • RakudoStar2019.07 にすると zef install YAMLish が失敗する
  • Perl 6 で大量の markdown ファイルをパースして HTML として保存していると途中で解放済みメモリを解放しようとして死ぬ
    • MoarVM になにか問題があるのか僕の Perl 6 の実装が良くないのか
    • 結局どうしようもなくて最後に shell に頼った
  • IO::Psth に相対パスを与えてディレクトリを登っていこうとするとおかしなパスが生成される
  • 仕組み上 Travis CI を使って markdown を HTML にパースできるようにしているが、この処理の際に不定期に zef install に失敗して死ぬ

といったつらみがあった。

このあたりは時間があればもう少し深堀りしてみたい。
といいつつ、次に触る時間を得たときにはバージョンが上がって解消している可能性もある(それは当然大歓迎です)。

[追記 2019-09-09]
ちなみに Perl 6 製の静的サイトジェネレータを使ってみたいなら、オススメは Uzu だ。

2019-09-06T23:37:55.116921+09:00