-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Abstraction for markup languages -- -- 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 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\">"
--
@package markup
@version 1.0.0
module Data.Markup.Types
newtype InlineMarkupT m a
[InlineMarkupT] :: m a -> InlineMarkupT m a
[runInlineMarkupT] :: InlineMarkupT m a -> m a
newtype HostedMarkupT m a
[HostedMarkupT] :: m a -> HostedMarkupT m a
[runHostedMarkupT] :: HostedMarkupT m a -> m a
newtype LocalMarkupT m a
[LocalMarkupT] :: m a -> LocalMarkupT m a
[runLocalMarkupT] :: LocalMarkupT m a -> m a
newtype InlineMarkupM a
[InlineMarkupM] :: a -> InlineMarkupM a
[runInlineMarkupM] :: InlineMarkupM a -> a
newtype HostedMarkupM a
[HostedMarkupM] :: a -> HostedMarkupM a
[runHostedMarkupM] :: HostedMarkupM a -> a
newtype LocalMarkupM a
[LocalMarkupM] :: a -> LocalMarkupM a
[runLocalMarkupM] :: LocalMarkupM a -> a
instance Functor LocalMarkupM
instance Functor HostedMarkupM
instance Functor InlineMarkupM
instance Functor m => Functor (LocalMarkupT m)
instance Functor m => Functor (HostedMarkupT m)
instance Functor m => Functor (InlineMarkupT m)
instance Monoid (m a) => Monoid (InlineMarkupT m a)
instance Applicative f => Applicative (InlineMarkupT f)
instance Monad m => Monad (InlineMarkupT m)
instance Monoid (m a) => Monoid (HostedMarkupT m a)
instance Applicative f => Applicative (HostedMarkupT f)
instance Monad m => Monad (HostedMarkupT m)
instance Monoid (m a) => Monoid (LocalMarkupT m a)
instance Applicative f => Applicative (LocalMarkupT f)
instance Monad m => Monad (LocalMarkupT m)
instance Monoid a => Monoid (InlineMarkupM a)
instance Monoid a => Monoid (HostedMarkupM a)
instance Monoid a => Monoid (LocalMarkupM a)
instance (Comonad m, Monad m) => Comonad (InlineMarkupT m)
instance MonadTrans InlineMarkupT
instance (Comonad m, Monad m) => Comonad (HostedMarkupT m)
instance MonadTrans HostedMarkupT
instance (Comonad m, Monad m) => Comonad (LocalMarkupT m)
instance MonadTrans LocalMarkupT
instance Applicative InlineMarkupM
instance Monad InlineMarkupM
instance Comonad InlineMarkupM
instance Applicative HostedMarkupM
instance Monad HostedMarkupM
instance Comonad HostedMarkupM
instance Applicative LocalMarkupM
instance Monad LocalMarkupM
instance Comonad LocalMarkupM
module Data.Markup.Class
-- | Overload assets and their markup library, over some deployment
class Deploy symbol input markup (m :: * -> *)
deploy :: Deploy symbol input markup m => symbol -> input -> m markup
-- | Overload extraction of (co)monad
class Markup (m :: * -> *)
renderMarkup :: Markup m => m a -> a
toMarkup :: Markup m => a -> m a
instance (Monad m, Comonad m) => Markup m
module Data.Markup.Library
-- | The Image symbol
data Image
[Image] :: Image
-- | The JavaScript symbol
data JavaScript
[JavaScript] :: JavaScript
-- | The Css symbol
data Css
[Css] :: Css
instance Eq Css
instance Show Css
instance Eq JavaScript
instance Show JavaScript
instance Eq Image
instance Show Image
instance Monad m => Deploy Image Text (HtmlT m ()) HostedMarkupM
instance (Monad m, Url Text m) => Deploy Image Text (HtmlT m ()) LocalMarkupM
instance Url Text m => Deploy Image (UrlString Text) (HtmlT m ()) LocalMarkupM
instance (Monad m, Monad m') => Deploy Image Text (HtmlT m ()) (HostedMarkupT m')
instance (Monad m, Monad m', Url Text m) => Deploy Image Text (HtmlT m ()) (LocalMarkupT m')
instance (Url Text m, Monad m') => Deploy Image (UrlString Text) (HtmlT m ()) (LocalMarkupT m')
instance Monad m => Deploy JavaScript Text (HtmlT m ()) InlineMarkupM
instance Monad m => Deploy JavaScript Text (HtmlT m ()) InlineMarkupM
instance Monad m => Deploy JavaScript Text (HtmlT m ()) HostedMarkupM
instance Url Text m => Deploy JavaScript (UrlString Text) (HtmlT m ()) LocalMarkupM
instance Url Text m => Deploy JavaScript Text (HtmlT m ()) LocalMarkupM
instance (Monad m, Monad m') => Deploy JavaScript Text (HtmlT m ()) (InlineMarkupT m')
instance (Monad m, Monad m') => Deploy JavaScript Text (HtmlT m ()) (InlineMarkupT m')
instance (Monad m, Monad m') => Deploy JavaScript Text (HtmlT m ()) (HostedMarkupT m')
instance (Url Text m, Monad m') => Deploy JavaScript Text (HtmlT m ()) (LocalMarkupT m')
instance (Url Text m, Monad m') => Deploy JavaScript (UrlString Text) (HtmlT m ()) (LocalMarkupT m')
instance Monad m => Deploy Css Text (HtmlT m ()) InlineMarkupM
instance Monad m => Deploy Css Text (HtmlT m ()) InlineMarkupM
instance Monad m => Deploy Css Text (HtmlT m ()) HostedMarkupM
instance Url Text m => Deploy Css Text (HtmlT m ()) LocalMarkupM
instance Url Text m => Deploy Css (UrlString Text) (HtmlT m ()) LocalMarkupM
instance (Monad m, Monad m') => Deploy Css Text (HtmlT m ()) (InlineMarkupT m')
instance (Monad m, Monad m') => Deploy Css Text (HtmlT m ()) (InlineMarkupT m')
instance (Monad m, Monad m') => Deploy Css Text (HtmlT m ()) (HostedMarkupT m')
instance (Url Text m, Monad m') => Deploy Css Text (HtmlT m ()) (LocalMarkupT m')
instance (Url Text m, Monad m') => Deploy Css (UrlString Text) (HtmlT m ()) (LocalMarkupT m')
instance ToValue input => Deploy Image input (MarkupM ()) HostedMarkupM
instance Url Text MarkupM => Deploy Image Text (MarkupM ()) LocalMarkupM
instance Url Text MarkupM => Deploy Image (UrlString Text) (MarkupM ()) LocalMarkupM
instance (ToValue input, Monad m) => Deploy Image input (MarkupM ()) (HostedMarkupT m)
instance (Url Text MarkupM, Monad m) => Deploy Image Text (MarkupM ()) (LocalMarkupT m)
instance (Url Text MarkupM, Monad m) => Deploy Image (UrlString Text) (MarkupM ()) (LocalMarkupT m)
instance ToMarkup input => Deploy JavaScript input (MarkupM ()) InlineMarkupM
instance ToValue input => Deploy JavaScript input (MarkupM ()) HostedMarkupM
instance Url Text MarkupM => Deploy JavaScript Text (MarkupM ()) LocalMarkupM
instance Url Text MarkupM => Deploy JavaScript (UrlString Text) (MarkupM ()) LocalMarkupM
instance (ToMarkup input, Monad m) => Deploy JavaScript input (MarkupM ()) (InlineMarkupT m)
instance (ToValue input, Monad m) => Deploy JavaScript input (MarkupM ()) (HostedMarkupT m)
instance (Url Text MarkupM, Monad m) => Deploy JavaScript Text (MarkupM ()) (LocalMarkupT m)
instance (Url Text MarkupM, Monad m) => Deploy JavaScript (UrlString Text) (MarkupM ()) (LocalMarkupT m)
instance ToMarkup input => Deploy Css input (MarkupM ()) InlineMarkupM
instance ToValue input => Deploy Css input (MarkupM ()) HostedMarkupM
instance Url Text MarkupM => Deploy Css Text (MarkupM ()) LocalMarkupM
instance Url Text MarkupM => Deploy Css (UrlString Text) (MarkupM ()) LocalMarkupM
instance (ToMarkup input, Monad m) => Deploy Css input (MarkupM ()) (InlineMarkupT m)
instance (ToValue input, Monad m) => Deploy Css input (MarkupM ()) (HostedMarkupT m)
instance (Url Text MarkupM, Monad m) => Deploy Css Text (MarkupM ()) (LocalMarkupT m)
instance (Url Text MarkupM, Monad m) => Deploy Css (UrlString Text) (MarkupM ()) (LocalMarkupT m)
module Data.Markup