diff --git a/lib/processor.js b/lib/processor.js index 115d769..c3f4005 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,6 +7,7 @@ const reindent = require('./reindent'); const sourceToLineMap = new Map(); const snippetRegexp = /()([\s\S]*?)<\/\s*?script>/g; +const typeAttrRegexp = /type=['"](.*)['"]/; function preprocess(code, filepath) { const sourceMap = new Map(); @@ -18,6 +19,12 @@ function preprocess(code, filepath) { let currentExtractedCodeLine = 0; const openingTag = match.subMatches[0]; + const typeAttrMatch = openingTag.match(typeAttrRegexp); + + if (typeAttrMatch && typeAttrMatch[1] !== 'text/javascript') { + return []; + } + const reindentData = reindent(match.subMatches[1]); chunkMap.set('indentColumns', reindentData.indentColumns); diff --git a/test/fixtures/html.html b/test/fixtures/html.html index 985f5f4..ea16235 100644 --- a/test/fixtures/html.html +++ b/test/fixtures/html.html @@ -16,5 +16,27 @@ var b = "b" + + + + + + + + diff --git a/test/test.js b/test/test.js index f9baeaa..a7a1279 100644 --- a/test/test.js +++ b/test/test.js @@ -50,6 +50,23 @@ test('html', async (assert) => { assert.deepEqual(messages[3].line, 16); assert.deepEqual(messages[3].column, 13); + assert.deepEqual(messages[4].ruleId, 'indent'); + assert.deepEqual(messages[4].line, 22); + assert.deepEqual(messages[4].column, 5); + assert.deepEqual(messages[5].ruleId, 'quotes'); + assert.deepEqual(messages[5].line, 22); + assert.deepEqual(messages[5].column, 15); + + assert.deepEqual(messages[6].ruleId, 'indent'); + assert.deepEqual(messages[6].line, 27); + assert.deepEqual(messages[6].column, 5); + assert.deepEqual(messages[7].ruleId, 'quotes'); + assert.deepEqual(messages[7].line, 27); + assert.deepEqual(messages[7].column, 15); + + // Assert that is does not report errors for ld+json scripts + assert.deepEqual(messages.length, 8); + assert.end(); });