Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Markup p a
- text :: Text -> Markup t ()
- lazyText :: Text -> Markup n ()
- builder :: Builder -> Markup n ()
- string :: String -> Markup n ()
- doctype_ :: Markup p ()
- textRaw :: Text -> Markup t ()
- lazyTextRaw :: Text -> Markup n ()
- builderRaw :: Builder -> Markup n ()
- stringRaw :: String -> Markup n ()
- (!) :: (Markup t a -> Markup t b) -> [Attr t] -> Markup t a -> Markup t b
- dynamic :: p -> Markup p ()
- dynamicRaw :: p -> Markup p ()
- sub :: Markup n a -> Markup (FastMarkup n) a
- stream :: Foldable f => Markup (a -> n) r -> Markup (f a -> FastMarkup n) r
- data Note a = Note {
- noteId :: !Int
- noted :: FastMarkup a
- note :: (Markup t a -> Markup t b) -> Markup t a -> Markup t (Note t, b)
- compile :: Markup t a -> FastMarkup t
- runMarkup :: Markup t a -> (a, FastMarkup t)
- makeElement :: Text -> Markup p a -> Markup p a
- makeVoidElement :: Text -> Markup p ()
The markup monad
A Writer-like monad
Basic node types
Variants that don't escape their input
lazyTextRaw :: Text -> Markup n () Source #
Insert text and don't escape it
builderRaw :: Builder -> Markup n () Source #
Insert text and don't escape it
Combinators
(!) :: (Markup t a -> Markup t b) -> [Attr t] -> Markup t a -> Markup t b infixl 8 Source #
Add some attributes
dynamicRaw :: p -> Markup p () Source #
Streaming
Noting specific elements
Note | |
|
note :: (Markup t a -> Markup t b) -> Markup t a -> Markup t (Note t, b) Source #
Give a node a unique id
Might be handy to build server-side react-esque systems
Compilation
runMarkup :: Markup t a -> (a, FastMarkup t) Source #
Internals
makeVoidElement :: Text -> Markup p () Source #