From 1f7a9066bc69292c9f62538c9c042a2df746e0f0 Mon Sep 17 00:00:00 2001 From: ache Date: Sun, 15 Dec 2019 19:24:47 +0100 Subject: Support for custom data attributes --- __tests__/index.js | 10 ++++++++++ dist/index.js | 2 +- src/index.js | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/__tests__/index.js b/__tests__/index.js index f6d265e..fd55430 100644 --- a/__tests__/index.js +++ b/__tests__/index.js @@ -182,3 +182,13 @@ This is an awesome code `)); }); +test('global custom attribute', t => { + const renderExtended = generateExtendParser({extends: {image: ['quality']}}); + const extentedString = `*Wait* ! +This is a test image : ![test](img.jpg){data-id=2} +`; + const {contents} = renderExtended(extentedString); + t.deepEqual(parse(contents), parse(`

Wait ! +This is a test image : test

`)); +}); + diff --git a/dist/index.js b/dist/index.js index c4ab6f6..e5782b4 100644 --- a/dist/index.js +++ b/dist/index.js @@ -128,7 +128,7 @@ function filterAttributes(prop, config, type) { }; var isGlobal = function isGlobal(p) { - return htmlElemAttr['*'].indexOf(p) >= 0 || p.match(/^aria-[a-z]{3,24}$/); + return htmlElemAttr['*'].indexOf(p) >= 0 || p.match(/^aria-[a-z]{2,24}$/) || p.match(/^data-[a-z]{2,24}$/); }; var inScope = function inScope(_) { diff --git a/src/index.js b/src/index.js index 6b8a9de..3d8728b 100644 --- a/src/index.js +++ b/src/index.js @@ -114,7 +114,7 @@ function filterAttributes(prop, config, type) { const isDangerous = p => DOMEventHandler.indexOf(p) >= 0; const isSpecific = p => type in specific && specific[type].indexOf(p) >= 0; - const isGlobal = p => htmlElemAttr['*'].indexOf(p) >= 0 || p.match(/^aria-[a-z]{3,24}$/); + const isGlobal = p => htmlElemAttr['*'].indexOf(p) >= 0 || p.match(/^aria-[a-z]{2,24}$/) || p.match(/^data-[a-z]{2,24}$/); let inScope = _ => false; -- cgit v1.2.3