最初の投稿
2023-10-24 05:49
こんにちは。
今まではてなブログさんで全ての記事を書いていたのですが、最近はObsidianを利用してMarkdownで様々な文章を残していること、記事をGitで管理したいなどがあり、今回から技術系のブログはこちらで書くことにしました。 リポジトリは cordx56/blog.cordx.cx になります。
どうぞよろしくお願いします。
このサイトについて
さて、折角なのでこのサイトについて、どのように作られているかなど少し説明したいと思います。
本サイトは、Haskell製の静的サイトジェネレータである ChrisPenner/slick を利用して作られています。
何故これを利用したかというと、過去に私がHaskell製の静的サイトジェネレータのHakyllを利用していたので、再びHakyllでサイトを作成しようかと思ったところ、HakyllからSlickに移行した人のブログ記事が出てきたからです。 Ref: ここを Hakyll から Slick に移行してみた
触ってみた印象としては、HakyllよりSlickの方がシンプルと言った印象です。 Hakyllは全部入りの印象が強く、カスタマイズしてみた感触としては、Slickの方がわかりやすいなと感じました。
どのような仕組みになっているか
折角なので、どのような仕組みになっているかも説明したいと思います。
まず、サイトビルダのソースコードは cordx56/slick-site-builder にあります。 これはサイトの中身を含んでおらず、純粋にサイトをビルドするだけのプログラムです。
このプログラムが何をしているかというと、まずカレントディレクトリの config.yaml
を読みます。
そして、そこに記述されたサイト情報、ビルドルールを読み取り、それに従ってサイトをビルドしていきます。
実際にどのような記述でこのサイトがビルドされているかは、 こちら から確認できます。
サイトビルダのリポジトリはGitHub Actionsで自動でDockerイメージとしてビルドされ、ghcr.ioでホストされます。 このイメージを利用して、ブログのリポジトリにpushされた際に、自動でサイトのビルドが走るようになっています。
おわりに
久々に(5年ぶりくらい?)Haskellを書きましたが、なかなか面白いですね。 Haskellはだいぶ前に触っていたので、少しコードを読んだら前みたいに書き始めることができました。 研究室の教授にHaskellの話をしていただいたり、バイト先でHaskellプロジェクトへのお誘いを受けるなど、なにかとHaskellには縁がありつつなかなか触れていなかったので、久々に書くことができてよかったです。
こんな感じで、ブログを少しずつ書いていこうかなと思っています。 これからよろしくお願いします。