{-# LANGUAGE OverloadedStrings #-}

import Hakyll qualified as H

pandoc :: H.Compiler (H.Item String)
pandoc =
  H.pandocCompiler
    >>= H.loadAndApplyTemplate "templates/default.html" H.defaultContext
    >>= H.relativizeUrls

index :: H.Rules ()
index =
  H.match "index.md" $ do
    H.route $ H.setExtension "html"
    H.compile pandoc

css :: H.Rules ()
css =
  H.match "css/*" $ do
    H.route H.idRoute
    H.compile H.compressCssCompiler

template :: H.Rules ()
template = H.match "templates/*" $ H.compile H.templateBodyCompiler

main :: IO ()
main = H.hakyllWith H.defaultConfiguration $ index >> css >> template