aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/Markdown.hs
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-11-11 09:05:35 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2019-11-11 09:08:52 -0800
commit741b1f7fb4f974a0fc2a9abe410007b27078e129 (patch)
tree454e89a6197338a112eb1953b80446f1910c150c /src/Text/Pandoc/Readers/Markdown.hs
parentbf2eb4f288df5d5b5e054cdc4ffa3b3c4dd187fa (diff)
downloadpandoc-741b1f7fb4f974a0fc2a9abe410007b27078e129.tar.gz
Markdown reader: fix small super/subscript issue.
Superscripts and subscripts cannot contain spaces, but newlines were previously allowed (unintentionally). This led to bad interactions in some cases with footnotes. E.g. ``` foo^[note] bar^[note] ``` With this change newlines are also not allowed inside super/subscripts. Closes #5878.
Diffstat (limited to 'src/Text/Pandoc/Readers/Markdown.hs')
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 46220acc8..4807baada 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -1700,13 +1700,17 @@ superscript :: PandocMonad m => MarkdownParser m (F Inlines)
superscript = fmap B.superscript <$> try (do
guardEnabled Ext_superscript
char '^'
- mconcat <$> many1Till (notFollowedBy spaceChar >> inline) (char '^'))
+ mconcat <$> many1Till (do notFollowedBy spaceChar
+ notFollowedBy newline
+ inline) (char '^'))
subscript :: PandocMonad m => MarkdownParser m (F Inlines)
subscript = fmap B.subscript <$> try (do
guardEnabled Ext_subscript
char '~'
- mconcat <$> many1Till (notFollowedBy spaceChar >> inline) (char '~'))
+ mconcat <$> many1Till (do notFollowedBy spaceChar
+ notFollowedBy newline
+ inline) (char '~'))
whitespace :: PandocMonad m => MarkdownParser m (F Inlines)
whitespace = spaceChar >> return <$> (lb <|> regsp) <?> "whitespace"