summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs27
-rw-r--r--test/command/8853.md6
2 files changed, 21 insertions, 12 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 89b194767..d88c5d995 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -1527,7 +1527,7 @@ inline = do
'_' -> strongOrEmph
'*' -> strongOrEmph
'^' -> superscript <|> inlineNote -- in this order bc ^[link](/foo)^
- '[' -> note <|> cite <|> bracketedSpan <|> wikilink <|> link
+ '[' -> note <|> cite <|> bracketedSpan <|> wikilink B.linkWith <|> link
'!' -> image
'$' -> math
'~' -> strikeout <|> subscript
@@ -1844,8 +1844,10 @@ source = do
linkTitle :: PandocMonad m => MarkdownParser m Text
linkTitle = quotedTitle '"' <|> quotedTitle '\''
-wikilink :: PandocMonad m => MarkdownParser m (F Inlines)
-wikilink =
+wikilink :: PandocMonad m
+ => (Attr -> Text -> Text -> Inlines -> Inlines)
+ -> MarkdownParser m (F Inlines)
+wikilink constructor =
(guardEnabled Ext_wikilinks_title_after_pipe *> wikilink' swap) <|>
(guardEnabled Ext_wikilinks_title_before_pipe *> wikilink' id)
where
@@ -1857,7 +1859,7 @@ wikilink =
let (title, url) = case T.break (== '|') raw of
(before, "") -> (before, before)
(before, after) -> order (before, T.drop 1 after)
- return . pure . B.link url "wikilink" $ B.str title
+ return . pure . constructor nullAttr url "wikilink" $ B.str title
link :: PandocMonad m => MarkdownParser m (F Inlines)
link = try $ do
@@ -2015,14 +2017,15 @@ rebasePath pos path = do
image :: PandocMonad m => MarkdownParser m (F Inlines)
image = try $ do
char '!'
- (lab,raw) <- reference
- defaultExt <- getOption readerDefaultImageExtension
- let constructor attr' src =
- case takeExtension (T.unpack src) of
- "" -> B.imageWith attr' (T.pack $ addExtension (T.unpack src)
- $ T.unpack defaultExt)
- _ -> B.imageWith attr' src
- regLink constructor lab <|> referenceLink constructor (lab, "!" <> raw)
+ wikilink B.imageWith <|>
+ do (lab,raw) <- reference
+ defaultExt <- getOption readerDefaultImageExtension
+ let constructor attr' src =
+ case takeExtension (T.unpack src) of
+ "" -> B.imageWith attr' (T.pack $ addExtension (T.unpack src)
+ $ T.unpack defaultExt)
+ _ -> B.imageWith attr' src
+ regLink constructor lab <|> referenceLink constructor (lab, "!" <> raw)
note :: PandocMonad m => MarkdownParser m (F Inlines)
note = try $ do
diff --git a/test/command/8853.md b/test/command/8853.md
new file mode 100644
index 000000000..75fed4675
--- /dev/null
+++ b/test/command/8853.md
@@ -0,0 +1,6 @@
+```
+% pandoc -f markdown+wikilinks_title_after_pipe --wrap=none
+[[hi]] and ![[hi]]
+^D
+<p><a href="hi" title="wikilink">hi</a> and <img src="hi" title="wikilink" alt="hi" /></p>
+```