git.iko.soy/typeable/pandoc
on master help sign in
MediaWiki writer: use syntaxhighlight tag...

instead of deprecated source, for highlighted code. Also support `startFrom` attribute and `numberLines`. Closes #6810.

commit08134388ad94a9652050f416287dbcaaf2962114 authorJohn MacFarlane <jgm@berkeley.edu> dateWed 4 Nov 2020, 21:20 (6 years ago) parentb5e9c2a
1 file changed+9−2
src/Text/Pandoc/Writers/MediaWiki.hs+9−2
src/Text/Pandoc/Writers/MediaWiki.hs+9−2
@@ -135,15 +135,22 @@ blockToMediaWiki (Header level _ inlines) = do
135135 let eqs = T.replicate level "="
136136 return $ eqs <> " " <> contents <> " " <> eqs <> "\n"
137137
138−blockToMediaWiki (CodeBlock (_,classes,_) str) = do
138+blockToMediaWiki (CodeBlock (_,classes,keyvals) str) = do
139139 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
140143 return $
141144 case Set.toList at of
142145 [] -> "<pre" <> (if null classes
143146 then ">"
144147 else " class=\"" <> T.unwords classes <> "\">") <>
145148 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>"
147154 -- note: no escape! even for <!
148155
149156blockToMediaWiki (BlockQuote blocks) = do