{-# 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"