unixFilterを使えばよいが、jadeはstdinオプションがなかったので
cat $1 | jade
というbashスクリプトを用意してbin/sjadeとした。
hakyllでの設定はこんな感じ。
match (fromList ["index.jade", "about.jade", "member.jade"]) $ do route $ setExtension "html" compile $ getResourceString >>= withItemBody (unixFilter "bin/sjade" []) >>= loadAndApplyTemplate "templates/default.html" defaultContext >>= relativizeUrls
Hakyllとは何か?
pandocが組み込まれたWebサイト用makeというのが僕の印象。
Jekyllがブログっぽい静的サイトを生成するっていうイメージだったので、Hakyllも似た感じなのかなぁと考えていたけどちょっと違う感じ。
pandocとunixFilterのおかげでepub, docx出力なんかもできるのでちょっとした規模のサイトだったら構成ごとそのまま管理できると思う。
それからSphinxでサイト管理するよりは、もうちょっと柔軟に対応できそう。というよりサブディレクトリにSphinxを埋め込めればさらに快適になりそう。
haskellのソースコードもDSLっぽくなっていて、match -> route -> compileの流れは分かりやすい。