diff options
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index 6cfef0ebe..798661fe3 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -648,6 +648,7 @@ inline = choice , pLineBreak , pLink , pImage + , pBdo , pCode , pCodeWithClass [("samp","sample"),("var","variable")] , pSpan @@ -802,6 +803,18 @@ pCode = try $ do result <- manyTill pAny (pCloses open) return $ B.codeWith (mkAttr attr) $ T.unwords $ T.lines $ innerText result +-- https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdo +-- Bidirectional Text Override +pBdo :: PandocMonad m => TagParser m Inlines +pBdo = try $ do + TagOpen _ attr' <- lookAhead $ pSatisfy $ tagOpen (=="bdo") (const True) + let attr = toStringAttr attr' + contents <- pInTags "bdo" inline + return $ case lookup "dir" attr of + -- Only bdo with a direction matters + Just dir -> B.spanWith ("", [], [("dir",T.toLower dir)]) contents + Nothing -> contents + pSpan :: PandocMonad m => TagParser m Inlines pSpan = try $ do guardEnabled Ext_native_spans |