[{"name":"MarkdownBuilder","comment":" This library helps your library or application to generate valid markdown document programmatically.\n\n\n# Builder\n\n@docs Builder\n@docs break\n\n\n# Root\n\n@docs Root\n@docs root\n@docs run\n\n\n# Section\n\n@docs Section\n@docs editBody\n@docs appendChildSection\n\n\n# List Block\n\n@docs ListBlock, ListItem\n@docs appendListItem\n\n\n# General Modifiers\n\n\n## Append Mode\n\n@docs AppendMode\n@docs endAppendMode\n@docs appendParagraph\n@docs appendQuoteBlock\n@docs QuoteBlock\n@docs appendOrderedList\n@docs appendUnorderedList\n@docs appendCodeBlock\n@docs appendBlocks\n\n","unions":[{"name":"AppendMode","comment":" Represents that `a` is in the _Append Mode_, which enalbes you to append some blocks to it.\n","args":["a"],"cases":[]},{"name":"Builder","comment":" Markdown builder.\nYou can build a valid markdown structure programmatically in your program:\n\n    import MarkdownAst as Ast\n\n    myMarkdown : Ast.Section\n    myMarkdown =\n        root\n            { title = \"Markdown Builder\"\n            }\n            |> editBody\n            |> appendParagraph\n                [ Ast.PlainText \"Markdown Builder builds \"\n                , Ast.Emphasis \"Markdown\"\n                , Ast.PlainText \" programmatically.\"\n                ]\n            |> endAppendMode\n            |> appendChildSection\n                { title = \"Builder\"\n                }\n            |> editBody\n            |> appendUnorderedList\n            |> appendListItem\n                [ Ast.PlainText \"List Item 1\"\n                ]\n            |> appendOrderedList\n            |> appendListItem\n                [ Ast.PlainText \"Child item\"\n                ]\n            |> break\n            |> break\n            |> break\n            |> appendListItem\n                [ Ast.PlainText \"List Item 2\"\n                ]\n            |> appendParagraph\n                [ Ast.PlainText \"Child paragraph.\"\n                ]\n            |> appendCodeBlock\n                \"\"\"elm\n                type Builder parent elem =\n                    ...\n                    ...\n                \"\"\"\n            |> break\n            |> appendListItem\n                [ Ast.PlainText \"List Item 3\"\n                ]\n            |> run\n\n    Ast.render myMarkdown\n        |> String.lines\n    --> [ \"# Markdown Builder\"\n    --> , \"\"\n    --> , \"Markdown Builder builds *Markdown* programmatically.\"\n    --> , \"\"\n    --> , \"## Builder\"\n    --> , \"\"\n    --> , \"* List Item 1\"\n    --> , \"    1. Child item\"\n    --> , \"* List Item 2\"\n    --> , \"\"\n    --> , \"    Child paragraph.\"\n    --> , \"\"\n    --> , \"    ```elm\"\n    --> , \"    type Builder parent elem =\"\n    --> , \"        ...\"\n    --> , \"        ...\"\n    --> , \"    ```\"\n    --> , \"* List Item 3\"\n    --> ]\n\n","args":["parent","elem"],"cases":[]},{"name":"ListBlock","comment":" Builder for a list block.\n","args":[],"cases":[]},{"name":"ListItem","comment":" Builder for items in a list block.\n","args":[],"cases":[]},{"name":"QuoteBlock","comment":" ","args":[],"cases":[]},{"name":"Root","comment":" Represents markdown root.\n","args":[],"cases":[]},{"name":"Section","comment":" Builder for section.\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"appendBlocks","comment":" Lower level API to append `BlockElement`.\n","type":"List.List MarkdownAst.BlockElement -> MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a) -> MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a)"},{"name":"appendChildSection","comment":" Append new child section to the current section, and change focus to the new one.\n","type":"{ title : String.String } -> MarkdownBuilder.Builder p MarkdownBuilder.Section -> MarkdownBuilder.Builder (MarkdownBuilder.Builder p MarkdownBuilder.Section) MarkdownBuilder.Section"},{"name":"appendCodeBlock","comment":" Append a code block.\n\nElm code:\n\n    appendCodeBlock\n        \"\"\"elm\n        appendCodeBlock\n            = Debug.todo \"\"\n        \"\"\"\n\nGenerated markdown:\n\n    ```elm\n    appendCodeBlock\n        = Debug.todo \"\"\n    ```\n\n","type":"String.String -> MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a) -> MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a)"},{"name":"appendListItem","comment":" Append a list item, and change focus to it.\n","type":"List.List MarkdownAst.InlineElement -> MarkdownBuilder.Builder p MarkdownBuilder.ListBlock -> MarkdownBuilder.Builder (MarkdownBuilder.Builder p MarkdownBuilder.ListBlock) (MarkdownBuilder.AppendMode MarkdownBuilder.ListItem)"},{"name":"appendOrderedList","comment":" Append an ordered list block, and change focus to it.\n","type":"MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a) -> MarkdownBuilder.Builder (MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a)) MarkdownBuilder.ListBlock"},{"name":"appendParagraph","comment":" Append a paragraph block.\n","type":"List.List MarkdownAst.InlineElement -> MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a) -> MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a)"},{"name":"appendQuoteBlock","comment":" Append a quote block, and focus it.\n","type":"MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a) -> MarkdownBuilder.Builder (MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a)) (MarkdownBuilder.AppendMode MarkdownBuilder.QuoteBlock)"},{"name":"appendUnorderedList","comment":" Append an unordered list block, and change focus to it.\n","type":"MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a) -> MarkdownBuilder.Builder (MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a)) MarkdownBuilder.ListBlock"},{"name":"break","comment":" Quit editing current child, and return to edit its parent.\n","type":"MarkdownBuilder.Builder (MarkdownBuilder.Builder parent child) a -> MarkdownBuilder.Builder parent child"},{"name":"editBody","comment":" Start [Append Mode](#append-mode) for editing section body.\n","type":"MarkdownBuilder.Builder parent MarkdownBuilder.Section -> MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode MarkdownBuilder.Section)"},{"name":"endAppendMode","comment":" End append mode.\n","type":"MarkdownBuilder.Builder parent (MarkdownBuilder.AppendMode a) -> MarkdownBuilder.Builder parent a"},{"name":"root","comment":" Entry point for building markdown.\n","type":"{ title : String.String } -> MarkdownBuilder.Builder MarkdownBuilder.Root MarkdownBuilder.Section"},{"name":"run","comment":" Quit modifying markdown, and compile it to the valid markdown structure.\n","type":"MarkdownBuilder.Builder parent a -> MarkdownAst.Section"}],"binops":[]}]