MediaWiki writer: prevent triple [[[
.
This confuses mediawiki's parser. So we insert a `<nowiki/>` no-op between a literal `[` and a link. Closes #6119.
This commit is contained in:
parent
9c4dc8b49b
commit
0a4f49d370
2 changed files with 21 additions and 1 deletions
|
@ -347,7 +347,17 @@ blockListToMediaWiki blocks =
|
|||
-- | Convert list of Pandoc inline elements to MediaWiki.
|
||||
inlineListToMediaWiki :: PandocMonad m => [Inline] -> MediaWikiWriter m Text
|
||||
inlineListToMediaWiki lst =
|
||||
fmap T.concat $ mapM inlineToMediaWiki lst
|
||||
fmap T.concat $ mapM inlineToMediaWiki $ fixup lst
|
||||
where
|
||||
fixup [] = []
|
||||
fixup (Str t : x : xs)
|
||||
| not (T.null t) && T.last t == '['
|
||||
, isLinkOrImage x =
|
||||
Str t : RawInline (Format "mediawiki") "<nowiki/>" : x : fixup xs
|
||||
fixup (x:xs) = x : fixup xs
|
||||
isLinkOrImage (Link{}) = True
|
||||
isLinkOrImage (Image{}) = True
|
||||
isLinkOrImage _ = False
|
||||
|
||||
-- | Convert Pandoc inline element to MediaWiki.
|
||||
inlineToMediaWiki :: PandocMonad m => Inline -> MediaWikiWriter m Text
|
||||
|
|
10
test/command/6119.md
Normal file
10
test/command/6119.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
```
|
||||
% pandoc -t mediawiki
|
||||
[[link](url)]
|
||||
|
||||
[![image](url)]
|
||||
^D
|
||||
[<nowiki/>[[url|link]]]
|
||||
|
||||
[<nowiki/>[[File:url|image]]]
|
||||
```
|
Loading…
Add table
Reference in a new issue