39 lines
686 B
Elm
39 lines
686 B
Elm
module Article.Body exposing (Body, MarkdownString, decoder, toHtml, toMarkdownString)
|
|
|
|
import Html exposing (Attribute, Html)
|
|
import Json.Decode as Decode exposing (Decoder)
|
|
import Markdown
|
|
|
|
|
|
|
|
-- TYPES
|
|
|
|
|
|
type Body
|
|
= Body MarkdownString
|
|
|
|
|
|
{-| Internal use only. I want to remind myself that the string inside Body contains markdown.
|
|
-}
|
|
type alias MarkdownString =
|
|
String
|
|
|
|
|
|
|
|
-- CONVERSIONS
|
|
|
|
|
|
toHtml : Body -> List (Attribute msg) -> Html msg
|
|
toHtml (Body markdown) attributes =
|
|
Markdown.toHtml attributes markdown
|
|
|
|
|
|
toMarkdownString : Body -> MarkdownString
|
|
toMarkdownString (Body markdown) =
|
|
markdown
|
|
|
|
|
|
decoder : Decoder Body
|
|
decoder =
|
|
Decode.map Body Decode.string
|