packages feed

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"