git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: Parse span, div tags as Span, Div elements.
3117c66John MacFarlane
src/Text/Pandoc/Readers/Markdown.hs+22
@@ -446,6 +446,7 @@ block = choice [ mempty <$ blanklines
446 , header
446 , header
447 , lhsCodeBlock
447 , lhsCodeBlock
448 , rawTeXBlock
448 , rawTeXBlock
449+ , divHtml
449 , htmlBlock
450 , htmlBlock
450 , table
451 , table
451 , lineBlock
452 , lineBlock
@@ -1355,6 +1356,7 @@ inline = choice [ whitespace
1355 , superscript
1356 , superscript
1356 , inlineNote -- after superscript because of ^[link](/foo)^
1357 , inlineNote -- after superscript because of ^[link](/foo)^
1357 , autoLink
1358 , autoLink
1359+ , spanHtml
1358 , rawHtmlInline
1360 , rawHtmlInline
1359 , escapedChar
1361 , escapedChar
1360 , rawLaTeXInline'
1362 , rawLaTeXInline'
@@ -1755,6 +1757,26 @@ inBrackets parser = do
1755 char ']'
1757 char ']'
1756 return $ "[" ++ contents ++ "]"
1758 return $ "[" ++ contents ++ "]"
1757
1759
1760+spanHtml :: MarkdownParser (F Inlines)
1761+spanHtml = try $ do
1762+ guardEnabled Ext_markdown_in_html_blocks
1763+ (TagOpen _ attrs, _) <- htmlTag (~== TagOpen "span" [])
1764+ contents <- mconcat <$> manyTill inline (htmlTag (~== TagClose "span"))
1765+ let ident = maybe "" id $ lookup "id" attrs
1766+ let classes = maybe [] words $ lookup "class" attrs
1767+ let keyvals = [(k,v) | (k,v) <- attrs, k /= "id" && k /= "class"]
1768+ return $ B.spanWith (ident, classes, keyvals) <$> contents
1769+
1770+divHtml :: MarkdownParser (F Blocks)
1771+divHtml = try $ do
1772+ guardEnabled Ext_markdown_in_html_blocks
1773+ (TagOpen _ attrs, _) <- htmlTag (~== TagOpen "div" [])
1774+ contents <- mconcat <$> manyTill block (htmlTag (~== TagClose "div"))
1775+ let ident = maybe "" id $ lookup "id" attrs
1776+ let classes = maybe [] words $ lookup "class" attrs
1777+ let keyvals = [(k,v) | (k,v) <- attrs, k /= "id" && k /= "class"]
1778+ return $ B.divWith (ident, classes, keyvals) <$> contents
1779+
1758rawHtmlInline :: MarkdownParser (F Inlines)
1780rawHtmlInline :: MarkdownParser (F Inlines)
1759rawHtmlInline = do
1781rawHtmlInline = do
1760 guardEnabled Ext_raw_html
1782 guardEnabled Ext_raw_html