Markdown writer: cleaned up raw formats.

We now react appropriately to gfm, commonmark, and commonmark_x
as raw formats.
This commit is contained in:
John MacFarlane 2021-01-12 10:20:32 -08:00
parent c451207b08
commit 387d3e76ee

View file

@ -494,25 +494,24 @@ blockToMarkdown' opts b@(RawBlock f str) = do
let renderEmpty = mempty <$ report (BlockNotRendered b)
case variant of
PlainText -> renderEmpty
_ | f `elem` ["markdown", "markdown_github", "markdown_phpextra",
"markdown_mmd", "markdown_strict"] ->
return $ literal str <> literal "\n"
| isEnabled Ext_raw_attribute opts -> rawAttribBlock
| f `elem` ["html", "html5", "html4"] ->
case () of
_ | isEnabled Ext_markdown_attribute opts -> return $
literal (addMarkdownAttribute str) <> literal "\n"
| isEnabled Ext_raw_html opts -> return $
literal str <> literal "\n"
| isEnabled Ext_raw_attribute opts -> rawAttribBlock
| otherwise -> renderEmpty
| f `elem` ["latex", "tex"] ->
case () of
_ | isEnabled Ext_raw_tex opts -> return $
literal str <> literal "\n"
| isEnabled Ext_raw_attribute opts -> rawAttribBlock
| otherwise -> renderEmpty
| otherwise -> renderEmpty
Commonmark
| f `elem` ["gfm", "commonmark", "commonmark_x", "markdown"]
-> return $ literal str <> literal "\n"
Markdown
| f `elem` ["markdown", "markdown_github", "markdown_phpextra",
"markdown_mmd", "markdown_strict"]
-> return $ literal str <> literal "\n"
_ | isEnabled Ext_raw_attribute opts -> rawAttribBlock
| f `elem` ["html", "html5", "html4"]
, isEnabled Ext_markdown_attribute opts
-> return $ literal (addMarkdownAttribute str) <> literal "\n"
| f `elem` ["html", "html5", "html4"]
, isEnabled Ext_raw_html opts
-> return $ literal str <> literal "\n"
| f `elem` ["latex", "tex"]
, isEnabled Ext_raw_tex opts
-> return $ literal str <> literal "\n"
_ -> renderEmpty
blockToMarkdown' opts HorizontalRule =
return $ blankline <> literal (T.replicate (writerColumns opts) "-") <> blankline
blockToMarkdown' opts (Header level attr inlines) = do
@ -1250,21 +1249,23 @@ inlineToMarkdown opts il@(RawInline f str) = do
let renderEmpty = mempty <$ report (InlineNotRendered il)
case variant of
PlainText -> renderEmpty
_ | f `elem` ["markdown", "markdown_github", "markdown_phpextra",
"markdown_mmd", "markdown_strict"] ->
return $ literal str
| isEnabled Ext_raw_attribute opts -> rawAttribInline
| f `elem` ["html", "html5", "html4"] ->
case () of
_ | isEnabled Ext_raw_html opts -> return $ literal str
| isEnabled Ext_raw_attribute opts -> rawAttribInline
| otherwise -> renderEmpty
| f `elem` ["latex", "tex"] ->
case () of
_ | isEnabled Ext_raw_tex opts -> return $ literal str
| isEnabled Ext_raw_attribute opts -> rawAttribInline
| otherwise -> renderEmpty
| otherwise -> renderEmpty
Commonmark
| f `elem` ["gfm", "commonmark", "commonmark_x", "markdown"]
-> return $ literal str
Markdown
| f `elem` ["markdown", "markdown_github", "markdown_phpextra",
"markdown_mmd", "markdown_strict"]
-> return $ literal str
_ | isEnabled Ext_raw_attribute opts -> rawAttribInline
| f `elem` ["html", "html5", "html4"]
, isEnabled Ext_raw_html opts
-> return $ literal str
| f `elem` ["latex", "tex"]
, isEnabled Ext_raw_tex opts
-> return $ literal str
_ -> renderEmpty
inlineToMarkdown opts LineBreak = do
variant <- asks envVariant
if variant == PlainText || isEnabled Ext_hard_line_breaks opts