hsx-jmacro 7.0.1 → 7.1.0
raw patch · 3 files changed
+13/−16 lines, 3 filesdep ~happstack-hspdep ~hsxdep ~mtl
Dependency ranges changed: happstack-hsp, hsx, mtl
Files
- HSX/JMacroT.hs +4/−4
- example.hs +2/−5
- hsx-jmacro.cabal +7/−7
HSX/JMacroT.hs view
@@ -30,7 +30,7 @@ import qualified Data.Text as Strict import qualified Data.Text.Lazy as Lazy import HSX.XMLGenerator (Attr(..), XMLGen(..), XMLGenT(..), XMLGenerator, AppendChild(..), EmbedAsAttr(..), EmbedAsChild(..), Name(..), SetAttr(..), unXMLGenT)-import qualified HSX.XMLGenerator as HSX+ import Language.Javascript.JMacro (ToJExpr(..), JExpr(..), JStat(..), ToStat(..), jmacroE, jLam, jVarTy) -- | isomorphic to IdentityT, but used for generating javascript that generates XML/HTML@@ -59,9 +59,9 @@ toJExpr = toJExpr . evalJMacroM instance (Functor m, Monad m) => XMLGen (JMacroT m) where- type XML (JMacroT m) = JExpr- newtype Child (JMacroT m) = JMChild { unJMChild :: JExpr }- newtype Attribute (JMacroT m) = JMAttr { unJMAttr :: JExpr }+ type XMLType (JMacroT m) = JExpr+ newtype ChildType (JMacroT m) = JMChild { unJMChild :: JExpr }+ newtype AttributeType (JMacroT m) = JMAttr { unJMAttr :: JExpr } genElement = element xmlToChild = JMChild pcdataToChild str = JMChild $ [jmacroE| document.createTextNode(`(str)`) |]
example.hs view
@@ -19,13 +19,10 @@ main :: IO () main = do let html :: DOMNode- html = <p>Generate javascript from <span class="foo" id="h">HTML & XML</span>. <% cdata "<em>foo</em><em>bar</em>" %></p>-- xml = evalIdentity html+ html = <p>Generate javascript from <span class="foo" id="h">HTML & XML</span>.</p> js :: JStat- js = [jmacro| document.getElementById('main').appendChild(`(XMLToDOM xml)`);- document.getElementById('main').appendChild(document.createTextNode("i like <em>em</em>"));+ js = [jmacro| document.getElementById('main').appendChild(`(html)`); |] handler :: ServerPart XML
hsx-jmacro.cabal view
@@ -1,5 +1,5 @@ Name: hsx-jmacro-Version: 7.0.1+Version: 7.1.0 Synopsis: hsx+jmacro support Description: HSX allows for the use of literal XML in Haskell program text. JMacro allows for the use of javascript-syntax for generating javascript in Haskell. This library makes it easy to embed JMacro generated javascript in HSX templates. Homepage: http://www.happstack.com/@@ -19,10 +19,10 @@ HSX.JMacroT Build-depends:- base >4 && <5,- happstack-hsp,- hsx,- jmacro >= 0.5 && < 0.6,- mtl,+ base > 4 && <5,+ happstack-hsp == 7.1.*,+ hsx >= 0.10.2 && <0.11,+ jmacro >= 0.5 && < 0.6,+ mtl >= 2.0 && < 2.2, pretty,- text == 0.11.*+ text == 0.11.*