@@ -44,6 +44,7 @@ import Text.Pandoc.Options
44import Text.Pandoc.Shared
44import Text.Pandoc.Shared
45import Text.Pandoc.Writers.Shared
45import Text.Pandoc.Writers.Shared
46import Text.Pandoc.Templates (renderTemplate')
46import Text.Pandoc.Templates (renderTemplate')
47+import Text.Pandoc.Walk (query)
47import Data.List ( intersect, intercalate )
48import Data.List ( intersect, intercalate )
48import Network.URI ( isURI )
49import Network.URI ( isURI )
49import Control.Monad.State
50import Control.Monad.State
@@ -85,6 +86,15 @@ pandocToDokuWiki opts (Pandoc meta blocks) = do
85escapeString :: String -> String
86escapeString :: String -> String
86escapeString str = substitute "__" "%%__%%" ( substitute "**" "%%**%%" ( substitute "//" "%%//%%" str ) )
87escapeString str = substitute "__" "%%__%%" ( substitute "**" "%%**%%" ( substitute "//" "%%//%%" str ) )
89+-- | Remove unsupported formatting from headings
90+unfancy :: [Inline] -> [Inline]
91+unfancy = query plainContent
93+plainContent :: Inline -> [Inline]
94+plainContent (Str x) = [Str x]
95+plainContent Space = [Space]
88-- | Convert Pandoc block element to DokuWiki.
98-- | Convert Pandoc block element to DokuWiki.
89blockToDokuWiki :: WriterOptions -- ^ Options
99blockToDokuWiki :: WriterOptions -- ^ Options
90 -> Block -- ^ Block element
100 -> Block -- ^ Block element
@@ -126,7 +136,7 @@ blockToDokuWiki _ (RawBlock f str)
126blockToDokuWiki _ HorizontalRule = return "\n----\n"
136blockToDokuWiki _ HorizontalRule = return "\n----\n"
128blockToDokuWiki opts (Header level _ inlines) = do
138blockToDokuWiki opts (Header level _ inlines) = do
129− contents <- inlineListToDokuWiki opts inlines
139+ contents <- inlineListToDokuWiki opts ( unfancy inlines )
130 let eqs = replicate ( 7 - level ) '='
140 let eqs = replicate ( 7 - level ) '='
131 return $ eqs ++ " " ++ contents ++ " " ++ eqs ++ "\n"
141 return $ eqs ++ " " ++ contents ++ " " ++ eqs ++ "\n"