markup-0.0.6: markup.cabal
Name: markup
Version: 0.0.6
Author: Athan Clark <athan.clark@gmail.com>
Maintainer: Athan Clark <athan.clark@gmail.com>
License: MIT
License-File: LICENSE
Synopsis: Abstraction for markup languages
Description:
This library tries to make things more uniformly controlled when working with
markup languages in haskell - namely /deployment/ of markup assets.
.
Deployment, from this library's perspective, means /how/ something can be
rendered to markup, yet still achieve the same "result" to the end user (namely
the DOM).
.
We use monad transformers to infer the deployment mechanism for a context of
markup. The three deployment mechanisms provided include /inline/ (content is
slapped between markup tags), /hosted/ (entirely external - uses raw text as a
url), and /local/ (which uses the <hackage.haskell.org/package/urlpath urlpath>
library to realize what kind of link to create).
.
As an example, here is remotely hosted image:
.
> image = deploy Image "foo.png" :: HostedMarkupM (Html ())
>
> λ> renderMarkup image
>
> <img src="foo.png">
.
Here is the same example, going relative instead:
.
> image :: LocalMarkupM (HtmlT AbsoluteUrl ())
> image = deploy Image $ "foo.png" <?> ("some","getparam")
>
> λ> (runUrlReader $ renderTextT $ renderMarkup image $
> ) "example.com"
>
> "<img src=\"example.com/foo.png?some=getparam\">"
Cabal-Version: >= 1.10
Build-Type: Simple
Library
Default-Language: Haskell2010
HS-Source-Dirs: src
GHC-Options: -Wall
Exposed-Modules: Data.Markup
Data.Markup.Types
Data.Markup.Class
Data.Markup.Library
Build-Depends: base >= 4 && < 5
, transformers
, mtl
, lucid >= 2.5
, blaze-html
, blaze-markup
, text
, urlpath >= 0.2
Test-Suite spec
Type: exitcode-stdio-1.0
Default-Language: Haskell2010
Hs-Source-Dirs: src
, test
Ghc-Options: -Wall
Main-Is: Spec.hs
Build-Depends: base
, hspec
Source-Repository head
Type: git
Location: https://github.com/athanclark/markup.git