@@ -446,6 +446,7 @@ block = choice [ mempty <$ blanklines
447 , lhsCodeBlock
447 , lhsCodeBlock
448 , rawTeXBlock
448 , rawTeXBlock
449 , htmlBlock
450 , htmlBlock
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
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 ++ "]"
1760+spanHtml :: MarkdownParser (F Inlines)
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
1770+divHtml :: MarkdownParser (F Blocks)
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
1758rawHtmlInline :: MarkdownParser (F Inlines)
1780rawHtmlInline :: MarkdownParser (F Inlines)
1759rawHtmlInline = do
1781rawHtmlInline = do
1760 guardEnabled Ext_raw_html
1782 guardEnabled Ext_raw_html