diff options
Diffstat (limited to 'src/Site/Rules.hs')
| -rw-r--r-- | src/Site/Rules.hs | 41 |
1 files changed, 41 insertions, 0 deletions
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" |
