diff options
author | John MacFarlane <jgm@berkeley.edu> | 2019-11-11 09:05:35 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2019-11-11 09:08:52 -0800 |
commit | 741b1f7fb4f974a0fc2a9abe410007b27078e129 (patch) | |
tree | 454e89a6197338a112eb1953b80446f1910c150c /src | |
parent | bf2eb4f288df5d5b5e054cdc4ffa3b3c4dd187fa (diff) | |
download | pandoc-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')
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 8 |
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" |