@@ -1757,12 +1757,17 @@ divHtml :: MarkdownParser (F Blocks)
1757divHtml = try $ do
1757divHtml = try $ do
1758 guardEnabled Ext_markdown_in_html_blocks
1758 guardEnabled Ext_markdown_in_html_blocks
1759 (TagOpen _ attrs, rawtag) <- htmlTag (~== TagOpen "div" [])
1759 (TagOpen _ attrs, rawtag) <- htmlTag (~== TagOpen "div" [])
1760+ -- we set stateInHtmlBlock so that closing tags that can be either block or
1761+ -- inline will not be parsed as inline tags
1762+ oldInHtmlBlock <- stateInHtmlBlock <$> getState
1763+ updateState $ \st -> st{ stateInHtmlBlock = Just "div" }
1760 bls <- option "" (blankline >> option "" blanklines)
1764 bls <- option "" (blankline >> option "" blanklines)
1761 contents <- mconcat <$>
1765 contents <- mconcat <$>
1762 many (notFollowedBy' (htmlTag (~== TagClose "div")) >> block)
1766 many (notFollowedBy' (htmlTag (~== TagClose "div")) >> block)
1763 closed <- option False (True <$ htmlTag (~== TagClose "div"))
1767 closed <- option False (True <$ htmlTag (~== TagClose "div"))
1764 if closed
1768 if closed
1770+ updateState $ \st -> st{ stateInHtmlBlock = oldInHtmlBlock }
1766 let ident = fromMaybe "" $ lookup "id" attrs
1771 let ident = fromMaybe "" $ lookup "id" attrs
1767 let classes = maybe [] words $ lookup "class" attrs
1772 let classes = maybe [] words $ lookup "class" attrs
1768 let keyvals = [(k,v) | (k,v) <- attrs, k /= "id" && k /= "class"]
1773 let keyvals = [(k,v) | (k,v) <- attrs, k /= "id" && k /= "class"]