{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE OverloadedStrings #-} 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 }