diff options
-rw-r--r-- | __tests__/index.js | 28 | ||||
-rw-r--r-- | src/dom-event-handler.js | 67 | ||||
-rw-r--r-- | src/index.js | 25 |
3 files changed, 82 insertions, 38 deletions
diff --git a/__tests__/index.js b/__tests__/index.js index 7476477..355bc80 100644 --- a/__tests__/index.js +++ b/__tests__/index.js @@ -43,7 +43,7 @@ const generateExtendParser = extendsOptions => text => unified() const parse = x => parse5.parse(x); -const mainTestString = `Inline *test*{style="em:4"} paragraph. Use **multiple**{ style="color:pink"} inline ~~block~~ tag. Line \`tagCode\`{ style="color:yellow"}.`; +const mainTestString = 'Inline *test*{style="em:4"} paragraph. Use **multiple**{ style="color:pink"} inline ~~block~~ tag. Line `tagCode`{ style="color:yellow"}.'; test('basic-default', t => { const {contents} = renderDefault(mainTestString); @@ -64,7 +64,7 @@ test('basic-raw', t => { test('em', t => { const {contents} = render('textexamplenointerest **Important**{style=4em} still no interest'); - t.deepEqual(parse(contents), parse(`<p>textexamplenointerest <strong style="4em">Important</strong> still no interest</p>`)); + t.deepEqual(parse(contents), parse('<p>textexamplenointerest <strong style="4em">Important</strong> still no interest</p>')); }); test('readme-default', t => { @@ -114,36 +114,36 @@ This is an awesome image : <img src="aws://image.jpg" alt="Awesome image" qualit }); test('extended-global', t => { - const renderExtended = generateExtendParser({extend: {'*': ['exAttr']}}); - const globalString = ` *Wait* ! You are **beautiful**{ exAttr="true" } !`; + const renderExtended = generateExtendParser({extend: {'*': ['ex-attr']}}); + const globalString = ' *Wait* ! You are **beautiful**{ ex-attr="true" } !'; const {contents} = renderExtended(globalString); - t.deepEqual(parse(contents), parse(`<p> <em>Wait</em> ! You are <strong ex-attr="true">beautiful</strong> !</p>`)); + t.deepEqual(parse(contents), parse('<p> <em>Wait</em> ! You are <strong ex-attr="true">beautiful</strong> !</p>')); }); test('extended-invalid-scope', t => { - const renderExtended = generateExtendParser({scope: 'invalid', extend: {strong: ['exAttr']}}); - const invalidString = `*Wait* ! You are **beautiful**{ exAttr="true" onload="qdss" pss="NOK" } !`; + const renderExtended = generateExtendParser({scope: 'invalid', extend: {strong: ['ex-attr']}}); + const invalidString = '*Wait* ! You are **beautiful**{ ex-attr="true" onload="qdss" pss="NOK" } !'; const {contents} = renderExtended(invalidString); - t.deepEqual(parse(contents), parse(`<p><em>Wait</em> ! You are <strong ex-attr="true">beautiful</strong> !</p>`)); + t.deepEqual(parse(contents), parse('<p><em>Wait</em> ! You are <strong ex-attr="true">beautiful</strong> !</p>')); }); test('invalid-scope', t => { const renderExtended = generateExtendParser({extend: 'exAttr'}); - const invalidString = ` *Wait* ! I **love**{ exAttr="true" onload="qdss" pss="NOK" } you !`; + const invalidString = ' *Wait* ! I **love**{ exAttr="true" onload="qdss" pss="NOK" } you !'; const {contents} = renderExtended(invalidString); - t.deepEqual(parse(contents), parse(`<p> <em>Wait</em> ! I <strong>love</strong> you !</p>`)); + t.deepEqual(parse(contents), parse('<p> <em>Wait</em> ! I <strong>love</strong> you !</p>')); }); test('invalid-extend', t => { const renderExtended = generateExtendParser({extend: 'exAttr'}); - const invalidString = ` *Wait* ! I **love**{ exAttr="true" onload="qdss" attr="NOK" style="color: red;"} you!`; + const invalidString = ' *Wait* ! I **love**{ exAttr="true" onload="qdss" attr="NOK" style="color: red;"} you!'; const {contents} = renderExtended(invalidString); - t.deepEqual(parse(contents), parse(`<p> <em>Wait</em> ! I <strong style="color: red;">love</strong> you!</p>`)); + t.deepEqual(parse(contents), parse('<p> <em>Wait</em> ! I <strong style="color: red;">love</strong> you!</p>')); }); test('global-aria', t => { - const invalidString = ` *Wait* ! I **love**{ style="color: pink;" aria-love="true" } you!`; + const invalidString = ' *Wait* ! I **love**{ style="color: pink;" aria-love="true" } you!'; const {contents} = renderDefault(invalidString); - t.deepEqual(parse(contents), parse(`<p> <em>Wait</em> ! I <strong style="color: pink;" aria-love="true">love</strong> you!</p>`)); + t.deepEqual(parse(contents), parse('<p> <em>Wait</em> ! I <strong style="color: pink;" aria-love="true">love</strong> you!</p>')); }); diff --git a/src/dom-event-handler.js b/src/dom-event-handler.js new file mode 100644 index 0000000..dc4f3bd --- /dev/null +++ b/src/dom-event-handler.js @@ -0,0 +1,67 @@ +'use strict'; + +module.export = [ + 'onabort', + 'onautocomplete', + 'onautocompleteerror', + 'onblur', + 'oncancel', + 'oncanplay', + 'oncanplaythrough', + 'onchange', + 'onclick', + 'onclose', + 'oncontextmenu', + 'oncuechange', + 'ondblclick', + 'ondrag', + 'ondragend', + 'ondragenter', + 'ondragexit', + 'ondragleave', + 'ondragover', + 'ondragstart', + 'ondrop', + 'ondurationchange', + 'onemptied', + 'onended', + 'onerror', + 'onfocus', + 'oninput', + 'oninvalid', + 'onkeydown', + 'onkeypress', + 'onkeyup', + 'onload', + 'onloadeddata', + 'onloadedmetadata', + 'onloadstart', + 'onmousedown', + 'onmouseenter', + 'onmouseleave', + 'onmousemove', + 'onmouseout', + 'onmouseover', + 'onmouseup', + 'onmousewheel', + 'onpause', + 'onplay', + 'onplaying', + 'onprogress', + 'onratechange', + 'onreset', + 'onresize', + 'onscroll', + 'onseeked', + 'onseeking', + 'onselect', + 'onshow', + 'onsort', + 'onstalled', + 'onsubmit', + 'onsuspend', + 'ontimeupdate', + 'ontoggle', + 'onvolumechange', + 'onwaiting', +]; diff --git a/src/index.js b/src/index.js index 2bc6142..d9b563a 100644 --- a/src/index.js +++ b/src/index.js @@ -6,30 +6,7 @@ const htmlElemAttr = require('html-element-attributes'); const supportedElements = ['link', 'atxHeading', 'strong', 'emphasis', 'deletion', 'code', 'setextHeading']; const blockElements = ['atxHeading', 'setextHeading']; -// The list of DOM Event handler -const DOMEventHandler = [ - 'onabort', 'onautocomplete', 'onautocompleteerror', - 'onblur', 'oncancel', 'oncanplay', - 'oncanplaythrough', 'onchange', 'onclick', - 'onclose', 'oncontextmenu', 'oncuechange', - 'ondblclick', 'ondrag', 'ondragend', - 'ondragenter', 'ondragexit', 'ondragleave', - 'ondragover', 'ondragstart', 'ondrop', - 'ondurationchange', 'onemptied', 'onended', - 'onerror', 'onfocus', 'oninput', - 'oninvalid', 'onkeydown', 'onkeypress', - 'onkeyup', 'onload', 'onloadeddata', - 'onloadedmetadata', 'onloadstart', 'onmousedown', - 'onmouseenter', 'onmouseleave', 'onmousemove', - 'onmouseout', 'onmouseover', 'onmouseup', - 'onmousewheel', 'onpause', 'onplay', - 'onplaying', 'onprogress', 'onratechange', - 'onreset', 'onresize', 'onscroll', - 'onseeked', 'onseeking', 'onselect', - 'onshow', 'onsort', 'onstalled', - 'onsubmit', 'onsuspend', 'ontimeupdate', - 'ontoggle', 'onvolumechange', 'onwaiting', -]; +const DOMEventHandler = require('./dom-event-handler.js'); /* Table convertion between type and HTML tagName */ const convTypeTag = { |