module Main where import Prolog import Hakyll import Hakyll.Alias import Data.Alias (AliasMap) import Data.Name (Name_) import Data.Person (Person_) import Data.Journal (Journal_) import Data.License (License_) import Hakyll.Aeson (yamlCompiler) import Hakyll.TeX.BibTeX (bibtexCompiler) import WWW.Base (baseHakyll, domain) import WWW.Templates (myContext) main :: IO () main = baseHakyll domain $ do match "templates/**" $ compile templateCompiler match "data/*.bib" $ compile bibtexCompiler -- match "data/people.yaml" $ compile $ yamlCompiler @(AliasMap Name_ Person_) -- match "data/licenses.yaml" $ compile $ yamlCompiler @(AliasMap StrictText License_) -- match "data/journals.yaml" $ compile $ yamlCompiler @(AliasMap StrictText Journal_) let baseCtxt :: Compiler (Context String) baseCtxt = fold <$> sequence [ pure myContext , personCtxt @StrictText <$> loadBody "data/people.yaml" , licenseCtxt @StrictText <$> loadBody "data/licenses.yaml" , journalCtxt @StrictText <$> loadBody "data/journals.yaml" ] pure ()