The regular-web package
This package implements generic functions for web programming. Based on the regular library [1], we provide generic functions for generating HTML, Formlets, and JSON. For a larger example, see the Example.lhs [2] file on github.
1. http://hackage.haskell.org/package/regular
2. http://github.com/chriseidhof/regular-web/blob/master/Example.lhs
Example
Consider the following datatypes:
data Person = Person
_name :: String
, _age :: Int
, _isMale :: Bool
, _place :: Place
data Place = Place
_city :: String
, _country :: String
, _continent :: String
We can now derive a Regular instance for the Person datatype using Template Haskell:
$(deriveAll ''Place "PFPlace") $(deriveAll ''Person "PFPerson")
type instance PF Place = PFPlace type instance PF Person = PFPerson
We can construct an example person:
location :: Place location = Place "Utrecht" "The Netherlands" "Europe" chris :: Person chris = Person "chris" 25 True location
And, as an example, we can generate |HTML| and |JSON| values:
locationHtml :: X.Html locationHtml = ghtml location
personHtml :: X.Html personHtml = ghtml chris
locationJSON :: JSValue locationJSON = gto location
Properties
| Versions | 0.1, 0.1.1 |
|---|---|
| Dependencies | applicative-extras, base (4.*), fclabels (≥0.4.2), formlets (0.6.1), json (≥0.4.3), mtl, regular (≥0.1.0.2), xhtml |
| License | BSD3 |
| Copyright | (c) Chris Eidhof |
| Author | Chris Eidhof |
| Maintainer | Chris Eidhof <chris+hackage@eidhof.nl> |
| Category | Generics, Web |
| Home page | http://github.com/chriseidhof/basil |
| Upload date | Sat Mar 20 16:09:42 UTC 2010 |
| Uploaded by | ChrisEidhof |
| Built on | ghc-6.12 |
Modules
Downloads
- regular-web-0.1.tar.gz (Cabal source package)
- package description (included in the package)