From bae8eecdb821b80f4bfc6555b477fa340c3de0f6 Mon Sep 17 00:00:00 2001 From: ache Date: Mon, 16 Dec 2019 17:41:06 +0100 Subject: Better attribut name convention --- __tests__/index.js | 39 +++++++++++++++++++++++++++++++++++++++ dist/index.js | 2 +- src/index.js | 2 +- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/__tests__/index.js b/__tests__/index.js index fd55430..d6f1ed9 100644 --- a/__tests__/index.js +++ b/__tests__/index.js @@ -190,5 +190,44 @@ 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

`)); + + t.notDeepEqual(parse(contents), parse(`

Wait ! +This is a test image : test

`)); +}); + +test('global custom attributes 2', t => { + const renderExtended = generateExtendParser({extends: {image: ['quality']}}); + const extentedString = `*Wait* ! +This is a test image : ![test](img.jpg){data-id-node=2} +`; + const {contents} = renderExtended(extentedString); + t.deepEqual(parse(contents), parse(`

Wait ! +This is a test image : test

`)); + + t.notDeepEqual(parse(contents), parse(`

Wait ! +This is a test image : test

`)); +}); + +test('global custom attributes 3', 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

`)); +}); + +test('global custom attributes 4', t => { + const renderExtended = generateExtendParser({extends: {image: ['quality']}}); + const extentedString = `*Wait* ! +This is a test image : ![test](img.jpg){data-i=2} +`; + const {contents} = renderExtended(extentedString); + t.deepEqual(parse(contents), parse(`

Wait ! +This is a test image : test

`)); + + t.notDeepEqual(parse(contents), parse(`

Wait ! +This is a test image : test

`)); }); diff --git a/dist/index.js b/dist/index.js index e5782b4..b857126 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]{2,24}$/) || p.match(/^data-[a-z]{2,24}$/); + return htmlElemAttr['*'].indexOf(p) >= 0 || p.match(/^aria-[a-z][a-z.-_0-9]*$/) || p.match(/^data-[a-z][a-z_.-0-9]*$/); }; var inScope = function inScope(_) { diff --git a/src/index.js b/src/index.js index 3d8728b..9f5fd12 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]{2,24}$/) || p.match(/^data-[a-z]{2,24}$/); + const isGlobal = p => htmlElemAttr['*'].indexOf(p) >= 0 || p.match(/^aria-[a-z][a-z.-_0-9]*$/) || p.match(/^data-[a-z][a-z_.-0-9]*$/); let inScope = _ => false; -- cgit v1.2.3