diff options
| -rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 27 | ||||
| -rw-r--r-- | test/command/8853.md | 6 |
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> +``` |
