git.iko.soy/typeable/pandoc
on master help sign in
HTML and markdown: treat textarea as a verbatim environment.

We don't want to parse its contents as Markdown or HTML. Closes #5241.

commitf86ac89383110f2755a53d49dc508da873bcaf0a authorJohn MacFarlane <jgm@berkeley.edu> dateMon 21 Jan 2019, 20:54 (8 years ago) parent847ff4f
3 files changed+22−8
src/Text/Pandoc/Readers/HTML.hs+3−1 src/Text/Pandoc/Readers/Markdown.hs+7−7 test/command/5241.md+12
src/Text/Pandoc/Readers/HTML.hs+3−1
@@ -412,7 +412,9 @@ pDiv = try $ do
412412
413413pRawHtmlBlock :: PandocMonad m => TagParser m Blocks
414414pRawHtmlBlock = do
415− raw <- T.unpack <$> (pHtmlBlock "script" <|> pHtmlBlock "style" <|> pRawTag)
415+ raw <- T.unpack <$>
416+ (pHtmlBlock "script" <|> pHtmlBlock "style" <|> pHtmlBlock "textarea"
417+ <|> pRawTag)
416418 exts <- getOption readerExtensions
417419 if extensionEnabled Ext_raw_html exts && not (null raw)
418420 then return $ B.rawBlock "html" raw
src/Text/Pandoc/Readers/Markdown.hs+7−7
@@ -1106,9 +1106,8 @@ htmlBlock :: PandocMonad m => MarkdownParser m (F Blocks)
11061106htmlBlock = do
11071107 guardEnabled Ext_raw_html
11081108 try (do
1109− (TagOpen t attrs) <- lookAhead $ fst <$> htmlTag isBlockTag
1110− (guard (t `elem` ["pre","style","script"]) >>
1111− (return . B.rawBlock "html") <$> rawVerbatimBlock)
1109+ (TagOpen _ attrs) <- lookAhead $ fst <$> htmlTag isBlockTag
1110+ (return . B.rawBlock "html") <$> rawVerbatimBlock
11121111 <|> (do guardEnabled Ext_markdown_attribute
11131112 oldMarkdownAttribute <- stateMarkdownAttribute <$> getState
11141113 markdownAttribute <-
@@ -1141,10 +1140,11 @@ strictHtmlBlock = htmlInBalanced (not . isInlineTag)
11411140
11421141rawVerbatimBlock :: PandocMonad m => MarkdownParser m String
11431142rawVerbatimBlock = htmlInBalanced isVerbTag
1144− where isVerbTag (TagOpen "pre" _) = True
1145− isVerbTag (TagOpen "style" _) = True
1146− isVerbTag (TagOpen "script" _) = True
1147− isVerbTag _ = False
1143+ where isVerbTag (TagOpen "pre" _) = True
1144+ isVerbTag (TagOpen "style" _) = True
1145+ isVerbTag (TagOpen "script" _) = True
1146+ isVerbTag (TagOpen "textarea" _) = True
1147+ isVerbTag _ = False
11481148
11491149rawTeXBlock :: PandocMonad m => MarkdownParser m (F Blocks)
11501150rawTeXBlock = do
test/command/5241.mdnew file+12
@@ -0,0 +1,12 @@
1+```
2+% pandoc -f markdown -t html5
3+<textarea>
4+ one
5+ *two*
6+</textarea>
7+^D
8+<textarea>
9+ one
10+ *two*
11+</textarea>
12+```