Re: [Haskell-cafe] Adding Html formatting to formlets

2012-02-03 Thread Alberto G. Corona
Hi Jeremy

If  the signature of a formlet or digestive functor is

View *format m a *

with `*m*` a monad,  `*a*` the resulting value  and `*format*` the
formatting (Usually HTML)

then the signatures of the operators for Text.XHtml format are:

*() :: Monad m = (Html - Html) - View Html m a - View Html m a

(++) :: Monad m = Html - View Html m a - View Html m a

(++) :: Monad m = View Html m a - Html - View Html m a

(+) ::  Monad m  = View Html m a- View Html m b - View Html m
(Either a' b')*


My mplementation is tightly integrated with other non  related
functionalities in an app server that I´m developing so a translation to
diggestive functors is not trivial, but I too would love to have this
integrated in digestive functors for the shake of modularity.



2012/2/3 Jeremy Shaw jer...@n-heptane.com:
 Hello,

 Formlets is deprecated in favor of digestive functors. If you have not
looked at the digestive-functors package I highly recommend that you do. It
fixes a lot of little issues that formlets had -- but is basically the same
thing.

 The () operator is a already a standard operator in Control.Category /
Control.Arrow. So, it is probably confusing to reuse that symbol for
something else…

 The digestive functors library defines two new operators (++) and (++)
which are somewhat related to what you are trying to do.

 In HTML, the label tag is supposed to reference the 'id' of the field
is it labeling. For example, you might have:

  label for=usernameUsername: /labelinput text=text id=username
name=username value=

 In formlets, there was no way to do that because the 'ids' are not
accessible to the user. In digestive functors you can use the ++ operator
to 'share' an id between to elements. That allows you to write:

 label Username : ++  inputText Nothing

 Anyway, I would  love to see:

  a) your new combinators renamed and reimplemented for digestive-functors
  b) the type signatures of these new operators

 With out the type signatures it is a bit hard to decipher what your new
operators are actually doing..

 But, I love seeing any new improvements to the
formlets/digestive-functors concept!

 - jeremy



 On Feb 2, 2012, at 6:50 PM, Alberto G. Corona wrote:

 I came across the idea that is easy to define additional operators to
 Text.FormLets for adding custom HTML formatting.
 Had anyone tried that?


 For example to enclose the Prod formulary in a Table using Text.XHtml
 tags. I defined additional operators  and ++ for enclosing and
 prepending
 Html to a formLet, respectively:

 data Prod= Prod{pname :: String, pprice :: Int}

 getProd= table  (
  Prod $ tr  (td  enter the name  ++ td  getString
(pname $ mp))
* tr  (td  enter the price   ++ td  getInt
( pprice $ mp)))


 even:

 p  paragraph ++ getProd   ++ (more Html stuff)

  is possible

 or even it is possible an operator +

 getProd + someOtherStuff

 to return  Either Prod OtherStuff


 I did it in my own version of FormLets. So It is too heavy to put
 here a running example. It is part of a package that I will upload
 soon to hackage.



 This also may work for embedding formLets in other haskell HTML
 formats besides Text.XHtml.

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Adding Html formatting to formlets

2012-02-02 Thread Alberto G. Corona
I came across the idea that is easy to define additional operators to
Text.FormLets for adding custom HTML formatting.
Had anyone tried that?


For example to enclose the Prod formulary in a Table using Text.XHtml
tags. I defined additional operators  and ++ for enclosing and
prepending
Html to a formLet, respectively:

data Prod= Prod{pname :: String, pprice :: Int}

getProd= table  (
      Prod $ tr  (td  enter the name  ++ td  getString (pname $ 
 mp))
               * tr  (td  enter the price   ++ td  getInt ( 
pprice $ mp)))


even:

p  paragraph ++ getProd   ++ (more Html stuff)

  is possible

or even it is possible an operator +

  getProd + someOtherStuff

to return  Either Prod OtherStuff


 I did it in my own version of FormLets. So It is too heavy to put
here a running example. It is part of a package that I will upload
soon to hackage.



This also may work for embedding formLets in other haskell HTML
formats besides Text.XHtml.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Adding Html formatting to formlets

2012-02-02 Thread Jeremy Shaw
Hello,

Formlets is deprecated in favor of digestive functors. If you have not looked 
at the digestive-functors package I highly recommend that you do. It fixes a 
lot of little issues that formlets had -- but is basically the same thing. 

The () operator is a already a standard operator in Control.Category / 
Control.Arrow. So, it is probably confusing to reuse that symbol for something 
else…

The digestive functors library defines two new operators (++) and (++) which 
are somewhat related to what you are trying to do. 

In HTML, the label tag is supposed to reference the 'id' of the field is it 
labeling. For example, you might have:

 label for=usernameUsername: /labelinput text=text id=username 
name=username value=

In formlets, there was no way to do that because the 'ids' are not accessible 
to the user. In digestive functors you can use the ++ operator to 'share' an 
id between to elements. That allows you to write:

label Username : ++  inputText Nothing

Anyway, I would  love to see:

 a) your new combinators renamed and reimplemented for digestive-functors
 b) the type signatures of these new operators

With out the type signatures it is a bit hard to decipher what your new 
operators are actually doing..

But, I love seeing any new improvements to the formlets/digestive-functors 
concept! 

- jeremy



On Feb 2, 2012, at 6:50 PM, Alberto G. Corona wrote:

 I came across the idea that is easy to define additional operators to
 Text.FormLets for adding custom HTML formatting.
 Had anyone tried that?
 
 
 For example to enclose the Prod formulary in a Table using Text.XHtml
 tags. I defined additional operators  and ++ for enclosing and
 prepending
 Html to a formLet, respectively:
 
 data Prod= Prod{pname :: String, pprice :: Int}
 
 getProd= table  (
  Prod $ tr  (td  enter the name  ++ td  getString (pname 
 $ mp))
* tr  (td  enter the price   ++ td  getInt ( 
 pprice $ mp)))
 
 
 even:
 
 p  paragraph ++ getProd   ++ (more Html stuff)
 
  is possible
 
 or even it is possible an operator +
 
 getProd + someOtherStuff
 
 to return  Either Prod OtherStuff
 
 
 I did it in my own version of FormLets. So It is too heavy to put
 here a running example. It is part of a package that I will upload
 soon to hackage.
 
 
 
 This also may work for embedding formLets in other haskell HTML
 formats besides Text.XHtml.
 
 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe