Re: [Haskell-cafe] Adding Html formatting to formlets
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
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
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