module Dhall.Docs.Markdown
( MarkdownParseError(..)
, markdownToHtml
) where
import Data.Text (Text)
import Lucid
import Path (File, Path, Rel)
import Text.Megaparsec (ParseErrorBundle (..))
import Text.MMark (MMarkErr)
import qualified Path
import qualified Text.MMark as MMark
newtype MarkdownParseError = MarkdownParseError
{ unwrap :: ParseErrorBundle Text MMarkErr
}
markdownToHtml
:: Path Rel File
-> Text
-> Either MarkdownParseError (Html ())
markdownToHtml relFile contents =
case MMark.parse (Path.fromRelFile relFile) contents of
Left err -> Left MarkdownParseError { unwrap = err }
Right mmark -> Right $ MMark.render mmark