使用莎士比亚文本和外部文件

时间:2012-10-09 01:00:32

标签: haskell yesod template-haskell hamlet shakespeare-text

如何将以下示例转换为使用外部文件而不是嵌入的惰性文本准引号?

{-# LANGUAGE QuasiQuotes, OverloadedStrings #-}
import Text.Shakespeare.Text
import qualified Data.Text.Lazy.IO as TLIO
import Data.Text (Text)
import Control.Monad (forM_)

data Item = Item
    { itemName :: Text
    , itemQty :: Int
    }

items :: [Item]
items =
    [ Item "apples" 5
    , Item "bananas" 10
    ]

main :: IO ()
main = forM_ items $ \item -> TLIO.putStrLn
    [lt|You have #{show $ itemQty item} #{itemName item}.|]

这来自yesod online book

1 个答案:

答案 0 :(得分:2)

您可以使用textFile功能,$(textFile "some-file")