muon-0.1.0.3: src/Home.hs
{-# LANGUAGE OverloadedStrings #-}
module Home where
import Post
import Text.StringTemplate
import System.Directory
import Site
import qualified Data.Text as T
sitePath = "site/"
mkdir = createDirectoryIfMissing False
homeTemplate = do
templates <- directoryGroup "templates" :: IO (STGroup T.Text)
let Just t = getStringTemplate "generic" templates
return t
renderGenericHome :: Site -> StringTemplate T.Text -> [T.Text] -> T.Text
renderGenericHome s t cs = render
$ setAttribute "site" s
$ setAttribute "content" (T.unlines cs) t
renderHome :: IO T.Text
renderHome = do
cs <- getAllExtracts
t <- homeTemplate
s <- readSite
return $ renderGenericHome s t $ reverse cs
writeHome :: T.Text -> IO ()
writeHome s = do
mkdir $ sitePath ++ "home/"
writeFile (sitePath ++ "home/index.html") (T.unpack s)
writeFile (sitePath ++ "index.html") (T.unpack s)
generateHome = renderHome >>= writeHome >> putStrLn "Generated home"