muon-0.1.0.0: 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 :: StringTemplate T.Text -> [T.Text] -> T.Text
renderGenericHome t cs = render
$ setAttribute "site" defaultSite
$ setAttribute "content" (T.unlines cs) t
renderHome :: IO T.Text
renderHome = do
cs <- getAllExtracts
t <- homeTemplate
return $ renderGenericHome 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"