aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/HTML.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Readers/HTML.hs')
-rw-r--r--src/Text/Pandoc/Readers/HTML.hs15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs
index 697a3aa9d..e03ac6a97 100644
--- a/src/Text/Pandoc/Readers/HTML.hs
+++ b/src/Text/Pandoc/Readers/HTML.hs
@@ -719,10 +719,17 @@ pSubscript :: PandocMonad m => TagParser m Inlines
pSubscript = pInlinesInTags "sub" B.subscript
pSpanLike :: PandocMonad m => TagParser m Inlines
-pSpanLike = Set.foldr
- (\tag acc -> acc <|> pInlinesInTags tag (B.spanWith ("",[T.unpack tag],[])))
- mzero
- htmlSpanLikeElements
+pSpanLike =
+ Set.foldr
+ (\tagName acc -> acc <|> parseTag tagName)
+ mzero
+ htmlSpanLikeElements
+ where
+ parseTag tagName = do
+ TagOpen _ attrs <- pSatisfy $ tagOpenLit tagName (const True)
+ let (ids, cs, kvs) = mkAttr . toStringAttr $ attrs
+ content <- mconcat <$> manyTill inline (pCloses tagName <|> eof)
+ return $ B.spanWith (ids, T.unpack tagName : cs, kvs) content
pSmall :: PandocMonad m => TagParser m Inlines
pSmall = pInlinesInTags "small" (B.spanWith ("",["small"],[]))