From 6c6319c3ecfb9606c32b3c6c9b487da33911f8b6 Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Thu, 18 Jul 2024 01:37:00 +0100 Subject: add resources dir --- site.hs | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) (limited to 'site.hs') diff --git a/site.hs b/site.hs index 8284c2f..a25c79c 100644 --- a/site.hs +++ b/site.hs @@ -69,18 +69,46 @@ main = hakyll $ do route idRoute compile getResourceBody + match "resources/*" $ do + route $ setExtension "html" `composeRoutes` + appendIndex + compile $ pandocCompiler + >>= saveSnapshot "article-text" + >>= loadAndApplyTemplate "templates/resource.html" postCtx + >>= saveSnapshot "content" + >>= loadAndApplyTemplate "templates/base.html" postCtx + >>= relativizeUrls + + match "resources/*" $ version "raw" $ do + route idRoute + compile getResourceBody + + create ["resources.html"] $ do + route appendIndex + compile $ do + resources <- loadAll ("resources/*" .&&. hasNoVersion) + let resourcesCtx = + listField "resources" postCtx (return resources) `mappend` + constField "title" "resources" `mappend` + defaultContext + + makeItem "" + >>= loadAndApplyTemplate "templates/resources.html" resourcesCtx + >>= loadAndApplyTemplate "templates/base.html" resourcesCtx + >>= relativizeUrls + create ["archives.html"] $ do route appendIndex compile $ do posts <- recentFirst =<< loadAll ("posts/*" .&&. hasNoVersion) - let archiveCtx = + let archivesCtx = listField "posts" postCtx (return posts) `mappend` constField "title" "archives" `mappend` defaultContext makeItem "" - >>= loadAndApplyTemplate "templates/archives.html" archiveCtx - >>= loadAndApplyTemplate "templates/base.html" archiveCtx + >>= loadAndApplyTemplate "templates/archives.html" archivesCtx + >>= loadAndApplyTemplate "templates/base.html" archivesCtx >>= relativizeUrls @@ -104,7 +132,8 @@ main = hakyll $ do compile $ do let feedCtx = postCtx `mappend` bodyField "description" posts <- fmap (take 10) . recentFirst =<< - loadAllSnapshots ("posts/*" .&&. hasNoVersion) "content" + loadAllSnapshots (("resources/*" .&&. hasNoVersion) .||. ("posts/*" .&&. hasNoVersion)) "content" + renderAtom feedConfig feedCtx posts create ["sitemap.xml"] $ do @@ -112,12 +141,13 @@ main = hakyll $ do compile $ do -- load and sort the posts posts <- recentFirst =<< loadAll "posts/*" + resources <- recentFirst =<< loadAll "resources/*" -- load individual pages from a list (globs DO NOT work here) - singlePages <- loadAll (fromList ["about.md", "contact.md", "archives.html", "feed.xml"]) + singlePages <- loadAll (fromList ["about.md", "contact.md", "archives.html", "resources.html", "feed.xml"]) -- mappend the posts and singlePages together - let pages = posts <> singlePages + let pages = posts <> resources <> singlePages -- create the `pages` field with the postCtx -- and return the `pages` value for it -- cgit