diff options
| author | John MacFarlane <[email protected]> | 2025-12-30 12:11:46 -0700 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2025-12-30 12:11:46 -0700 |
| commit | b7bd1210b0a3f724f5e9f64878d4a74deae03b98 (patch) | |
| tree | a9c1c3864806bf57da7659de1d8cc19a4f080350 | |
| parent | 7cadf231970c1a9ea03b596525511fc6ffef09d4 (diff) | |
MediaWiki: better handling of inline tags.
`<mark>`, `<var>`, `<samp>`, and `<kbd>` now produce Code or Span
elements with classes, which can be handled by multiple output
formats, instead of simply being parsed as raw HTML tags.
Closes #11299.
| -rw-r--r-- | src/Text/Pandoc/Readers/MediaWiki.hs | 4 | ||||
| -rw-r--r-- | test/command/11299.md | 24 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/MediaWiki.hs b/src/Text/Pandoc/Readers/MediaWiki.hs index d6e01d703..4c9518737 100644 --- a/src/Text/Pandoc/Readers/MediaWiki.hs +++ b/src/Text/Pandoc/Readers/MediaWiki.hs @@ -659,6 +659,10 @@ inlineTag = do TagOpen "del" _ -> B.strikeout <$> inlinesInTags "del" TagOpen "sub" _ -> B.subscript <$> inlinesInTags "sub" TagOpen "sup" _ -> B.superscript <$> inlinesInTags "sup" + TagOpen "var" _ -> B.codeWith ("",["variable"],[]) <$> textInTags "var" + TagOpen "samp" _ -> B.codeWith ("",["sample"],[]) <$> textInTags "samp" + TagOpen "kbd" _ -> B.spanWith ("",["kbd"],[]) <$> inlinesInTags "kbd" + TagOpen "mark" _ -> B.spanWith ("",["mark"],[]) <$> inlinesInTags "mark" TagOpen "code" _ -> encode <$> inlinesInTags "code" TagOpen "tt" _ -> do inTT <- mwInTT <$> getState diff --git a/test/command/11299.md b/test/command/11299.md index 3c7995cb2..b8da865a9 100644 --- a/test/command/11299.md +++ b/test/command/11299.md @@ -1,6 +1,28 @@ ``` % pandoc -f mediawiki -t native <foo> + +<samp>x</samp> + +<kbd>x</kbd> + +<var>x</var> + +<mark>This is ''highlighted''</mark> ^D -[ Para [ Str "<foo>" ] ] +[ Para [ Str "<foo>" ] +, Para [ Code ( "" , [ "sample" ] , [] ) "x" ] +, Para [ Span ( "" , [ "kbd" ] , [] ) [ Str "x" ] ] +, Para [ Code ( "" , [ "variable" ] , [] ) "x" ] +, Para + [ Span + ( "" , [ "mark" ] , [] ) + [ Str "This" + , Space + , Str "is" + , Space + , Emph [ Str "highlighted" ] + ] + ] +] ``` |
