packages feed

shakespeare 2.0.21 → 2.0.22

raw patch · 4 files changed

+30/−4 lines, 4 files

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for shakespeare +### 2.0.22++* Add `stextFile` to `Text.Shakespeare.Text`, which can be used to produce `Text` directly in the same way `shamletFile` can be used to produce `Html` directly. [#240](https://github.com/yesodweb/shakespeare/pull/240)+ ### 2.0.21  * Support for GHC 8.8
Text/Shakespeare/Text.hs view
@@ -28,6 +28,7 @@     , ToText (..)     , renderTextUrl     , stext+    , stextFile     , text     , textFile     , textFileDebug@@ -78,15 +79,25 @@   , unwrap = unWrapExp   } --stext, lt, st, text, lbt, sbt :: QuasiQuoter-stext = +-- | "Simple text" quasi-quoter. May only be used to generate expressions.+--+-- Generated expressions have type 'TL.Text'.+--+-- @+-- >>> do let x = "world"+--        'Data.Text.Lazy.IO.putStrLn' ['stext'|Hello, #{x}!|]+-- Hello, world!+-- @+stext :: QuasiQuoter+stext =   QuasiQuoter { quoteExp = \s -> do     rs <- settings     render <- [|toLazyText|]     rendered <- shakespeareFromString rs { justVarInterpolation = True } s     return (render `AppE` rendered)     }++lt, st, text, lbt, sbt :: QuasiQuoter lt = stext  st = @@ -138,6 +149,14 @@ textFileReload fp = do     rs <- settings     shakespeareFileReload rs fp++-- | Like 'stext', but reads an external file at compile-time.+--+-- @since 2.0.22+stextFile :: FilePath -> Q Exp+stextFile fp = do+  rs <- settings+  [|toLazyText $(shakespeareFile rs { justVarInterpolation = True } fp)|]  -- | codegen is designed for generating Yesod code, including templates -- So it uses different interpolation characters that won't clash with templates.
shakespeare.cabal view
@@ -1,5 +1,5 @@ name:            shakespeare-version:         2.0.21+version:         2.0.22 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>
test/Text/Shakespeare/TextSpec.hs view
@@ -68,6 +68,9 @@       writeFile "test/texts/external2.text" "var #{var} = 1;"
       -}
 
+    it "stextFile" $ do
+      let var = "somevar"
+      TL.toStrict $(stextFile "test/texts/external2.text") @=? pack "var somevar = 2;"
 
     it "text module names" $
       let foo = "foo"