markup 0.0.3 → 0.0.4
raw patch · 4 files changed
+62/−47 lines, 4 filesdep ~urlpath
Dependency ranges changed: urlpath
Files
- markup.cabal +2/−2
- src/Data/Markup/Class.hs +5/−3
- src/Data/Markup/Library.hs +55/−30
- src/Data/Markup/Types.hs +0/−12
markup.cabal view
@@ -1,5 +1,5 @@ Name: markup-Version: 0.0.3+Version: 0.0.4 Author: Athan Clark <athan.clark@gmail.com> Maintainer: Athan Clark <athan.clark@gmail.com> License: MIT@@ -55,7 +55,7 @@ , blaze-html , blaze-markup , text- , urlpath >= 0.0.6+ , urlpath >= 0.2 Test-Suite spec Type: exitcode-stdio-1.0
src/Data/Markup/Class.hs view
@@ -19,17 +19,19 @@ class Deploy symbol input markup (m :: * -> *) where deploy :: symbol -> input -> m markup --- | Overload extraction of monad+-- | Overload extraction of (co)monad class Monad m => Markup (m :: * -> *) where renderMarkup :: m a -> a-+ toMarkup :: a -> m a instance Markup InlineMarkupM where renderMarkup = runInlineMarkupM+ toMarkup = InlineMarkupM instance Markup HostedMarkupM where renderMarkup = runHostedMarkupM+ toMarkup = HostedMarkupM instance Markup LocalMarkupM where renderMarkup = runLocalMarkupM-+ toMarkup = LocalMarkupM
src/Data/Markup/Library.hs view
@@ -46,10 +46,10 @@ deploy Image i = return $ L.img_ [L.src_ i] -instance Url input m =>- Deploy Image input (LBase.HtmlT m ()) LocalMarkupM where+instance Url T.Text m =>+ Deploy Image (UrlString T.Text) (LBase.HtmlT m ()) LocalMarkupM where deploy Image i = return $ do- url <- lift $ renderUrl i+ url <- lift $ url i L.img_ [L.src_ url] instance ( Monad m@@ -64,14 +64,13 @@ deploy Image i = return $ L.img_ [L.src_ i] -instance ( Url input m+instance ( Url T.Text m , Monad m' ) =>- Deploy Image input (LBase.HtmlT m ()) (LocalMarkupT m') where+ Deploy Image (UrlString T.Text) (LBase.HtmlT m ()) (LocalMarkupT m') where deploy Image i = return $ do- url <- lift $ renderUrl i+ url <- lift $ url i L.img_ [L.src_ url] - -- JS instances instance Monad m =>@@ -89,10 +88,10 @@ deploy JavaScript i = return $ L.script_ [L.src_ i] ("" :: T.Text) -instance Url input m =>- Deploy JavaScript input (LBase.HtmlT m ()) LocalMarkupM where+instance Url T.Text m =>+ Deploy JavaScript (UrlString T.Text) (LBase.HtmlT m ()) LocalMarkupM where deploy JavaScript i = return $ do- url <- lift $ renderUrl i+ url <- lift $ url i L.script_ [L.src_ url] ("" :: T.Text) instance ( Monad m@@ -113,12 +112,12 @@ deploy JavaScript i = return $ L.script_ [L.src_ i] ("" :: T.Text) -instance ( Url input m+instance ( Url T.Text m , Monad m' ) =>- Deploy JavaScript input (LBase.HtmlT m ()) (LocalMarkupT m') where+ Deploy JavaScript (UrlString T.Text) (LBase.HtmlT m ()) (LocalMarkupT m') where deploy JavaScript i = return $ do- url <- lift $ renderUrl i- L.script_ [L.src_ url] ("" :: T.Text)+ link <- lift $ url i+ L.script_ [L.src_ link] ("" :: T.Text) -- Blaze-html instances@@ -129,27 +128,40 @@ deploy Image i = return $ H.img H.! A.src (H.toValue i) -instance Url input HI.MarkupM =>- Deploy Image input (HI.MarkupM ()) LocalMarkupM where+instance Url T.Text HI.MarkupM =>+ Deploy Image T.Text (HI.MarkupM ()) LocalMarkupM where deploy Image i = return $ do- url <- renderUrl i- H.img H.! A.src (H.toValue url)+ link <- plainUrl i+ H.img H.! A.src (H.toValue link) +instance Url T.Text HI.MarkupM =>+ Deploy Image (UrlString T.Text) (HI.MarkupM ()) LocalMarkupM where+ deploy Image i = return $ do+ link <- url i+ H.img H.! A.src (H.toValue link)+ instance ( H.ToValue input , Monad m ) => Deploy Image input (HI.MarkupM ()) (HostedMarkupT m) where deploy Image i = return $ H.img H.! A.src (H.toValue i) -instance ( Url input HI.MarkupM+instance ( Url T.Text HI.MarkupM , Monad m ) =>- Deploy Image input (HI.MarkupM ()) (LocalMarkupT m) where+ Deploy Image T.Text (HI.MarkupM ()) (LocalMarkupT m) where deploy Image i = return $ do- url <- renderUrl i- H.img H.! A.src (H.toValue url)+ link <- plainUrl i+ H.img H.! A.src (H.toValue link) +instance ( Url T.Text HI.MarkupM+ , Monad m ) =>+ Deploy Image (UrlString T.Text) (HI.MarkupM ()) (LocalMarkupT m) where+ deploy Image i = return $ do+ link <- url i+ H.img H.! A.src (H.toValue link) + instance H.ToMarkup input => Deploy JavaScript input (HI.MarkupM ()) InlineMarkupM where deploy JavaScript i = return $@@ -160,12 +172,18 @@ deploy JavaScript i = return $ (H.script H.! A.src (H.toValue i)) HI.Empty -instance Url input HI.MarkupM =>- Deploy JavaScript input (HI.MarkupM ()) LocalMarkupM where+instance Url T.Text HI.MarkupM =>+ Deploy JavaScript T.Text (HI.MarkupM ()) LocalMarkupM where deploy JavaScript i = return $ do- url <- renderUrl i- (H.script H.! A.src (H.toValue url)) HI.Empty+ link <- plainUrl i+ (H.script H.! A.src (H.toValue link)) HI.Empty +instance Url T.Text HI.MarkupM =>+ Deploy JavaScript (UrlString T.Text) (HI.MarkupM ()) LocalMarkupM where+ deploy JavaScript i = return $ do+ link <- url i+ (H.script H.! A.src (H.toValue link)) HI.Empty+ instance ( H.ToMarkup input , Monad m ) => Deploy JavaScript input (HI.MarkupM ()) (InlineMarkupT m) where@@ -178,9 +196,16 @@ deploy JavaScript i = return $ (H.script H.! A.src (H.toValue i)) HI.Empty -instance ( Url input HI.MarkupM+instance ( Url T.Text HI.MarkupM , Monad m ) =>- Deploy JavaScript input (HI.MarkupM ()) (LocalMarkupT m) where+ Deploy JavaScript T.Text (HI.MarkupM ()) (LocalMarkupT m) where deploy JavaScript i = return $ do- url <- renderUrl i- (H.script H.! A.src (H.toValue url)) HI.Empty+ link <- plainUrl i+ (H.script H.! A.src (H.toValue link)) HI.Empty++instance ( Url T.Text HI.MarkupM+ , Monad m ) =>+ Deploy JavaScript (UrlString T.Text) (HI.MarkupM ()) (LocalMarkupT m) where+ deploy JavaScript i = return $ do+ link <- url i+ (H.script H.! A.src (H.toValue link)) HI.Empty
src/Data/Markup/Types.hs view
@@ -71,10 +71,6 @@ return = InlineMarkupM x >>= f = f $ runInlineMarkupM x -instance Monoid w => Monoid (InlineMarkupM w) where- x `mappend` y = InlineMarkupM $- (runInlineMarkupM x) `mappend` (runInlineMarkupM y)- instance Monad w => Monoid (InlineMarkupM (w a)) where x `mappend` y = InlineMarkupM $ do (runInlineMarkupM x)@@ -92,10 +88,6 @@ return = HostedMarkupM x >>= f = f $ runHostedMarkupM x -instance Monoid w => Monoid (HostedMarkupM w) where- x `mappend` y = HostedMarkupM $- (runHostedMarkupM x) `mappend` (runHostedMarkupM y)- instance Monad w => Monoid (HostedMarkupM (w a)) where x `mappend` y = HostedMarkupM $ do (runHostedMarkupM x)@@ -112,10 +104,6 @@ instance Monad LocalMarkupM where return = LocalMarkupM x >>= f = f $ runLocalMarkupM x--instance Monoid w => Monoid (LocalMarkupM w) where- x `mappend` y = LocalMarkupM $- (runLocalMarkupM x) `mappend` (runLocalMarkupM y) instance Monad w => Monoid (LocalMarkupM (w a)) where x `mappend` y = LocalMarkupM $ do