module Hack.Manager.Readme
( renderReadme )
where
import Hack.Manager.Types
import Control.Monad
import Data.FileEmbed
import qualified Data.ByteString as BS
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import qualified Data.Text.Lazy as TL
import qualified Text.Hastache as H
import qualified Text.Hastache.Context as H
readmeTemplate :: BS.ByteString
readmeTemplate = $(embedFile "templates/README.mustache")
renderReadme :: ProjectInfo -> IO T.Text
renderReadme pinfo =
liftM TL.toStrict $ H.hastacheStr cfg (T.decodeUtf8 readmeTemplate) ctx
where
ctx = H.mkGenericContext pinfo
cfg =
H.defaultConfig
{ H.muTemplateFileDir = Nothing
, H.muEscapeFunc = H.emptyEscape
}