Re: [web-devel] [Haskell] ANNOUNCE: haste-perch

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.
It uses Haste.DOM
http://hackage.haskell.org/package/haste-compiler-0.2.99/docs/Haste-DOM.html
Haste.DOM has primitives that invoke Javascript functions in browser like:
For example newElem invoke "createElement" in javascript
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
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.
2014-06-18 18:11 GMT+02:00 Andrew Gibiansky
Could you elaborate on how this is better/different from blaze-html?
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?
Thanks! Andrew
On Wed, Jun 18, 2014 at 7:02 AM, Alberto G. Corona
wrote: Hi,
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.
http://hackage.haskell.org/package/haste-perch
This program, when compiled with haste:
main= do withElem "idelem" $ build $ do div $ do div $ do p "hello" p ! atr "style" "color:red" $ "world"
return ()
Creates these element:
<div id= "idelem"> <-- was already in the HTML <div> <div> <p> hello </p> <p style= "color:red"> world </p> </div> </div> </div>
Since the creation is in the browser, that permit quite dynamic pages for data presentation, and interctive textual (a.k.a "serious") applications and, in general the development of client-side web frameworks using haskell with the haste compiler.
See the README in the git repository:
https://github.com/agocorona/haste-perch
-- Alberto.
_______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
-- Alberto.

The readme in the Git repository tell more details
https://github.com/agocorona/haste-perch/blob/master/README.md
And also this blog post:
http://haskell-web.blogspot.com.es/2014/06/taming-html-dom-with-monads-and-m...
2014-06-18 19:20 GMT+02:00 Alberto G. Corona
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.
It uses Haste.DOM
http://hackage.haskell.org/package/haste-compiler-0.2.99/docs/Haste-DOM.html
Haste.DOM has primitives that invoke Javascript functions in browser like: For example newElem invoke "createElement" in javascript
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
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.
2014-06-18 18:11 GMT+02:00 Andrew Gibiansky
: Could you elaborate on how this is better/different from blaze-html?
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?
Thanks! Andrew
On Wed, Jun 18, 2014 at 7:02 AM, Alberto G. Corona
wrote: Hi,
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.
http://hackage.haskell.org/package/haste-perch
This program, when compiled with haste:
main= do withElem "idelem" $ build $ do div $ do div $ do p "hello" p ! atr "style" "color:red" $ "world"
return ()
Creates these element:
<div id= "idelem"> <-- was already in the HTML <div> <div> <p> hello </p> <p style= "color:red"> world </p> </div> </div> </div>
Since the creation is in the browser, that permit quite dynamic pages for data presentation, and interctive textual (a.k.a "serious") applications and, in general the development of client-side web frameworks using haskell with the haste compiler.
See the README in the git repository:
https://github.com/agocorona/haste-perch
-- Alberto.
_______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
-- Alberto.
-- Alberto.
participants (1)
-
Alberto G. Corona