diff options
author | John MacFarlane <jgm@berkeley.edu> | 2019-03-25 08:43:59 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2019-03-25 08:43:59 -0700 |
commit | 052684712b8a36854c622468f5d4ddd367199c1c (patch) | |
tree | d5bdf4faa964cbcfa18aaa7b9fab84b53bf49b22 | |
parent | e91af0a8a32d68af4c533fdf4b7caaafade577ef (diff) | |
download | pandoc-052684712b8a36854c622468f5d4ddd367199c1c.tar.gz |
HTML reader: read `data-foo` attribute into `foo`.
The HTML writer adds the `data-` prefix for HTML5
for nonstandard attributes. But the attributes are
represented in the AST without the `data-` prefix,
so we should strip this when reading HTML.
Closes #5392.
-rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 3 | ||||
-rw-r--r-- | test/Tests/Readers/HTML.hs | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index 45af20ca8..dfc31f7af 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -807,7 +807,8 @@ mathMLToTeXMath s = writeTeX <$> readMathML s toStringAttr :: [(Text, Text)] -> [(String, String)] toStringAttr = map go - where go (x,y) = (T.unpack x, T.unpack y) + where go (x,y) = (T.unpack (fromMaybe x $ T.stripPrefix "data-" x), + T.unpack y) pScriptMath :: PandocMonad m => TagParser m Inlines pScriptMath = try $ do diff --git a/test/Tests/Readers/HTML.hs b/test/Tests/Readers/HTML.hs index 69078d955..be5178e07 100644 --- a/test/Tests/Readers/HTML.hs +++ b/test/Tests/Readers/HTML.hs @@ -83,7 +83,7 @@ tests = [ testGroup "base tag" , test htmlNativeDivs "<main role=X> becomes <div role=X>" $ "<main role=foobar>hello</main>" =?> doc (divWith ("", [], [("role", "foobar")]) (plain (text "hello"))) , test htmlNativeDivs "<main> has attributes preserved" $ "<main id=foo class=bar data-baz=qux>hello</main>" =?> - doc (divWith ("foo", ["bar"], [("role", "main"), ("data-baz", "qux")]) (plain (text "hello"))) + doc (divWith ("foo", ["bar"], [("role", "main"), ("baz", "qux")]) (plain (text "hello"))) , test htmlNativeDivs "<main> closes <p>" $ "<p>hello<main>main content</main>" =?> doc (para (text "hello") <> divWith ("", [], [("role", "main")]) (plain (text "main content"))) , test htmlNativeDivs "<main> followed by text" $ "<main>main content</main>non-main content" =?> |