From 7091d40b31d4e9fe32ab15b865397e9abf0ba5d8 Mon Sep 17 00:00:00 2001 From: Joris Date: Wed, 25 May 2016 14:31:53 +0200 Subject: Init with potimarron page --- src/Main.hs | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/Main.hs (limited to 'src') diff --git a/src/Main.hs b/src/Main.hs new file mode 100644 index 0000000..b9ba49c --- /dev/null +++ b/src/Main.hs @@ -0,0 +1,47 @@ +{-# LANGUAGE OverloadedStrings #-} + +import Data.List (sortBy) +import Data.Monoid (mappend) +import Data.Ord (comparing) + +import Hakyll +import Hakyll.Core.Item (Item(itemIdentifier)) +import System.Process (readProcess) + +main :: IO () +main = hakyllWith configuration $ do + match "images/*" $ do + route idRoute + compile copyFileCompiler + + match "design/**" $ do + route $ customRoute $ const "main.css" + compile $ do + filePath <- getResourceFilePath + unsafeCompiler (readProcess "runghc" [ filePath ] "") + >>= makeItem + + match "legumes/**" $ do + route $ setExtension "html" + compile $ pandocCompiler + >>= loadAndApplyTemplate "templates/main.html" defaultContext + >>= relativizeUrls + + match "index.html" $ do + route idRoute + let context = + listField "vegetables" defaultContext (loadAll "legumes/*") `mappend` + defaultContext + compile $ + getResourceBody + >>= applyAsTemplate context + >>= loadAndApplyTemplate "templates/main.html" context + >>= relativizeUrls + + match "templates/*" $ compile templateBodyCompiler + +configuration :: Configuration +configuration = defaultConfiguration + { destinationDirectory = "public" + , inMemoryCache = True + } -- cgit v1.2.3