Kaynağa Gözat

fixed rules generation

Gildas 7 yıl önce
ebeveyn
işleme
0dbd9b614a
1 değiştirilmiş dosya ile 14 ekleme ve 11 silme
  1. 14 11
      lib/single-file/html-images-minifier.js

+ 14 - 11
lib/single-file/html-images-minifier.js

@@ -75,18 +75,21 @@ this.imagesMinifier = this.imagesMinifier || (() => {
 			if (tagName == "img" || tagName == "svg") {
 				elementInfo.forEach(selectorInfo => {
 					if (selectorInfo.selector) {
-						let selector = JSON.parse(JSON.stringify(selectorInfo.selector));
-						selector.push({
-							type: "pseudo",
-							name: "not",
-							data: [[SINGLE_FILE_SELECTOR]]
-						});
 						const selectors = matchedImageSelectors.get(selectorInfo.ruleInfo.cssRule.selectorText) || JSON.parse(JSON.stringify(selectorInfo.ruleInfo.selectors));
-						selectors[selectorInfo.selectorIndex] = selector;
-						selector = JSON.parse(JSON.stringify(selectorInfo.selector));
-						selector.push(SINGLE_FILE_SELECTOR);
-						selectors.push(selector);
-						matchedImageSelectors.set(selectorInfo.ruleInfo.cssRule.selectorText, selectors);
+						const selectorIndex = selectorInfo.ruleInfo.selectors.indexOf(selectorInfo.selector)
+						if (selectorIndex != -1 && !selectors[selectorIndex].transformed) {
+							let selector = JSON.parse(JSON.stringify(selectorInfo.selector));
+							selector.push({
+								type: "pseudo",
+								name: "not",
+								data: [[SINGLE_FILE_SELECTOR]]
+							});
+							selector.transformed = true;
+							selectors[selectorIndex] = selector;
+							selector = JSON.parse(JSON.stringify(selectorInfo.selector));
+							selectors.push(selector);
+							matchedImageSelectors.set(selectorInfo.ruleInfo.cssRule.selectorText, selectors);
+						}
 					}
 				});
 			}