From: alexlamsl
Date: Thu, 31 Mar 2016 11:26:20 +0000 (+0800)
Subject: enforce eslint array-bracket-spacing
X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=d26e5220469c7bb611abf51fb1be18417e646525;p=html-minifier.git
enforce eslint array-bracket-spacing
---
diff --git a/.eslintrc.json b/.eslintrc.json
index c809c97..7549ed7 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -4,6 +4,10 @@
},
"extends": "eslint:recommended",
"rules": {
+ "array-bracket-spacing": [
+ "error",
+ "always"
+ ],
"block-scoped-var": "error",
"block-spacing": "error",
"brace-style": [
diff --git a/Gruntfile.js b/Gruntfile.js
index 6d646b3..67bdf68 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -33,16 +33,16 @@ module.exports = function(grunt) {
src: 'Gruntfile.js'
},
src: {
- src: ['cli.js', 'src/**/*.js']
+ src: [ 'cli.js', 'src/**/*.js' ]
},
tests: {
- src: ['tests/*.js', 'test.js']
+ src: [ 'tests/*.js', 'test.js' ]
},
web: {
src: 'assets/master.js'
},
other: {
- src: ['backtest.js', 'benchmark.js']
+ src: [ 'backtest.js', 'benchmark.js' ]
}
},
diff --git a/backtest.js b/backtest.js
index 3603ae9..8c4304b 100644
--- a/backtest.js
+++ b/backtest.js
@@ -178,7 +178,7 @@ if (process.argv.length > 2) {
}
else {
process.on('message', function(hash) {
- var paths = ['src', 'benchmark.conf', 'sample-cli-config-file.conf'];
+ var paths = [ 'src', 'benchmark.conf', 'sample-cli-config-file.conf' ];
git('reset', 'HEAD', '--', paths, function() {
var conf = 'sample-cli-config-file.conf';
diff --git a/benchmark.js b/benchmark.js
index 57a5240..550da02 100644
--- a/benchmark.js
+++ b/benchmark.js
@@ -27,8 +27,8 @@ var progress = new Progress('[:bar] :etas :fileName', {
});
var table = new Table({
- head: ['File', 'Before', 'After', 'Minimize', 'Will Peavy', 'htmlcompressor.com', 'Savings', 'Time'],
- colWidths: [20, 25, 25, 25, 25, 25, 20, 10]
+ head: [ 'File', 'Before', 'After', 'Minimize', 'Will Peavy', 'htmlcompressor.com', 'Savings', 'Time' ],
+ colWidths: [ 20, 25, 25, 25, 25, 25, 20, 10 ]
});
function toKb(size) {
@@ -131,7 +131,7 @@ run(fileNames.map(function (fileName) {
brFilePath: path.join('benchmarks/generated/', fileName + '.html.br')
};
var infos = {};
- ['minifier', 'minimize', 'willpeavy', 'compressor'].forEach(function (name) {
+ [ 'minifier', 'minimize', 'willpeavy', 'compressor' ].forEach(function (name) {
infos[name] = {
filePath: path.join('benchmarks/generated/', fileName + '.' + name + '.html'),
gzFilePath: path.join('benchmarks/generated/', fileName + '.' + name + '.html.gz'),
@@ -199,7 +199,7 @@ run(fileNames.map(function (fileName) {
function testHTMLMinifier(done) {
var info = infos.minifier;
info.startTime = Date.now();
- var args = [filePath, '-c', 'sample-cli-config-file.conf', '--minify-urls', urls[fileName], '-o', info.filePath];
+ var args = [ filePath, '-c', 'sample-cli-config-file.conf', '--minify-urls', urls[fileName], '-o', info.filePath ];
fork('./cli', args).on('exit', function () {
readSizes(info, done);
});
@@ -303,12 +303,12 @@ run(fileNames.map(function (fileName) {
testHTMLCompressor
], function () {
var row = [
- [fileName, '+ gzip', '+ lzma', '+ brotli'].join('\n'),
- [redSize(original.size), redSize(original.gzSize), redSize(original.lzSize), redSize(original.brSize)].join('\n')
+ [ fileName, '+ gzip', '+ lzma', '+ brotli' ].join('\n'),
+ [ redSize(original.size), redSize(original.gzSize), redSize(original.lzSize), redSize(original.brSize) ].join('\n')
];
for (var name in infos) {
var info = infos[name];
- row.push([greenSize(info.size), greenSize(info.gzSize), greenSize(info.lzSize), greenSize(info.brSize)].join('\n'));
+ row.push([ greenSize(info.size), greenSize(info.gzSize), greenSize(info.lzSize), greenSize(info.brSize) ].join('\n'));
}
row.push(
[
diff --git a/cli.js b/cli.js
index 1cd4167..fbd6780 100755
--- a/cli.js
+++ b/cli.js
@@ -54,48 +54,48 @@ usage += ' on the command line you must escape those such as --ignore-custom-
cli.setUsage(usage);
var mainOptions = {
- caseSensitive: [[false, 'Treat attributes in case sensitive manner (useful for SVG; e.g. viewBox)']],
- collapseBooleanAttributes: [[false, 'Omit attribute values from boolean attributes']],
- collapseInlineTagWhitespace: [[false, 'Collapse white space around inline tag']],
- collapseWhitespace: [[false, 'Collapse white space that contributes to text nodes in a document tree.']],
- conservativeCollapse: [[false, 'Always collapse to 1 space (never remove it entirely)']],
- customAttrAssign: [[false, 'Arrays of regex\'es that allow to support custom attribute assign expressions (e.g. \'\')', 'string'], 'json-regex'],
- customAttrCollapse: [[false, 'Regex that specifies custom attribute to strip newlines from (e.g. /ng\-class/)', 'string'], 'string-regex'],
- customAttrSurround: [[false, 'Arrays of regex\'es that allow to support custom attribute surround expressions (e.g. )', 'string'], 'json-regex'],
- customEventAttributes: [[false, 'Arrays of regex\'es that allow to support custom event attributes for minifyJS (e.g. ng-click)', 'string'], 'json-regex'],
- html5: [[false, 'Parse input according to HTML5 specifications']],
- ignoreCustomComments: [[false, 'Array of regex\'es that allow to ignore certain comments, when matched', 'string'], 'json-regex'],
- ignoreCustomFragments: [[false, 'Array of regex\'es that allow to ignore certain fragments, when matched (e.g. , {{ ... }})', 'string'], 'json-regex'],
- includeAutoGeneratedTags: [[false, 'Insert tags generated by HTML parser'], true],
- keepClosingSlash: [[false, 'Keep the trailing slash on singleton elements']],
- lint: [[false, 'Toggle linting']],
- maxLineLength: [[false, 'Max line length', 'number'], true],
- minifyCSS: [[false, 'Minify CSS in style elements and style attributes (uses clean-css)']],
- minifyJS: [[false, 'Minify Javascript in script elements and on* attributes (uses UglifyJS)']],
- minifyURLs: [[false, 'Minify URLs in various attributes (uses relateurl)', 'string'], 'site-url'],
- preserveLineBreaks: [[false, 'Always collapse to 1 line break (never remove it entirely) when whitespace between tags include a line break.']],
- preventAttributesEscaping: [[false, 'Prevents the escaping of the values of attributes.']],
- processConditionalComments: [[false, 'Process contents of conditional comments through minifier']],
- processScripts: [[false, 'Array of strings corresponding to types of script elements to process through minifier (e.g. "text/ng-template", "text/x-handlebars-template", etc.)', 'string'], 'json'],
- quoteCharacter: [[false, 'Type of quote to use for attribute values (\' or ")', 'string'], true],
- removeAttributeQuotes: [[false, 'Remove quotes around attributes when possible.']],
- removeComments: [[false, 'Strip HTML comments']],
- removeEmptyAttributes: [[false, 'Remove all attributes with whitespace-only values']],
- removeEmptyElements: [[false, 'Remove all elements with empty contents']],
- removeOptionalTags: [[false, 'Remove unrequired tags']],
- removeRedundantAttributes: [[false, 'Remove attributes when value matches default.']],
- removeScriptTypeAttributes: [[false, 'Remove type="text/javascript" from script tags. Other type attribute values are left intact.']],
- removeStyleLinkTypeAttributes: [[false, 'Remove type="text/css" from style and link tags. Other type attribute values are left intact.']],
- removeTagWhitespace: [[false, 'Remove space between attributes whenever possible.']],
- useShortDoctype: [[false, 'Replaces the doctype with the short (HTML5) doctype']]
+ caseSensitive: [ [ false, 'Treat attributes in case sensitive manner (useful for SVG; e.g. viewBox)' ] ],
+ collapseBooleanAttributes: [ [ false, 'Omit attribute values from boolean attributes' ] ],
+ collapseInlineTagWhitespace: [ [ false, 'Collapse white space around inline tag' ] ],
+ collapseWhitespace: [ [ false, 'Collapse white space that contributes to text nodes in a document tree.' ] ],
+ conservativeCollapse: [ [ false, 'Always collapse to 1 space (never remove it entirely)' ] ],
+ customAttrAssign: [ [ false, 'Arrays of regex\'es that allow to support custom attribute assign expressions (e.g. \'\')', 'string' ], 'json-regex' ],
+ customAttrCollapse: [ [ false, 'Regex that specifies custom attribute to strip newlines from (e.g. /ng\-class/)', 'string' ], 'string-regex' ],
+ customAttrSurround: [ [ false, 'Arrays of regex\'es that allow to support custom attribute surround expressions (e.g. )', 'string' ], 'json-regex' ],
+ customEventAttributes: [ [ false, 'Arrays of regex\'es that allow to support custom event attributes for minifyJS (e.g. ng-click)', 'string' ], 'json-regex' ],
+ html5: [ [ false, 'Parse input according to HTML5 specifications' ] ],
+ ignoreCustomComments: [ [ false, 'Array of regex\'es that allow to ignore certain comments, when matched', 'string' ], 'json-regex' ],
+ ignoreCustomFragments: [ [ false, 'Array of regex\'es that allow to ignore certain fragments, when matched (e.g. , {{ ... }})', 'string' ], 'json-regex' ],
+ includeAutoGeneratedTags: [ [ false, 'Insert tags generated by HTML parser' ], true ],
+ keepClosingSlash: [ [ false, 'Keep the trailing slash on singleton elements' ] ],
+ lint: [ [ false, 'Toggle linting' ] ],
+ maxLineLength: [ [ false, 'Max line length', 'number' ], true ],
+ minifyCSS: [ [ false, 'Minify CSS in style elements and style attributes (uses clean-css)' ] ],
+ minifyJS: [ [ false, 'Minify Javascript in script elements and on* attributes (uses UglifyJS)' ] ],
+ minifyURLs: [ [ false, 'Minify URLs in various attributes (uses relateurl)', 'string' ], 'site-url' ],
+ preserveLineBreaks: [ [ false, 'Always collapse to 1 line break (never remove it entirely) when whitespace between tags include a line break.' ] ],
+ preventAttributesEscaping: [ [ false, 'Prevents the escaping of the values of attributes.' ] ],
+ processConditionalComments: [ [ false, 'Process contents of conditional comments through minifier' ] ],
+ processScripts: [ [ false, 'Array of strings corresponding to types of script elements to process through minifier (e.g. "text/ng-template", "text/x-handlebars-template", etc.)', 'string' ], 'json' ],
+ quoteCharacter: [ [ false, 'Type of quote to use for attribute values (\' or ")', 'string' ], true ],
+ removeAttributeQuotes: [ [ false, 'Remove quotes around attributes when possible.' ] ],
+ removeComments: [ [ false, 'Strip HTML comments' ] ],
+ removeEmptyAttributes: [ [ false, 'Remove all attributes with whitespace-only values' ] ],
+ removeEmptyElements: [ [ false, 'Remove all elements with empty contents' ] ],
+ removeOptionalTags: [ [ false, 'Remove unrequired tags' ] ],
+ removeRedundantAttributes: [ [ false, 'Remove attributes when value matches default.' ] ],
+ removeScriptTypeAttributes: [ [ false, 'Remove type="text/javascript" from script tags. Other type attribute values are left intact.' ] ],
+ removeStyleLinkTypeAttributes: [ [ false, 'Remove type="text/css" from style and link tags. Other type attribute values are left intact.' ] ],
+ removeTagWhitespace: [ [ false, 'Remove space between attributes whenever possible.' ] ],
+ useShortDoctype: [ [ false, 'Replaces the doctype with the short (HTML5) doctype' ] ]
};
var cliOptions = {
- version: ['v', 'Version information'],
- output: ['o', 'Specify output file (if not specified STDOUT will be used for output)', 'file'],
- 'config-file': ['c', 'Use config file', 'file'],
- 'input-dir': [false, 'Specify an input directory', 'dir'],
- 'output-dir': [false, 'Specify an output directory', 'dir']
+ version: [ 'v', 'Version information' ],
+ output: [ 'o', 'Specify output file (if not specified STDOUT will be used for output)', 'file' ],
+ 'config-file': [ 'c', 'Use config file', 'file' ],
+ 'input-dir': [ false, 'Specify an input directory', 'dir' ],
+ 'output-dir': [ false, 'Specify an output directory', 'dir' ]
};
var mainOptionKeys = Object.keys(mainOptions);
@@ -146,7 +146,7 @@ cli.main(function(args, options) {
catch (e) {
cli.fatal('Could not parse JSON value \'' + value + '\'');
}
- return Array.isArray(jsonArray) ? jsonArray : [value];
+ return Array.isArray(jsonArray) ? jsonArray : [ value ];
}
}
diff --git a/dist/htmlminifier.js b/dist/htmlminifier.js
index 0029afa..ce7e769 100644
--- a/dist/htmlminifier.js
+++ b/dist/htmlminifier.js
@@ -32344,7 +32344,7 @@ function processOptions(options) {
options.includeAutoGeneratedTags = true;
}
- var defaultTesters = ['canCollapseWhitespace', 'canTrimWhitespace'];
+ var defaultTesters = [ 'canCollapseWhitespace', 'canTrimWhitespace' ];
for (var i = 0, len = defaultTesters.length; i < len; i++) {
if (!options[defaultTesters[i]]) {
options[defaultTesters[i]] = function() {
diff --git a/src/htmlminifier.js b/src/htmlminifier.js
index 43dbaed..b4d07e8 100644
--- a/src/htmlminifier.js
+++ b/src/htmlminifier.js
@@ -583,7 +583,7 @@ function processOptions(options) {
options.includeAutoGeneratedTags = true;
}
- var defaultTesters = ['canCollapseWhitespace', 'canTrimWhitespace'];
+ var defaultTesters = [ 'canCollapseWhitespace', 'canTrimWhitespace' ];
for (var i = 0, len = defaultTesters.length; i < len; i++) {
if (!options[defaultTesters[i]]) {
options[defaultTesters[i]] = function() {
diff --git a/test.js b/test.js
index e7d5e52..7d8c0da 100644
--- a/test.js
+++ b/test.js
@@ -7,7 +7,7 @@ testrunner.options.log.tests = false;
testrunner.options.log.assertions = false;
testrunner.run({
- deps: ['./src/htmlparser.js', './src/htmllint.js'],
+ deps: [ './src/htmlparser.js', './src/htmllint.js' ],
code: './src/htmlminifier.js',
tests: [
'./tests/lint.js',
diff --git a/tests/inject.js b/tests/inject.js
index 54fd80b..902a4e3 100644
--- a/tests/inject.js
+++ b/tests/inject.js
@@ -1,5 +1,5 @@
'use strict';
QUnit.done(function(details) {
- alert(JSON.stringify(['qunit.done', details]));
+ alert(JSON.stringify([ 'qunit.done', details ]));
});
diff --git a/tests/minifier.js b/tests/minifier.js
index 556c4d4..79b9550 100644
--- a/tests/minifier.js
+++ b/tests/minifier.js
@@ -2245,33 +2245,33 @@ test('auto-generated tags', function() {
test('tests from PHPTAL', function() {
[
// trailing
removed by minifier, but not by PHPTAL
- ['foo bar baz', '
foo \t bar\n\n\n baz
'],
- ['foo bar
\tfoo\t \nbar
', 'foo \t\n bar
\tfoo\t \nbar
'],
- ['foo bar baz', '
foo bar baz
'],
- ['foo bar baz', '
foo bar baz
'],
- ['foo bar baz', '
foo bar baz
'],
- ['foo bar baz', '
foo bar baz
'],
- ['foo
', '
foo
'],
+ [ 'foo bar baz', '
foo \t bar\n\n\n baz
' ],
+ [ 'foo bar
\tfoo\t \nbar
', 'foo \t\n bar
\tfoo\t \nbar
' ],
+ [ 'foo bar baz', '
foo bar baz
' ],
+ [ 'foo bar baz', '
foo bar baz
' ],
+ [ 'foo bar baz', '
foo bar baz
' ],
+ [ 'foo bar baz', '
foo bar baz
' ],
+ [ 'foo
', '
foo
' ],
// PHPTAL remove whitespace after 'foo' - problematic if is used as icon font
- ['foo ', '
foo
'],
- ['foo ', '
foo
'],
+ [ 'foo ', '
foo
' ],
+ [ 'foo ', '
foo
' ],
// comments removed by minifier, but not by PHPTAL
- ['foo', '
foo
'],
- ['', ''],
+ [ 'foo', '
foo
' ],
+ [ '', '' ],
// unary slashes removed by minifier, but not by PHPTAL
- ['', ''],
- ['x
', ' x
'],
- ['x
y
', ' x
y
'],
- [' y
', ' y
'],
- ['', '
'],
- ['x
', ' x
'],
- ['x y
', ' x y
'],
- [' y
', ' y
'],
- ['', '
'],
- ['x
', ' x
'],
- ['x y
', ' x y
'],
- [' y
', ' y
'],
- ['', ''],
+ [ '', '' ],
+ [ 'x
', ' x
' ],
+ [ 'x
y
', ' x
y
' ],
+ [ ' y
', ' y
' ],
+ [ '', '
' ],
+ [ 'x
', ' x
' ],
+ [ 'x y
', ' x y
' ],
+ [ ' y
', ' y
' ],
+ [ '', '
' ],
+ [ 'x
', ' x
' ],
+ [ 'x y
', ' x y
' ],
+ [ ' y
', ' y
' ],
+ [ '', '' ],
// optional tags removed by minifier, but not by PHPTAL
// parser cannot handle
[
@@ -2282,23 +2282,23 @@ test('tests from PHPTAL', function() {
' > \n' +
'