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 "" + 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 +hi +^D +[Para [SmallCaps [Str "hi"]]] +``` + +``` +% pandoc -f html -t native +
hi
+^D +[Para [SmallCaps [Str "hi"]]] +``` + +``` +% pandoc -f html -t native +hi
+^D +[Para [SmallCaps [Str "hi"]]] +``` + +``` +% pandoc -f native -t html +[Para [SmallCaps [Str "hi"]]] +^D +hi
+``` + +``` +pandoc -f native -t markdown +[Para [SmallCaps [Str "hi"]]] +^D +[hi]{.smallcaps} +``` +