Hakyllの紹介
- 静的サイトジェネレーター Advent Calendar 2016 - Qiitaの2日目の記事
- 関連記事
- 私はhakyllしかろくに使ったことはない
hakyllとは
Hakyllはhaskellで書かれた静的サイトジェネレーターである. このサイトもhakyllで作られている. ncaq/www.ncaq.net: ncaq website
強み
pandocが楽に使える
PandocはmarkdownやreStructuredTextを処理するための極めて強力なツールである. hakyllはpandocをデフォルトで使うようになっているので, pandocを使うために何かしらのセットアップは必要ない. markdownでサイトを作るにはうってつけのツールである.
また, pandocはhaskellで書かれており, 内部コードもライブラリとして関数がきちんと整備されている. pandoc: Conversion between markup formats
他の言語を採用した静的サイト生成ツールがコマンドラインからpandocを利用するしかない所, hakyllはpandocと同じhaskellで書かれているので, pandocの関数たちをダイレクトに使うことができる.
ドキュメント整備
haskellのドキュメントシステムであるhackageは極めて優れている. ドキュメントはソースコードから抽出された豊富な型情報とドキュメントコメントから生成される. それはつまり, 使える関数には全てドキュメントが付いているということである.
haskellで書かれている
- 関数の独立性が高い
- haskellの豊富な独立した関数が使える
- EDSLがモナドで構築されている
弱み
pandocはテンプレートエンジンとしては貧弱
hakyllはpandocをデフォルトのテンプレートエンジンとして使っている. (もちろん設定すれば他のエンジンを使うことも可能だが)
pandocはドキュメント変換ツールとしては非常に強力だが, テンプレートエンジンとして考えると強力とは言いがたい.
総論
結局はhaskellとpandocが好きかどうかで評価が分かれる. ブログなどのデザインが統一されたサイトにはうってつけだ.