[
    {
        "name": "Markdown",
        "comment": " A library for markdown parsing and rendering.\n\n# Parsing Markdown\n@docs toHtml\n\n# Parsing with Custom Options\n@docs withOptions, customHtml\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "customHtml",
                "comment": " Customize how to render each element. The following examples\ndemonstrate how to use it.\n\n- Render `target=\"_blank\"` on links depending on the url.\n[Demo](https://pablohirafuji.github.io/elm-markdown/examples/CustomLinkTag.html)\n/ [Code](https://github.com/pablohirafuji/elm-markdown/blob/master/examples/CustomLinkTag.elm)\n- Render images using `figure` and `figcaption` elements.\n[Demo](https://pablohirafuji.github.io/elm-markdown/examples/CustomImageTag.html)\n/ [Code](https://github.com/pablohirafuji/elm-markdown/blob/master/examples/CustomImageTag.elm)\n",
                "type": "Options -> Elements -> String -> List (Html Never)"
            },
            {
                "name": "toHtml",
                "comment": " Turn a markdown string into a list of HTML elements,\nusing the `Config.defaultOptions` and `Config.defaultElements`.\n\n```\n\ntype Msg\n    = MsgOfmyApp1\n    | MsgOfmyApp2\n    | MsgOfmyApp3\n    | Markdown\n\n\nmarkdownView : Html Msg\nmarkdownView =\n    Html.map (always Markdown)\n        <| section []\n        <| Markdown.toHtml \"# Title with *emphasis*\"\n\n```\n",
                "type": "String -> List (Html Never)"
            },
            {
                "name": "withOptions",
                "comment": " Customize how soft line breaks (`\\n`) are rendered and raw html\ntags are parsed.\n\n```\ncustomOptions : Options\ncustomOptions =\n    { softAsHardLineBreak = True\n    , rawHtml = DontParse\n    }\n\n\nview : Html Never\nview =\n    div []\n        <| Markdown.withOptions customOptions model.textarea\n```\n\nThe [demo](https://pablohirafuji.github.io/elm-markdown/examples/Demo.html)\ndemonstrate how each option affects the output.\n",
                "type": "Options -> String -> List (Html Never)"
            }
        ],
        "binops": []
    },
    {
        "name": "Markdown.Config",
        "comment": " Configure markdown to fit your needs.\n\n# Options\n@docs Options, HtmlOption, SanitizeOptions, defaultOptions, defaultSanitizeOptions\n\n# Elements\n@docs Elements, defaultElements, CodeBlock, ListElement, Image, Link\n\n",
        "unions": [
            {
                "name": "HtmlOption",
                "comment": " Choose what to do with raw html elements.\n\n- `ParseUnsafe`: Will parse any valid html tag and attribute. This includes malicious code like `<script>alert(\"XSS ALERT!!\");</script>`.\n- `Sanitize SanitizeOptions`: Will parse only specific html elements and attributes.\n- `DontParse`: Do not parse any html tag. It will include the raw text in the output.\n",
                "args": [],
                "cases": [
                    [
                        "ParseUnsafe",
                        []
                    ],
                    [
                        "Sanitize",
                        [
                            "SanitizeOptions"
                        ]
                    ],
                    [
                        "DontParse",
                        []
                    ]
                ]
            },
            {
                "name": "ListElement",
                "comment": " List element model. The `Int` in `Ordered Int` is the\nfirst number used to start an ordered list.\n",
                "args": [],
                "cases": [
                    [
                        "Unordered",
                        []
                    ],
                    [
                        "Ordered",
                        [
                            "Int"
                        ]
                    ]
                ]
            }
        ],
        "aliases": [
            {
                "name": "CodeBlock",
                "comment": " Code block element model. If you want to use a highlight package,\nyou have access to the code here.\n",
                "args": [],
                "type": "{ language : Maybe String, code : String }"
            },
            {
                "name": "Elements",
                "comment": " A record to be used with `customHtml` of how each element\nis rendered to html.\n",
                "args": [],
                "type": "{ heading : Int -> List (Html Never) -> Html Never, thematicBreak : Html Never, paragraph : Bool -> List (Html Never) -> List (Html Never), blockQuote : List (Html Never) -> Html Never, code : CodeBlock -> Html Never, list : ListElement -> List (Html Never) -> Html Never, emphasis : List (Html Never) -> Html Never, strongEmphasis : List (Html Never) -> Html Never, codeSpan : String -> Html Never, link : Link -> List (Html Never) -> Html Never, image : Image -> Html Never, hardLineBreak : Html Never }"
            },
            {
                "name": "Image",
                "comment": " Image element model.\n",
                "args": [],
                "type": "{ alt : String, src : String, title : Maybe String }"
            },
            {
                "name": "Link",
                "comment": " Link element model.\n",
                "args": [],
                "type": "{ url : String, title : Maybe String }"
            },
            {
                "name": "Options",
                "comment": " Some parser options so you can tweak things for your\nparticular case. \n\n- `softAsHardLineBreak`: If set to `True`, will render `\\n` as `<br>`.\n- `rawHtml`: This determine what to do with raw html elements.\n    \n",
                "args": [],
                "type": "{ softAsHardLineBreak : Bool, rawHtml : HtmlOption }"
            },
            {
                "name": "SanitizeOptions",
                "comment": " Choose what html elements and attributes are allowed to parse.\n\n- `allowedHtmlElements`: List of allowed html elements.\n- `allowedHtmlAttributes`: List of allowed attributes.\n",
                "args": [],
                "type": "{ allowedHtmlElements : List String, allowedHtmlAttributes : List String }"
            }
        ],
        "values": [
            {
                "name": "defaultElements",
                "comment": " The elements used in `toHtml` and `withOptions`.\n",
                "type": "Elements"
            },
            {
                "name": "defaultOptions",
                "comment": " The `Options` used in `Markdown.toHtml`.\n\n```\n{ softAsHardLineBreak = False\n, rawHtml = Sanitize defaultSanitizeOptions\n}\n```\n",
                "type": "Options"
            },
            {
                "name": "defaultSanitizeOptions",
                "comment": " The `SanitizeOptions` used by `defaultOptions`.\n\n```\n{ allowedHtmlElements =\n    [ \"address\", \"article\", \"aside\", \"b\", \"blockquote\"\n    , \"body\",\"br\", \"caption\", \"center\", \"cite\", \"code\", \"col\"\n    , \"colgroup\", \"dd\", \"details\", \"div\", \"dl\", \"dt\", \"figcaption\"\n    , \"figure\", \"footer\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"hr\"\n    , \"i\", \"legend\", \"li\", \"link\", \"main\", \"menu\", \"menuitem\"\n    , \"nav\", \"ol\", \"optgroup\", \"option\", \"p\", \"pre\", \"section\"\n    , \"strike\", \"summary\", \"small\", \"table\", \"tbody\", \"td\"\n    , \"tfoot\", \"th\", \"thead\", \"title\", \"tr\", \"ul\" ]\n, allowedHtmlAttributes =\n    [ \"name\", \"class\" ]\n}\n```\n",
                "type": "SanitizeOptions"
            }
        ],
        "binops": []
    }
]