<div dir="ltr">The readme in the Git repository tell more details<div><br></div><div><a href="https://github.com/agocorona/haste-perch/blob/master/README.md">https://github.com/agocorona/haste-perch/blob/master/README.md</a><br>

</div><div><br></div><div>And also this blog post:</div><div><br></div><div><a href="http://haskell-web.blogspot.com.es/2014/06/taming-html-dom-with-monads-and-monoids.html">http://haskell-web.blogspot.com.es/2014/06/taming-html-dom-with-monads-and-monoids.html</a><br>

</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-18 19:20 GMT+02:00 Alberto G. Corona <span dir="ltr"><<a href="mailto:agocorona@gmail.com" target="_blank">agocorona@gmail.com</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The syntax is similar to blaze-html, but haste-perch  uses the HTM-DOM in the browser to create DOM elements. blaze-html creates a html bytestring in the server that the browser must load.<div>

<br></div><div>
It uses Haste.DOM</div><div><br></div><div><a href="http://hackage.haskell.org/package/haste-compiler-0.2.99/docs/Haste-DOM.html" target="_blank">http://hackage.haskell.org/package/haste-compiler-0.2.99/docs/Haste-DOM.html</a><br>



</div><div><br></div><div>Haste.DOM has primitives that invoke Javascript functions in browser like: For example newElem invoke  "createElement" in javascript </div><div><br></div><div>Perch assemble a sequence of DOM calls that create the HTML tree directly in the browser. so you can create an application that run fully in the browser </div>


<div><br></div><div>The tree can change depeding on different actions done by the user by changing the HTML tree dynamically. It is possible to create dynamic applications. </div><div><br></div><div><br></div></div><div class="gmail_extra">


<br><br><div class="gmail_quote">2014-06-18 18:11 GMT+02:00 Andrew Gibiansky <span dir="ltr"><<a href="mailto:andrew.gibiansky@gmail.com" target="_blank">andrew.gibiansky@gmail.com</a>></span>:<div><div class="h5">

<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Could you elaborate on how this is better/different from blaze-html?<br><br>I'm a bit confused - is it just the same thing but works with Haste, while blaze-html doesn't? What's the main idea?<br>




<br>Thanks!<br>Andrew<br></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Wed, Jun 18, 2014 at 7:02 AM, Alberto G. Corona <span dir="ltr"><<a href="mailto:agocorona@gmail.com" target="_blank">agocorona@gmail.com</a>></span> wrote:<br>




</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Hi,<br><br>haste-perch defines builder elements (perchs) for Haste.DOM elements that are appendable, so that dynamic HTML can be created in the client in a natural way, like textual HTML, but programmatically and with the advantage of static type checking. It can be ported to other haskell-js compilers.<br>






<br><a href="http://hackage.haskell.org/package/haste-perch" target="_blank">http://hackage.haskell.org/package/haste-perch</a><br><br>This program, when compiled with haste:<br><br>  main= do<br>   withElem "idelem" $   build $ do<br>






   div $ do<br>     div $ do<br>           p "hello"<br>           p ! atr "style" "color:red" $   "world" <br><br>   return ()<br><br>Creates these element:<br><br>   <div id= "idelem">  <-- was already in the HTML<br>






       <div><br>         <div><br>            <p> hello </p><br>            <p style= "color:red"> world </p><br>         </div><br>       </div><br>   </div><br>






<br><div>Since the creation is in the browser, that permit quite dynamic pages for data</div><div>presentation, and interctive textual (a.k.a "serious") applications and, in general</div><div>the development of client-side web frameworks using haskell with the haste compiler.</div>






<div> </div><br>See the README in the git repository:<br><br><a href="https://github.com/agocorona/haste-perch" target="_blank">https://github.com/agocorona/haste-perch</a><br><br>--<br>Alberto.<br></div>
<br></div></div>_______________________________________________<br>
Haskell mailing list<br>
<a href="mailto:Haskell@haskell.org" target="_blank">Haskell@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell" target="_blank">http://www.haskell.org/mailman/listinfo/haskell</a><br>
<br></blockquote></div><br></div>
</blockquote></div></div></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br>Alberto.
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Alberto.
</div>