aboutsummaryrefslogtreecommitdiff
path: root/hakyll/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'hakyll/Main.hs')
-rw-r--r--hakyll/Main.hs125
1 files changed, 0 insertions, 125 deletions
diff --git a/hakyll/Main.hs b/hakyll/Main.hs
deleted file mode 100644
index f2ed24e..0000000
--- a/hakyll/Main.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-import System.FilePath.Posix
-import Hakyll
-
-
-main :: IO ()
-main = hakyll $ do
- match "favicon.ico" $ do
- route idRoute
- compile copyFileCompiler
- match "css/*" $ do
- route idRoute
- compile compressCssCompiler
- match "images/*" $ do
- route idRoute
- compile copyFileCompiler
- match "static/**/*" $ do
- route idRoute
- compile copyFileCompiler
- match "fonts/*" $ do
- route idRoute
- compile copyFileCompiler
- match "root/*" $ do
- route $ dropPrefix "root/"
- compile copyFileCompiler
-
- match "pastebin/*" $ do
- route $ setExtension "html"
- compile $ pandocCompiler
- >>= loadAndApplyTemplate "templates/pastebin.html" pastebinCtx
- >>= saveSnapshot "content"
- >>= loadAndApplyTemplate "templates/default.html" pastebinCtx
- >>= relativizeUrls
-
- match "posts/*" $ do
- route $ setExtension "html"
- `composeRoutes` dropPrefix "posts/"
- `composeRoutes` dateFolders
- compile $ pandocCompiler
- >>= loadAndApplyTemplate "templates/post.html" postCtx
- >>= saveSnapshot "content"
- >>= loadAndApplyTemplate "templates/default.html" postCtx
- >>= relativizeUrls
-
- match "pages/*" $ do
- route $ setExtension "html"
- `composeRoutes` dropPrefix "pages/"
- compile $ pandocCompiler
- >>= loadAndApplyTemplate "templates/default.html" defaultContext
- >>= relativizeUrls
-
- match "pastebins.html" $ do
- route idRoute
- compile $ do
- pastebins <- recentFirst =<< loadAll "pastebin/*"
- let pastebinCtx =
- listField "pastebins" pastebinCtx (return pastebins) `mappend`
- defaultContext
-
- getResourceBody
- >>= applyAsTemplate pastebinCtx
- >>= loadAndApplyTemplate "templates/default.html" pastebinCtx
- >>= relativizeUrls
-
- match "index.html" $ do
- route idRoute
- compile $ do
- posts <- recentFirst =<< loadAll "posts/*"
- let indexCtx =
- listField "posts" postCtx (return posts) `mappend`
- constField "title" "Home" `mappend`
- defaultContext
-
- getResourceBody
- >>= applyAsTemplate indexCtx
- >>= loadAndApplyTemplate "templates/default.html" indexCtx
- >>= relativizeUrls
-
- create ["atom.xml", "feed.xml", "feed.atom"] $ do
- route idRoute
- compile $ do
- loadAllSnapshots "posts/*" "content"
- >>= recentFirst
- >>= renderAtom feedConfiguration feedCtx
-
- create ["rss.xml"] $ do
- route idRoute
- compile $ do
- let feedCtx = postCtx `mappend`
- constField "description" "This is the post description"
-
- posts <- recentFirst =<< loadAll "posts/*"
- renderRss feedConfiguration feedCtx posts
-
- match "templates/*" $ compile templateBodyCompiler
-
-
-postCtx :: Context String
-postCtx =
- dateField "date" "%B %e, %Y" `mappend`
- defaultContext
-
-pastebinCtx :: Context String
-pastebinCtx = postCtx
-
-feedCtx :: Context String
-feedCtx =
- bodyField "description" `mappend`
- defaultContext
-
-feedConfiguration :: FeedConfiguration
-feedConfiguration = FeedConfiguration
- { feedTitle = "EuAndreh"
- , feedDescription = "EuAndreh's blog"
- , feedAuthorName = "EuAndreh"
- , feedAuthorEmail = "eu@euandre.org"
- , feedRoot = "https://euandre.org"
- }
-
-dropPrefix :: String -> Routes
-dropPrefix prefix = gsubRoute prefix $ const ""
-
-dateFolders :: Routes
-dateFolders =
- gsubRoute "[0-9]{4}-[0-9]{2}-[0-9]{2}-" $ replaceAll "-" (const "/")