aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Writers/DokuWiki.hs7
-rw-r--r--tests/dokuwiki-writer.dokuwiki2
2 files changed, 7 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Writers/DokuWiki.hs b/src/Text/Pandoc/Writers/DokuWiki.hs
index 3f4efb1b3..9ac35ebd6 100644
--- a/src/Text/Pandoc/Writers/DokuWiki.hs
+++ b/src/Text/Pandoc/Writers/DokuWiki.hs
@@ -85,6 +85,11 @@ pandocToDokuWiki opts (Pandoc meta blocks) = do
then return $ renderTemplate' (writerTemplate opts) context
else return main
+-- | Escape special characters for MediaWiki.
+escapeString :: String -> String
+-- The spaces around // are to prevent touching in URLs inside inline code blocks
+escapeString str = substitute " // " " %%//%% " str
+
-- | Convert Pandoc block element to DokuWiki.
blockToDokuWiki :: WriterOptions -- ^ Options
-> Block -- ^ Block element
@@ -407,7 +412,7 @@ inlineToDokuWiki opts (Quoted DoubleQuote lst) = do
inlineToDokuWiki opts (Cite _ lst) = inlineListToDokuWiki opts lst
inlineToDokuWiki _ (Code _ str) =
- return $ "''" ++ str++ "''"
+ return $ "''" ++ ( escapeString str ) ++ "''"
inlineToDokuWiki _ (Str str) = return $ str
diff --git a/tests/dokuwiki-writer.dokuwiki b/tests/dokuwiki-writer.dokuwiki
index d6ab65d66..dbffb7a0e 100644
--- a/tests/dokuwiki-writer.dokuwiki
+++ b/tests/dokuwiki-writer.dokuwiki
@@ -1,3 +1,3 @@
hello // world ** from __ me
-''hello // world ** from __ me''
+''hello %%//%% world ** from __ me''