diff options
author | John MacFarlane <jgm@berkeley.edu> | 2016-02-21 07:55:35 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2016-02-21 07:56:41 -0800 |
commit | 04d1e40f374cf95e79308ca8cca75100602353b6 (patch) | |
tree | 158e8b963d82aa0038bc76666964f85fb9cc7ec5 /src/Text/Pandoc | |
parent | f1c59b271faf6e202ae71336d5da897bfb8ebf02 (diff) | |
download | pandoc-04d1e40f374cf95e79308ca8cca75100602353b6.tar.gz |
Markdown reader: use htmlInBalanced for rawVerbatimBlock.
This should give better performance.
See #2730.
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 82d343243..587726084 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -61,7 +61,6 @@ import Text.Pandoc.Readers.HTML ( htmlTag, htmlInBalanced, isInlineTag, isBlockT import Control.Monad import System.FilePath (takeExtension, addExtension) import Text.HTML.TagSoup -import Text.HTML.TagSoup.Match (tagOpen) import qualified Data.Set as Set import Text.Printf (printf) import Debug.Trace (trace) @@ -1052,12 +1051,11 @@ strictHtmlBlock :: MarkdownParser String strictHtmlBlock = htmlInBalanced (not . isInlineTag) rawVerbatimBlock :: MarkdownParser String -rawVerbatimBlock = try $ do - (TagOpen tag _, open) <- htmlTag (tagOpen (flip elem - ["pre", "style", "script"]) - (const True)) - contents <- manyTill anyChar (htmlTag (~== TagClose tag)) - return $ open ++ contents ++ renderTags' [TagClose tag] +rawVerbatimBlock = htmlInBalanced isVerbTag + where isVerbTag (TagOpen "pre" _) = True + isVerbTag (TagOpen "style" _) = True + isVerbTag (TagOpen "script" _) = True + isVerbTag _ = False rawTeXBlock :: MarkdownParser (F Blocks) rawTeXBlock = do |