diff options
-rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 4 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/Markdown.hs | 5 | ||||
-rw-r--r-- | test/command/1592.md | 49 |
3 files changed, 53 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index f02f1a1d4..7e7d505ac 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -684,9 +684,11 @@ pSpan = try $ do guardEnabled Ext_native_spans TagOpen _ attr <- lookAhead $ pSatisfy $ tagOpen (=="span") (const True) contents <- pInTags "span" inline - let isSmallCaps = fontVariant == "small-caps" + let isSmallCaps = fontVariant == "small-caps" || "smallcaps" `elem` classes where styleAttr = fromMaybe "" $ lookup "style" attr fontVariant = fromMaybe "" $ pickStyleAttrProps ["font-variant"] styleAttr + classes = fromMaybe [] $ + words <$> lookup "class" attr let tag = if isSmallCaps then B.smallcaps else B.spanWith (mkAttr attr) return $ tag contents diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index d34ccb0f6..7dc472568 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -971,10 +971,7 @@ inlineToMarkdown opts (SmallCaps lst) = do plain <- asks envPlain if not plain && (isEnabled Ext_raw_html opts || isEnabled Ext_native_spans opts) - then do - contents <- inlineListToMarkdown opts lst - return $ tagWithAttrs "span" ("",["smallcaps"],[]) - <> contents <> text "</span>" + then inlineToMarkdown opts (Span ("",["smallcaps"],[]) lst) else inlineListToMarkdown opts $ capitalize lst inlineToMarkdown opts (Quoted SingleQuote lst) = do contents <- inlineListToMarkdown opts lst diff --git a/test/command/1592.md b/test/command/1592.md new file mode 100644 index 000000000..54e59137b --- /dev/null +++ b/test/command/1592.md @@ -0,0 +1,49 @@ +``` +% pandoc -t native +[hi]{.smallcaps} +^D +[Para [SmallCaps [Str "hi"]]] +``` + +``` +% pandoc -t native +[hi]{style="font-variant: small-caps;"} +^D +[Para [SmallCaps [Str "hi"]]] +``` + +``` +% pandoc -t native +<span class="smallcaps">hi</span> +^D +[Para [SmallCaps [Str "hi"]]] +``` + +``` +% pandoc -f html -t native +<p><span class="smallcaps">hi</span></p> +^D +[Para [SmallCaps [Str "hi"]]] +``` + +``` +% pandoc -f html -t native +<p><span style="font-variant:small-caps">hi</span></p> +^D +[Para [SmallCaps [Str "hi"]]] +``` + +``` +% pandoc -f native -t html +[Para [SmallCaps [Str "hi"]]] +^D +<p><span class="smallcaps">hi</span></p> +``` + +``` +pandoc -f native -t markdown +[Para [SmallCaps [Str "hi"]]] +^D +[hi]{.smallcaps} +``` + |