概要
自分のためのブログ用静的サイトジェネレータ「filversish」をリリースしました。
動機
ブログ用に使える静的サイトジェネレータにはHugoやJekyllなど、様々な選択肢があります。そのどれもが高機能で、十分に高速に動作する(未検証)と思われます。しかしながら、それらの挙動や使い方は自分で覚えなければならず、また、自分にとって都合の悪い仕様になっている場合もあります。
これらの悩みを解決するために、自分のための静的サイトジェネレータを作ることとしました。
採用技術と開発
開発にはC#を用いました。これは静的サイトジェネレータに適しているか否かよりも、手元ですぐに作り始められることを重視して選択しました。(すぐに書き始められる言語がC#くらいしかなかったため。)
ライブラリは以下のものを用いました。
- xoofx/markdig
- .mdファイルからHTMLを生成するためのMarkdownパーサー
- xoofx/Tomlyn
- 記事に付随する情報(投稿日時やタグなど)を.tomlファイルを用いて管理するためのTOMLパーサー
- scriban/scriban
- 生成したHTMLを適切なレイアウトでサイトに埋め込むためのテンプレートエンジン
開発段階では、「とりあえず動くものを作る」ということを第一の目標にしました。これは早く使えるものが手元に欲しかったということと、完成までの時間を短くすることで未完成のままになることを防ぐためです。概ね思った通りに早く作ることができましたが、ハードコードされた部分が多かったり、インターフェースなどでまとめられる部分がまとまっていなかったりなど、コードのクオリティがいくつかの点で犠牲になってしまいました。
機能
現状では最低限の機能のみが備わっています。
- ブログの生成機能
- .mdファイルと.tomlファイルからHTMLを生成し、テンプレートに埋め込み、適切なフォルダに配置することでブログを生成します。
- テーマ機能
- テーマのテンプレートとCSSを書くことで、ブログの見た目などを調整できます。
- タグ機能
- 記事に付けられたタグから、タグ毎に一覧表示をすることができます。
今後
今後しばらくの間、機能の追加を行う予定です。現状で予定している機能追加は以下の通りです。
下書き機能の追加2022/08/09 追加済み投稿日と最終更新日を分ける2022/08/10 追加済みサイトマップ出力機能2022/08/28 追加済み記事に説明欄を追加できるように変更2022/12/13 追加済みテーブル(表)に対応2022/12/13 追加済み- デフォルトテーマの作成
- ローカルサーバー機能
アップデートが入るたびにこの記事も更新する予定です。