| Safe Haskell | Safe | 
|---|---|
| Language | Haskell2010 | 
Data.Text.Prettyprint.Doc.Render.Tutorials.TreeRenderingTutorial
Description
This module shows how to write a custom prettyprinter backend, based on a
 tree representation of a SimpleDocStream.  For a stack machine approach, which
 may be more suitable for certain output formats, see
 Data.Text.Prettyprint.Doc.Render.Tutorials.StackMachineTutorial.
Rendering to HTML, particularly using libraries such as blaze-html or lucid, is one important use case of tree-based rendering.
The module is written to be readable top-to-bottom in both Haddock and raw source form.
Synopsis
- data Color
 - data SimpleHtml
 - bold :: Doc SimpleHtml -> Doc SimpleHtml
 - italics :: Doc SimpleHtml -> Doc SimpleHtml
 - paragraph :: Doc SimpleHtml -> Doc SimpleHtml
 - headline :: Doc SimpleHtml -> Doc SimpleHtml
 - color :: Color -> Doc SimpleHtml -> Doc SimpleHtml
 - render :: SimpleDocStream SimpleHtml -> Text
 - renderTree :: SimpleDocTree SimpleHtml -> Builder
 - encloseInTagFor :: SimpleHtml -> Builder -> Builder
 
Documentation
bold :: Doc SimpleHtml -> Doc SimpleHtml Source #
italics :: Doc SimpleHtml -> Doc SimpleHtml Source #
paragraph :: Doc SimpleHtml -> Doc SimpleHtml Source #
headline :: Doc SimpleHtml -> Doc SimpleHtml Source #
color :: Color -> Doc SimpleHtml -> Doc SimpleHtml Source #
render :: SimpleDocStream SimpleHtml -> Text Source #
To render the HTML, we first convert the SimpleDocStream to the
 SimpleDocTree format, which makes enveloping sub-documents in markup
 easier.
This function is the entry main API function of the renderer; as such, it is
 only glue for the internal functions. This is similar to
 render from
 the stack machine tutorial in its purpose.
renderTree :: SimpleDocTree SimpleHtml -> Builder Source #
Render a SimpleDocTree to a Builder; this is the workhorse of the
 tree-based rendering approach, and equivalent to
 renderStackMachine
 in the stack machine rendering tutorial.
encloseInTagFor :: SimpleHtml -> Builder -> Builder Source #
Convert a SimpleHtml to a function that encloses a Builder in HTML
 tags. This is where the translation of style to raw output happens.