{-# LANGUAGE OverloadedStrings #-} module Util.Routes where import Hakyll import Data.Maybe (fromMaybe) import qualified Data.Text as T import qualified Data.Text.Slugger as Slugger prefixRoute :: FilePath -> Routes prefixRoute p = customRoute $ \id' -> p ++ (toFilePath id') titleRoute :: Metadata -> Routes titleRoute = constRoute . fileNameFromTitle where getTitleFromMeta :: Metadata -> String getTitleFromMeta = fromMaybe "no title" . lookupString "title" fileNameFromTitle :: Metadata -> FilePath fileNameFromTitle = T.unpack . (`T.append` ".html") . Slugger.toSlug . T.pack . getTitleFromMeta