From ec3a4a4715700294206d6e78d8b38a57a7de7592 Mon Sep 17 00:00:00 2001 From: Carlos Sosa Date: Sat, 24 Aug 2019 20:47:26 -0700 Subject: Move to use src/ directory with the addition of Site modules - Added Content record with Lenses. - Added Rules based content compilers * This is all based on [[https://github.com/blaenk/blaenk.github.io/blob/source/src/Site/Compilers.hs]] --- src/Site/Rules.hs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/Site/Rules.hs (limited to 'src/Site/Rules.hs') diff --git a/src/Site/Rules.hs b/src/Site/Rules.hs new file mode 100644 index 0000000..731d6d9 --- /dev/null +++ b/src/Site/Rules.hs @@ -0,0 +1,41 @@ +module Site.Rules + ( indexRules + , contentRules + ) +where +import Site.Content +import Hakyll + +indexRules :: Content -> Rules () +indexRules content = create paths $ do + route routeConfig + compile + $ makeItem "" + >>= loadAndApplyTemplate itemListTemplate listContext + >>= loadAndApplyTemplate itemTemplate context + >>= relativizeUrls + where + paths = _contentPaths content + routeConfig = _contentRoute content + listTemplate = _contentIndexTemplate content + template = _contentTemplate content + context = _contentContext content + listContext = _contentIndexContext content + itemListTemplate = + fromFilePath $ "templates/" ++ listTemplate ++ ".html" + itemTemplate = fromFilePath $ "templates/" ++ template ++ ".html" + + +contentRules :: Content -> Rules () +contentRules content = match glob $ do + route routeConfig + compile + $ pandocCompiler + >>= loadAndApplyTemplate itemTemplate context + >>= relativizeUrls + where + glob = _contentPattern content + routeConfig = _contentRoute content + template = _contentTemplate content + context = _contentContext content + itemTemplate = fromFilePath $ "templates/" ++ template ++ ".html" -- cgit v1.3-2-g0d8e