@@ -31,6 +31,7 @@ DokuWiki: <https://www.dokuwiki.org/dokuwiki>
3131-}
3232
3333{-
34+ [ ] Correct handling of Span
3435 [ ] Don't generate <blockquote>...
3536 [ ] Don't generate lists using <ol> and <ul>
3637 [ ] Don't generate <div>
@@ -46,6 +47,7 @@ import Text.Pandoc.Definition
4647import Text.Pandoc.Options
4748import Text.Pandoc.Shared
4849import Text.Pandoc.Writers.Shared
50+import Text.Pandoc.Pretty (render)
4951import Text.Pandoc.Templates (renderTemplate')
5052import Data.List ( intersect, intercalate )
5153import Network.URI ( isURI )
@@ -95,6 +97,11 @@ blockToDokuWiki :: WriterOptions -- ^ Options
9597
9698blockToDokuWiki _ Null = return ""
9799
100+blockToDokuWiki opts (Div attrs bs) = do
101+ contents <- blockListToDokuWiki opts bs
102+ return $ render Nothing (tagWithAttrs "div" attrs) ++ "\n" ++
103+ contents ++ "\n" ++ "</div>"
104+
98105blockToDokuWiki opts (Plain inlines) =
99106 inlineListToDokuWiki opts inlines
100107
@@ -117,9 +124,10 @@ blockToDokuWiki opts (Para inlines) = do
117124 then "<p>" ++ contents ++ "</p>"
118125 else contents ++ if null indent then "\n" else ""
119126
120−blockToDokuWiki _ (RawBlock "mediawiki" str) = return str
121−blockToDokuWiki _ (RawBlock "html" str) = return str
122−blockToDokuWiki _ (RawBlock _ _) = return ""
127+blockToDokuWiki _ (RawBlock f str)
128+ | f == Format "mediawiki" = return str
129+ | f == Format "html" = return str
130+ | otherwise = return ""
123131
124132blockToDokuWiki _ HorizontalRule = return "\n----\n"
125133
@@ -370,6 +378,13 @@ inlineListToDokuWiki opts lst = mapM (inlineToDokuWiki opts) lst >>= return . co
370378-- | Convert Pandoc inline element to DokuWiki.
371379inlineToDokuWiki :: WriterOptions -> Inline -> State WriterState String
372380
381+inlineToDokuWiki opts (Span attrs ils) = do
382+ return ""
383+ {-
384+ contents <- inlineListToDokuWiki opts ils
385+ return $ render Nothing (tagWithAttrs "span" attrs) ++ contents ++ "</span>"
386+ -}
387+
373388inlineToDokuWiki opts (Emph lst) = do
374389 contents <- inlineListToDokuWiki opts lst
375390 return $ "//" ++ contents ++ "//"
@@ -419,9 +434,10 @@ inlineToDokuWiki _ (Str str) = return $ escapeString str
419434inlineToDokuWiki _ (Math _ str) = return $ "<math>" ++ str ++ "</math>"
420435 -- note: str should NOT be escaped
421436
422−inlineToDokuWiki _ (RawInline "mediawiki" str) = return str
423−inlineToDokuWiki _ (RawInline "html" str) = return str
424−inlineToDokuWiki _ (RawInline _ _) = return ""
437+inlineToDokuWiki _ (RawInline f str)
438+ | f == Format "mediawiki" = return str
439+ | f == Format "html" = return str
440+ | otherwise = return ""
425441
426442inlineToDokuWiki _ (LineBreak) = return "\\\\ "
427443