diff options
author | Joris | 2017-03-05 15:44:50 +0100 |
---|---|---|
committer | Joris | 2017-03-05 15:44:50 +0100 |
commit | 8e448ffc31685427afaee62a0379c33525769a6a (patch) | |
tree | 4199b4aaf6734718f3ff65afcab422e46543ddea /src/Main.hs | |
parent | a269afd23073d03faee7f3c17bdbcf8f6b5de903 (diff) |
Use stack
Diffstat (limited to 'src/Main.hs')
-rw-r--r-- | src/Main.hs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/Main.hs b/src/Main.hs new file mode 100644 index 0000000..e5f92b9 --- /dev/null +++ b/src/Main.hs @@ -0,0 +1,43 @@ +{-# LANGUAGE OverloadedStrings #-} + +import Data.List (sortBy) +import Data.Monoid (mappend) +import Data.Ord (comparing) + +import Hakyll +import Hakyll.Core.Item (Item(itemIdentifier)) + +main :: IO () +main = hakyllWith configuration $ do + match "images/*" $ do + route idRoute + compile copyFileCompiler + + match "design/*.hs" $ do + route $ setExtension "css" + compile $ getResourceString >>= withItemBody (unixFilter "runghc" []) + + match "recipes/*" $ do + route $ setExtension "html" + compile $ pandocCompiler + >>= loadAndApplyTemplate "templates/main.html" defaultContext + >>= relativizeUrls + + match "index.html" $ do + route idRoute + let context = + listField "recipes" defaultContext (loadAll "recipes/*") `mappend` + defaultContext + compile $ + getResourceBody + >>= applyAsTemplate context + >>= loadAndApplyTemplate "templates/main.html" context + >>= relativizeUrls + + match "templates/*" $ compile templateBodyCompiler + +configuration :: Configuration +configuration = defaultConfiguration + { destinationDirectory = "public" + , inMemoryCache = True + } |