module Test.Html.Internal.ElmHtml.Markdown exposing ( MarkdownOptions, MarkdownModel, baseMarkdownModel , decodeMarkdownModel ) {-| Markdown helpers @docs MarkdownOptions, MarkdownModel, baseMarkdownModel @docs decodeMarkdownModel -} import Json.Decode exposing (field) import Test.Internal.KernelConstants exposing (kernelConstants) {-| Just a default markdown model -} baseMarkdownModel : MarkdownModel baseMarkdownModel = { options = { githubFlavored = Just { tables = False, breaks = False } , defaultHighlighting = Nothing , sanitize = False , smartypants = False } , markdown = "" } {-| options markdown expects -} type alias MarkdownOptions = { githubFlavored : Maybe { tables : Bool, breaks : Bool } , defaultHighlighting : Maybe String , sanitize : Bool , smartypants : Bool } {-| An internal markdown model. Options are the things you give markdown, markdown is the string -} type alias MarkdownModel = { options : MarkdownOptions , markdown : String } {-| decode a markdown model -} decodeMarkdownModel : Json.Decode.Decoder MarkdownModel decodeMarkdownModel = field kernelConstants.markdown.markdown Json.Decode.string |> Json.Decode.map (MarkdownModel baseMarkdownModel.options)