diff options
| author | John MacFarlane <[email protected]> | 2024-02-19 12:46:43 -0800 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2024-02-19 12:46:43 -0800 |
| commit | c131f8d4bc8797164367a4c112a14e8f495a4831 (patch) | |
| tree | 4b54df28e4d40fa3e9c6166c17f7fb93daab9c70 | |
| parent | 54b001aa193ace3d6b0a30f8456853d0d2be38c2 (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.hs | 21 | ||||
| -rw-r--r-- | test/command/9481.md | 7 |
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> + +``` |
