diff options
| author | Carlos Sosa <gnusosa@gnusosa.net> | 2019-08-24 20:47:26 -0700 |
|---|---|---|
| committer | Carlos Sosa <gnusosa@gnusosa.net> | 2019-08-24 20:47:26 -0700 |
| commit | ec3a4a4715700294206d6e78d8b38a57a7de7592 (patch) | |
| tree | 82f7bf9cd081332216efb7f4e2eed77240f2c845 /src/Site/Rules.hs | |
| parent | 03a8fc8f75a1bf0f5afb7d0dd11cd7e881a7d763 (diff) | |
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]]
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" |
