aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <[email protected]>2024-02-19 12:46:43 -0800
committerJohn MacFarlane <[email protected]>2024-02-19 12:46:43 -0800
commitc131f8d4bc8797164367a4c112a14e8f495a4831 (patch)
tree4b54df28e4d40fa3e9c6166c17f7fb93daab9c70
parent54b001aa193ace3d6b0a30f8456853d0d2be38c2 (diff)
Markdown reader: fix regression in link parsing...
with wikilinks extensions. This fixes a regression introduced in 3.1.12. Closes #9481.
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs21
-rw-r--r--test/command/9481.md7
2 files changed, 18 insertions, 10 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 31d1b5198..2890c0125 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -1847,16 +1847,17 @@ wikilink constructor = do
titleAfter <-
(True <$ guardEnabled Ext_wikilinks_title_after_pipe) <|>
(False <$ guardEnabled Ext_wikilinks_title_before_pipe)
- string "[[" *> notFollowedBy' (char '[')
- raw <- many1TillChar anyChar (try $ string "]]")
- let (title, url) = case T.break (== '|') raw of
- (before, "") -> (before, before)
- (before, after)
- | titleAfter -> (T.drop 1 after, before)
- | otherwise -> (before, T.drop 1 after)
- guard $ T.all (`notElem` ['\n','\r','\f','\t']) url
- return . pure . constructor nullAttr url "wikilink" $
- B.text $ fromEntities title
+ try $ do
+ string "[[" *> notFollowedBy' (char '[')
+ raw <- many1TillChar anyChar (try $ string "]]")
+ let (title, url) = case T.break (== '|') raw of
+ (before, "") -> (before, before)
+ (before, after)
+ | titleAfter -> (T.drop 1 after, before)
+ | otherwise -> (before, T.drop 1 after)
+ guard $ T.all (`notElem` ['\n','\r','\f','\t']) url
+ return . pure . constructor nullAttr url "wikilink" $
+ B.text $ fromEntities title
link :: PandocMonad m => MarkdownParser m (F Inlines)
link = try $ do
diff --git a/test/command/9481.md b/test/command/9481.md
new file mode 100644
index 000000000..552f3ddcd
--- /dev/null
+++ b/test/command/9481.md
@@ -0,0 +1,7 @@
+```
+% pandoc -f markdown+wikilinks_title_after_pipe
+[a](https://example.com)
+^D
+<p><a href="https://example.com">a</a></p>
+
+```