reflex-dom-th 0.3.2 → 0.3.3
raw patch · 5 files changed
+26/−3 lines, 5 filesdep +gettext-th
Dependencies added: gettext-th
Files
- CHANGELOG.md +3/−0
- README.md +8/−0
- reflex-dom-th.cabal +3/−2
- src/Reflex/Dom/TH.hs +6/−0
- src/Reflex/Dom/TH/Parser.hs +6/−1
CHANGELOG.md view
@@ -1,5 +1,8 @@ # Revision history for reflex-dom-th +## 0.3.3+* gettext-th support+ ## 0.3.2 * ghc 8.10 support
README.md view
@@ -63,3 +63,11 @@ </ul> |] ``` ++There is also support for translatable text from [gettext-th](https://hackage.haskell.org/package/gettext-th). ++To add translatable text in a template File (see domFile) ++```+<div>[__|Hello world|]</div>+```
reflex-dom-th.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: reflex-dom-th-version: 0.3.2+version: 0.3.3 -- A short (one-line) description of the package. synopsis: reflex-dom-th transpiles HTML templates to haskell code for reflex-dom@@ -33,12 +33,13 @@ exposed-modules: Reflex.Dom.TH.Parser , Reflex.Dom.TH- default-extensions: TemplateHaskell, TupleSections, DeriveLift, RecordWildCards, QuasiQuotes, OverloadedStrings, FlexibleContexts+ default-extensions: TemplateHaskell, TupleSections, DeriveLift, RecordWildCards, QuasiQuotes, OverloadedStrings, FlexibleContexts, ScopedTypeVariables build-depends: base >= 4 && < 5 , array , containers , megaparsec+ , gettext-th , mtl , reflex-dom-core , template-haskell
src/Reflex/Dom/TH.hs view
@@ -22,6 +22,8 @@ import Instances.TH.Lift() import Control.Monad.Reader +import I18N.Gettext.TH (gettext)+ type Ref = Int data ChildResult =@@ -44,6 +46,7 @@ , cDynAttrs :: Maybe String , cChilds :: Chain } | CText String+ | CGettext String | CComment String | CWidget String (Maybe Ref) deriving Show@@ -75,6 +78,7 @@ CBind (toC e) CREmpty (compile etail inRefs) where toC (TText t) = CText t+ toC (TGettext t) = CGettext t toC (TComment c) = CComment c toC _ = error "internal" @@ -132,6 +136,8 @@ return [| $(el'WithAttr tag attr tDynAttrs) $(cs) |] cnode (CText "") = return $ [| blank |] cnode (CText txt) = return $ [| text txt |]+cnode (CGettext txt') = + return $ appE [| text |] (quoteExp gettext txt') cnode (CWidget x _) = return $ unboundVarE $ mkName x cnode (CComment txt) = return [| comment txt |]
src/Reflex/Dom/TH/Parser.hs view
@@ -27,6 +27,7 @@ , tDynAttrs :: Maybe String , tChilds :: [TElement] } | TText String+ | TGettext String | TComment String | TWidget String (Maybe Ref) deriving Show@@ -79,6 +80,10 @@ varRef :: Parser String varRef = string "{{" *> space *> varName <* string "}}" <* space +gettext :: Parser TElement+gettext = TGettext <$> (string "[__|" *> space *> manyTill anySingle (string "|]"))++ widget :: Parser TElement widget = TWidget <$> (string "{{" *> space *> varName) <*> (refOpt <* (string "}}")) @@ -86,7 +91,7 @@ text = TText <$> dropWhileEnd isSpace <$> someTill anySingle (lookAhead (char '<' *> return () <|> string "{{" *> return () )) element :: Parser TElement -element = (comment <|> node <|> widget <|> text) <* space+element = (comment <|> node <|> widget <|> gettext <|> text) <* space template :: Parser [TElement] template = do