Safe Haskell | None |
---|---|
Language | Haskell2010 |
- type AttrName = Text
- data Attr a
- data IsEscaped
- data SomeText
- data Markup' a
- data Stream a
- = ListS [s] (s -> FastMarkup a)
- | S !s !(s -> Next s t) !(t -> FastMarkup a)
- unstream :: (FastMarkup a -> b) -> Stream a -> (b -> c -> c) -> c -> c
- data Next s a
- data a :$ b = (:$) (FastMarkup (a -> b)) a
- data FastMarkup a
- data Markup'F a r
- plateFM :: Monad m => (FastMarkup a -> m (FastMarkup a)) -> FastMarkup a -> m (FastMarkup a)
- compileAttrs :: forall a. Vector (Attr a) -> (Builder, Vector (Attr a))
- escapeText :: Text -> Builder
- escape :: SomeText -> Builder
- toText :: Builder -> Text
- fastAttr :: Attr a -> FastMarkup a
- fast :: Markup' a -> FastMarkup a
- immediateRender :: FastMarkup a -> Maybe Builder
- munch :: Vector (FastMarkup a) -> Vector (FastMarkup a)
- data EqHack a = EqHack !Int a
- eqHack :: Traversable f => f a -> f (EqHack a)
- flatten :: FastMarkup a -> FastMarkup a
- strictify :: FastMarkup a -> FastMarkup a
- compile_ :: Markup' a -> FastMarkup a
- recompile :: FastMarkup a -> FastMarkup a
- renderM :: Monad m => (a -> m Builder) -> FastMarkup a -> m Builder
- renderMs :: Monad m => (a -> m (FastMarkup Void)) -> FastMarkup a -> m Builder
- render :: FastMarkup Void -> Builder
- class Render a m where
Documentation
A very simple HTML DSL
ListS [s] (s -> FastMarkup a) | |
S !s !(s -> Next s t) !(t -> FastMarkup a) |
unstream :: (FastMarkup a -> b) -> Stream a -> (b -> c -> c) -> c -> c Source #
(:$) (FastMarkup (a -> b)) a infixl 0 |
data FastMarkup a Source #
Bunch !(Vector (FastMarkup a)) | |
FStream (Stream a) | |
FLText Text | |
FSText !Text | |
FBuilder !Builder | |
FHole !IsEscaped !a | |
FEmpty |
Functor FastMarkup Source # | |
Foldable FastMarkup Source # | |
Traversable FastMarkup Source # | |
Eq a => Eq (FastMarkup a) Source # | |
Show a => Show (FastMarkup a) Source # | |
Generic (FastMarkup a) Source # | |
Monoid (FastMarkup a) Source # | |
NFData a => NFData (FastMarkup a) Source # | |
(Render a m, Monad m) => Render (FastMarkup a) m Source # | |
type Rep (FastMarkup a) Source # | |
plateFM :: Monad m => (FastMarkup a -> m (FastMarkup a)) -> FastMarkup a -> m (FastMarkup a) Source #
escapeText :: Text -> Builder Source #
fastAttr :: Attr a -> FastMarkup a Source #
fast :: Markup' a -> FastMarkup a Source #
immediateRender :: FastMarkup a -> Maybe Builder Source #
Look for an immediate string-like term and render that
munch :: Vector (FastMarkup a) -> Vector (FastMarkup a) Source #
Flatten a vector of 'FastMarkup. String-like terms that are next to eachother should be combined
eqHack :: Traversable f => f a -> f (EqHack a) Source #
Tag everything in a Traversable
with a number
flatten :: FastMarkup a -> FastMarkup a Source #
Recursively flatten FastMarkup
until doing so does nothing
strictify :: FastMarkup a -> FastMarkup a Source #
Run all Text builders
compile_ :: Markup' a -> FastMarkup a Source #
Compile Markup''
recompile :: FastMarkup a -> FastMarkup a Source #
renderM :: Monad m => (a -> m Builder) -> FastMarkup a -> m Builder Source #
Render FastMarkup
renderMs :: Monad m => (a -> m (FastMarkup Void)) -> FastMarkup a -> m Builder Source #
Render FastMarkup
by recursively rendering any sub-markup.
render :: FastMarkup Void -> Builder Source #
Render FastMarkup
that has no holes.