@@ -1757,12 +1757,17 @@ divHtml :: MarkdownParser (F Blocks)
17571757divHtml = try $ do
17581758 guardEnabled Ext_markdown_in_html_blocks
17591759 (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" }
17601764 bls <- option "" (blankline >> option "" blanklines)
17611765 contents <- mconcat <$>
17621766 many (notFollowedBy' (htmlTag (~== TagClose "div")) >> block)
17631767 closed <- option False (True <$ htmlTag (~== TagClose "div"))
17641768 if closed
17651769 then do
1770+ updateState $ \st -> st{ stateInHtmlBlock = oldInHtmlBlock }
17661771 let ident = fromMaybe "" $ lookup "id" attrs
17671772 let classes = maybe [] words $ lookup "class" attrs
17681773 let keyvals = [(k,v) | (k,v) <- attrs, k /= "id" && k /= "class"]