@@ -745,13 +745,13 @@ htmlBlock' = try $ do
745strictHtmlBlock :: Parser [Char] ParserState String
745strictHtmlBlock :: Parser [Char] ParserState String
746strictHtmlBlock = htmlInBalanced (not . isInlineTag)
746strictHtmlBlock = htmlInBalanced (not . isInlineTag)
748−rawVerbatimBlock :: Parser [Char] ParserState (Tag String, String)
748+rawVerbatimBlock :: Parser [Char] ParserState String
749rawVerbatimBlock = try $ do
749rawVerbatimBlock = try $ do
750− (TagOpen tag as, open) <- htmlTag (tagOpen (\t ->
750+ (TagOpen tag _, open) <- htmlTag (tagOpen (\t ->
751− t == "pre" || t == "style" || t == "script")
751+ t == "pre" || t == "style" || t == "script")
752− (const True))
752+ (const True))
753 contents <- manyTill anyChar (htmlTag (~== TagClose tag))
753 contents <- manyTill anyChar (htmlTag (~== TagClose tag))
754− return (TagOpen tag as, open ++ contents ++ renderTags [TagClose tag])
754+ return $ open ++ contents ++ renderTags [TagClose tag]
756rawTeXBlock :: Parser [Char] ParserState (F Blocks)
756rawTeXBlock :: Parser [Char] ParserState (F Blocks)
757rawTeXBlock = do
757rawTeXBlock = do
@@ -764,15 +764,23 @@ rawTeXBlock = do
764rawHtmlBlocks :: Parser [Char] ParserState String
764rawHtmlBlocks :: Parser [Char] ParserState String
765rawHtmlBlocks = do
765rawHtmlBlocks = do
766 htmlBlocks <- many1 $ try $ do
766 htmlBlocks <- many1 $ try $ do
767− (t,s) <- rawVerbatimBlock <|> htmlTag isBlockTag
767+ s <- rawVerbatimBlock <|> try (
768+ do (t,raw) <- htmlTag isBlockTag
768− exts <- getOption readerExtensions
769+ exts <- getOption readerExtensions
769− -- if open tag, need markdown=1 if
770+ -- if open tag, need markdown="1" if
770− -- markdown_attributes extension is set
771+ -- markdown_attributes extension is set
771− when (Ext_markdown_attribute `Set.member` exts
774+ | Ext_markdown_attribute `Set.member`
772− && isTagOpen t) $ guard
775+ exts ->
773− $ case t of
776+ if "markdown" `notElem`
774− TagOpen _ as -> "markdown" `elem` map fst as
777+ map fst as
775− _ -> False
778+ then mzero
779+ else return $ substitute
780+ " markdown=\"1\"" "" raw
781+ | otherwise -> return raw
783+ -- TODO remove markdown="1" attribute from raw tags
776 sps <- do sp1 <- many spaceChar
784 sps <- do sp1 <- many spaceChar
777 sp2 <- option "" (blankline >> return "\n")
785 sp2 <- option "" (blankline >> return "\n")
778 sp3 <- many spaceChar
786 sp3 <- many spaceChar