@@ -1088,13 +1088,19 @@ rawTeXBlock = do
1088rawHtmlBlocks :: PandocMonad m => MarkdownParser m (F Blocks)
1088rawHtmlBlocks :: PandocMonad m => MarkdownParser m (F Blocks)
1089rawHtmlBlocks = do
1089rawHtmlBlocks = do
1090 (TagOpen tagtype _, raw) <- htmlTag isBlockTag
1090 (TagOpen tagtype _, raw) <- htmlTag isBlockTag
1091+ -- we don't want '<td> text' to be a code block:
1093+ indentlevel <- (blankline >> length <$> many (char ' ')) <|> return 0
1091 -- try to find closing tag
1094 -- try to find closing tag
1092 -- we set stateInHtmlBlock so that closing tags that can be either block or
1095 -- we set stateInHtmlBlock so that closing tags that can be either block or
1093 -- inline will not be parsed as inline tags
1096 -- inline will not be parsed as inline tags
1094 oldInHtmlBlock <- stateInHtmlBlock <$> getState
1097 oldInHtmlBlock <- stateInHtmlBlock <$> getState
1095 updateState $ \st -> st{ stateInHtmlBlock = Just tagtype }
1098 updateState $ \st -> st{ stateInHtmlBlock = Just tagtype }
1096 let closer = htmlTag (\x -> x ~== TagClose tagtype)
1099 let closer = htmlTag (\x -> x ~== TagClose tagtype)
1100+ let block' = do notFollowedBy' closer
1101+ atMostSpaces indentlevel
1097− contents <- mconcat <$> many (notFollowedBy' closer >> block)
1103+ contents <- mconcat <$> many block'
1098 result <-
1104 result <-
1099 (closer >>= \(_, rawcloser) -> return (
1105 (closer >>= \(_, rawcloser) -> return (
1100 return (B.rawBlock "html" $ stripMarkdownAttribute raw) <>
1106 return (B.rawBlock "html" $ stripMarkdownAttribute raw) <>