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"