最初の投稿

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には縁がありつつなかなか触れていなかったので、久々に書くことができてよかったです。

こんな感じで、ブログを少しずつ書いていこうかなと思っています。 これからよろしくお願いします。