diff options
author | John MacFarlane <fiddlosopher@gmail.com> | 2012-09-09 18:12:29 -0700 |
---|---|---|
committer | John MacFarlane <fiddlosopher@gmail.com> | 2012-09-09 18:12:29 -0700 |
commit | 579cdac64139e8decc67172c0cb384de6f1bfc3b (patch) | |
tree | d2abe1a5d53180cfda08bbff2d63082e94eaa11b | |
parent | 7fc804ed22b3dad2e7f5c365a1d9a1beceb0c983 (diff) | |
download | pandoc-579cdac64139e8decc67172c0cb384de6f1bfc3b.tar.gz |
HTML reader: Handle nested `<q>` tags properly.
-rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index 182a144b3..90887bfae 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -308,7 +308,15 @@ pSelfClosing f g = do return open pQ :: TagParser [Inline] -pQ = pInlinesInTags "q" (Quoted DoubleQuote) +pQ = do + quoteContext <- stateQuoteContext `fmap` getState + let quoteType = case quoteContext of + InDoubleQuote -> SingleQuote + _ -> DoubleQuote + let innerQuoteContext = if quoteType == SingleQuote + then InSingleQuote + else InDoubleQuote + withQuoteContext innerQuoteContext $ pInlinesInTags "q" (Quoted quoteType) pEmph :: TagParser [Inline] pEmph = pInlinesInTags "em" Emph <|> pInlinesInTags "i" Emph |