-- 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 0.0.5 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 Monoid a => Monoid (LocalMarkupM a) instance Monoid a => Monoid (HostedMarkupM a) instance Monoid a => Monoid (InlineMarkupM a) instance Monad m => Monad (LocalMarkupT m) instance Applicative f => Applicative (LocalMarkupT f) instance Monoid (m a) => Monoid (LocalMarkupT m a) instance Monad m => Monad (HostedMarkupT m) instance Applicative f => Applicative (HostedMarkupT f) instance Monoid (m a) => Monoid (HostedMarkupT m a) instance Monad m => Monad (InlineMarkupT m) instance Applicative f => Applicative (InlineMarkupT f) instance Monoid (m a) => Monoid (InlineMarkupT m a) instance Functor m => Functor (InlineMarkupT m) instance Functor m => Functor (HostedMarkupT m) instance Functor m => Functor (LocalMarkupT m) instance Functor InlineMarkupM instance Functor HostedMarkupM instance Functor LocalMarkupM instance Monad w => Monoid (LocalMarkupM (w a)) instance Monad LocalMarkupM instance Applicative LocalMarkupM instance Monad w => Monoid (HostedMarkupM (w a)) instance Monad HostedMarkupM instance Applicative HostedMarkupM instance Monad w => Monoid (InlineMarkupM (w a)) instance Monad InlineMarkupM instance Applicative InlineMarkupM instance MonadTrans LocalMarkupT instance MonadTrans HostedMarkupT instance MonadTrans InlineMarkupT 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 Monad m => Markup (m :: * -> *) renderMarkup :: Markup m => m a -> a toMarkup :: Markup m => a -> m a instance Markup LocalMarkupM instance Markup HostedMarkupM instance Markup InlineMarkupM module Data.Markup.Library -- | Abstract data type of an "image" asset. data Image Image :: Image -- | Abstract data type of javascript. data JavaScript JavaScript :: JavaScript instance Show Image instance Eq Image instance Show JavaScript instance Eq JavaScript instance (Url Text MarkupM, Monad m) => Deploy JavaScript (UrlString Text) (MarkupM ()) (LocalMarkupT m) instance (Url Text MarkupM, Monad m) => Deploy JavaScript Text (MarkupM ()) (LocalMarkupT m) instance (ToValue input, Monad m) => Deploy JavaScript input (MarkupM ()) (HostedMarkupT m) instance (ToMarkup input, Monad m) => Deploy JavaScript input (MarkupM ()) (InlineMarkupT m) instance Url Text MarkupM => Deploy JavaScript (UrlString Text) (MarkupM ()) LocalMarkupM instance Url Text MarkupM => Deploy JavaScript Text (MarkupM ()) LocalMarkupM instance ToValue input => Deploy JavaScript input (MarkupM ()) HostedMarkupM instance ToMarkup input => Deploy JavaScript input (MarkupM ()) InlineMarkupM instance (Url Text MarkupM, Monad m) => Deploy Image (UrlString Text) (MarkupM ()) (LocalMarkupT m) instance (Url Text MarkupM, Monad m) => Deploy Image Text (MarkupM ()) (LocalMarkupT m) instance (ToValue input, Monad m) => Deploy Image input (MarkupM ()) (HostedMarkupT m) instance Url Text MarkupM => Deploy Image (UrlString Text) (MarkupM ()) LocalMarkupM instance Url Text MarkupM => Deploy Image Text (MarkupM ()) LocalMarkupM instance ToValue input => Deploy Image input (MarkupM ()) HostedMarkupM instance (Url Text m, Monad m') => Deploy JavaScript (UrlString Text) (HtmlT m ()) (LocalMarkupT m') instance (Monad m, Monad m') => Deploy JavaScript Text (HtmlT m ()) (HostedMarkupT m') 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 Url Text m => Deploy JavaScript (UrlString Text) (HtmlT m ()) LocalMarkupM instance Monad m => Deploy JavaScript Text (HtmlT m ()) HostedMarkupM instance Monad m => Deploy JavaScript Text (HtmlT m ()) InlineMarkupM instance Monad m => Deploy JavaScript Text (HtmlT m ()) InlineMarkupM instance (Url Text m, Monad m') => Deploy Image (UrlString Text) (HtmlT m ()) (LocalMarkupT m') instance (Monad m, Monad m') => Deploy Image Text (HtmlT m ()) (LocalMarkupT m') instance (Monad m, Monad m') => Deploy Image Text (HtmlT m ()) (HostedMarkupT m') instance Url Text m => Deploy Image (UrlString Text) (HtmlT m ()) LocalMarkupM instance Monad m => Deploy Image Text (HtmlT m ()) LocalMarkupM instance Monad m => Deploy Image Text (HtmlT m ()) HostedMarkupM module Data.Markup