feat: remove extra spaces in attribute selector (#3794)

This commit is contained in:
Evilebot Tnawi authored and Jed Fox committed 2018-01-23 10:30:20 -05:00
1 parent 3bc3e801c8
commit b2e8c6d374
7 files changed
+255 -7

No files matched your search

+7 -3
View File
@@ -61,9 +61,13 @@ function clean(ast, newObj) {
newObj.importPath = cleanCSSStrings(newObj.importPath);
}
if (ast.type === "selector-attribute" && newObj.value) {
newObj.value = newObj.value.replace(/^['"]|['"]$/g, "");
delete newObj.quoted;
if (ast.type === "selector-attribute") {
newObj.attribute = newObj.attribute.replace(/ /g, "");
if (newObj.value) {
newObj.value = newObj.value.trim().replace(/^['"]|['"]$/g, "");
delete newObj.quoted;
}
}
if (
+2 -2
View File
@@ -249,10 +249,10 @@ function genericPrint(path, options, print) {
case "selector-attribute": {
return concat([
"[",
n.attribute,
n.attribute.trim(),
n.operator ? n.operator : "",
n.value
? quoteAttributeValue(adjustStrings(n.value, options), options)
? quoteAttributeValue(adjustStrings(n.value.trim(), options), options)
: "",
n.insensitive ? " i" : "",
"]"
@@ -3,18 +3,26 @@
exports[`insensitive.css 1`] = `
input[type="radio" i] {
}
img[alt~="person" i][src*="lorem" i] {
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
input[type="radio" i] {
}
img[alt~="person" i][src*="lorem" i] {
}
`;
exports[`insensitive.css 2`] = `
input[type="radio" i] {
}
img[alt~="person" i][src*="lorem" i] {
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
input[type='radio' i] {
}
img[alt~='person' i][src*='lorem' i] {
}
`;
@@ -23,6 +31,7 @@ a[id=test] {}
a[id="test"] {}
a[id='test'] {}
a[id=func("foo")] {}
a[class="(╯°□°)╯︵ ┻━┻"]{}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a[id="test"] {
}
@@ -32,6 +41,8 @@ a[id="test"] {
}
a[id=func("foo")] {
}
a[class="(╯°□°)╯︵ ┻━┻"] {
}
`;
@@ -40,6 +51,7 @@ a[id=test] {}
a[id="test"] {}
a[id='test'] {}
a[id=func("foo")] {}
a[class="(╯°□°)╯︵ ┻━┻"]{}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a[id='test'] {
}
@@ -49,5 +61,203 @@ a[id='test'] {
}
a[id=func('foo')] {
}
a[class='(╯°□°)╯︵ ┻━┻'] {
}
`;
exports[`spaces.css 1`] = `
[lang] {}
[ lang] {}
[lang ] {}
[ lang ] {}
[ lang ] {}
span[lang] {}
span[ lang] {}
span[lang ] {}
span[ lang ] {}
span[ lang ] {}
span[lang='pt'] {}
span[lang ='pt'] {}
span[lang= 'pt'] {}
span[lang = 'pt'] {}
span[lang = 'pt'] {}
span[lang='pt' ] {}
span[lang='pt' ] {}
span[ lang ~= 'en-us' ] {}
span[ lang ~= 'en-us' ] {}
span[ lang |='zh' ] {}
a[ href ^= '#' ] {}
a[ href $= '.cn' ] {}
a[ href *= 'example' ] {}
input[ type = 'radio' i ] {}
input[ type = 'radio' i ] {}
input[ type ~= 'radio' i ] {}
input[ type ~= 'radio' i ] {}
img[ alt = 'person' ][ src = 'lorem' ] {}
img[ alt = 'person' ][ src = 'lorem' ] {}
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[lang] {
}
[lang] {
}
[lang] {
}
[lang] {
}
[lang] {
}
span[lang] {
}
span[lang] {
}
span[lang] {
}
span[lang] {
}
span[lang] {
}
span[lang="pt"] {
}
span[lang="pt"] {
}
span[lang="pt"] {
}
span[lang="pt"] {
}
span[lang="pt"] {
}
span[lang="pt"] {
}
span[lang="pt"] {
}
span[lang~="en-us"] {
}
span[lang~="en-us"] {
}
span[lang|="zh"] {
}
a[href^="#"] {
}
a[href$=".cn"] {
}
a[href*="example"] {
}
input[type="radio" i] {
}
input[type="radio" i] {
}
input[type~="radio" i] {
}
input[type~="radio" i] {
}
img[alt="person"][src="lorem"] {
}
img[alt="person"][src="lorem"] {
}
img[alt~="person"][src*="lorem"] {
}
img[alt~="person"][src*="lorem"] {
}
`;
exports[`spaces.css 2`] = `
[lang] {}
[ lang] {}
[lang ] {}
[ lang ] {}
[ lang ] {}
span[lang] {}
span[ lang] {}
span[lang ] {}
span[ lang ] {}
span[ lang ] {}
span[lang='pt'] {}
span[lang ='pt'] {}
span[lang= 'pt'] {}
span[lang = 'pt'] {}
span[lang = 'pt'] {}
span[lang='pt' ] {}
span[lang='pt' ] {}
span[ lang ~= 'en-us' ] {}
span[ lang ~= 'en-us' ] {}
span[ lang |='zh' ] {}
a[ href ^= '#' ] {}
a[ href $= '.cn' ] {}
a[ href *= 'example' ] {}
input[ type = 'radio' i ] {}
input[ type = 'radio' i ] {}
input[ type ~= 'radio' i ] {}
input[ type ~= 'radio' i ] {}
img[ alt = 'person' ][ src = 'lorem' ] {}
img[ alt = 'person' ][ src = 'lorem' ] {}
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[lang] {
}
[lang] {
}
[lang] {
}
[lang] {
}
[lang] {
}
span[lang] {
}
span[lang] {
}
span[lang] {
}
span[lang] {
}
span[lang] {
}
span[lang='pt'] {
}
span[lang='pt'] {
}
span[lang='pt'] {
}
span[lang='pt'] {
}
span[lang='pt'] {
}
span[lang='pt'] {
}
span[lang='pt'] {
}
span[lang~='en-us'] {
}
span[lang~='en-us'] {
}
span[lang|='zh'] {
}
a[href^='#'] {
}
a[href$='.cn'] {
}
a[href*='example'] {
}
input[type='radio' i] {
}
input[type='radio' i] {
}
input[type~='radio' i] {
}
input[type~='radio' i] {
}
img[alt='person'][src='lorem'] {
}
img[alt='person'][src='lorem'] {
}
img[alt~='person'][src*='lorem'] {
}
img[alt~='person'][src*='lorem'] {
}
`;
+2
View File
@@ -1,2 +1,4 @@
input[type="radio" i] {
}
img[alt~="person" i][src*="lorem" i] {
}
+1
View File
@@ -2,3 +2,4 @@ a[id=test] {}
a[id="test"] {}
a[id='test'] {}
a[id=func("foo")] {}
a[class="(╯°□°)╯︵ ┻━┻"]{}
+31
View File
@@ -0,0 +1,31 @@
[lang] {}
[ lang] {}
[lang ] {}
[ lang ] {}
[ lang ] {}
span[lang] {}
span[ lang] {}
span[lang ] {}
span[ lang ] {}
span[ lang ] {}
span[lang='pt'] {}
span[lang ='pt'] {}
span[lang= 'pt'] {}
span[lang = 'pt'] {}
span[lang = 'pt'] {}
span[lang='pt' ] {}
span[lang='pt' ] {}
span[ lang ~= 'en-us' ] {}
span[ lang ~= 'en-us' ] {}
span[ lang |='zh' ] {}
a[ href ^= '#' ] {}
a[ href $= '.cn' ] {}
a[ href *= 'example' ] {}
input[ type = 'radio' i ] {}
input[ type = 'radio' i ] {}
input[ type ~= 'radio' i ] {}
input[ type ~= 'radio' i ] {}
img[ alt = 'person' ][ src = 'lorem' ] {}
img[ alt = 'person' ][ src = 'lorem' ] {}
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
@@ -8,11 +8,11 @@ exports[`attr-selector.css 1`] = `
[ class*="test" ]{
color: silver}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ data-sizes~="m:0" ] {
[data-sizes~="m:0"] {
color: pink;
}
[ class*="test" ] {
[class*="test"] {
color: silver;
}