git.iko.soy/typeable/pandoc
on master help sign in
MediaWiki writer: use syntaxhighlight tag...
0813438John MacFarlane
src/Text/Pandoc/Writers/MediaWiki.hs+9−2
@@ -135,15 +135,22 @@ blockToMediaWiki (Header level _ inlines) = do
135 let eqs = T.replicate level "="
135 let eqs = T.replicate level "="
136 return $ eqs <> " " <> contents <> " " <> eqs <> "\n"
136 return $ eqs <> " " <> contents <> " " <> eqs <> "\n"
137
137
138−blockToMediaWiki (CodeBlock (_,classes,_) str) = do
138+blockToMediaWiki (CodeBlock (_,classes,keyvals) str) = do
139 let at = Set.fromList classes `Set.intersection` highlightingLangs
139 let at = Set.fromList classes `Set.intersection` highlightingLangs
140+ let numberLines = any (`elem` ["number","numberLines", "number-lines"])
141+ classes
142+ let start = lookup "startFrom" keyvals
140 return $
143 return $
141 case Set.toList at of
144 case Set.toList at of
142 [] -> "<pre" <> (if null classes
145 [] -> "<pre" <> (if null classes
143 then ">"
146 then ">"
144 else " class=\"" <> T.unwords classes <> "\">") <>
147 else " class=\"" <> T.unwords classes <> "\">") <>
145 escapeText str <> "</pre>"
148 escapeText str <> "</pre>"
146− (l:_) -> "<source lang=\"" <> l <> "\">" <> str <> "</source>"
149+ (l:_) -> "<syntaxhighlight lang=\"" <> l <> "\"" <>
150+ (if numberLines then " line" else "") <>
151+ maybe "" (\x -> " start=\"" <> x <> "\"") start <>
152+ ">" <> str <>
153+ "</syntaxhighlight>"
147 -- note: no escape! even for <!
154 -- note: no escape! even for <!
148
155
149blockToMediaWiki (BlockQuote blocks) = do
156blockToMediaWiki (BlockQuote blocks) = do