From cfb9bd5cf30bb67fc662b67f8645c9d6ed3d72df Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 20 Dec 2024 10:31:43 -0800 Subject: Mediawiki writer: escape line-initial characters... ...that would otherwise be interpreted as list starts. Closes #9700. --- src/Text/Pandoc/Writers/MediaWiki.hs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Text/Pandoc/Writers/MediaWiki.hs b/src/Text/Pandoc/Writers/MediaWiki.hs index 5e8cbb095..10823c8db 100644 --- a/src/Text/Pandoc/Writers/MediaWiki.hs +++ b/src/Text/Pandoc/Writers/MediaWiki.hs @@ -117,9 +117,12 @@ blockToMediaWiki (Para inlines) = do tags <- asks useTags lev <- asks listLevel contents <- inlineListToMediaWiki inlines + let initEsc = if startsWithListMarker contents -- #9700 + then "\\" + else "" return $ if tags then "

" <> contents <> "

" - else contents <> if null lev then "\n" else "" + else initEsc <> contents <> if null lev then "\n" else "" blockToMediaWiki (LineBlock lns) = blockToMediaWiki $ linesToPara lns @@ -1144,3 +1147,9 @@ highlightingLangs = Set.fromList [ "yaml", "yaml+jinja", "zephir" ] + +startsWithListMarker :: Text -> Bool +startsWithListMarker t = + case T.uncons t of + Nothing -> False + Just (c,_) -> c == '#' || c == ':' || c == ';' || c == '*' -- cgit v1.2.3