• 作成:

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は極めて優れている. ドキュメントはソースコードから抽出された豊富な型情報とドキュメントコメントから生成される. それはつまり, 使える関数には全てドキュメントが付いているということである.

hakyll: A static website compiler library

haskellで書かれている

  • 関数の独立性が高い
  • haskellの豊富な独立した関数が使える
  • EDSLがモナドで構築されている

弱み

pandocはテンプレートエンジンとしては貧弱

hakyllはpandocをデフォルトのテンプレートエンジンとして使っている. (もちろん設定すれば他のエンジンを使うことも可能だが)

pandocはドキュメント変換ツールとしては非常に強力だが, テンプレートエンジンとして考えると強力とは言いがたい.

総論

結局はhaskellとpandocが好きかどうかで評価が分かれる. ブログなどのデザインが統一されたサイトにはうってつけだ.