浏览代码

avoid computing unused fonts if a CSS variable is found

Gildas 7 年之前
父节点
当前提交
253ed30393
共有 1 个文件被更改,包括 8 次插入2 次删除
  1. 8 2
      lib/single-file/css-fonts-minifier.js

+ 8 - 2
lib/single-file/css-fonts-minifier.js

@@ -66,8 +66,14 @@ this.fontsMinifier = this.fontsMinifier || (() => {
 					usedFonts.push(fontFamilyNames);
 				}
 			});
-			const filteredUsedFonts = new Set(usedFonts.map(fontNames => fontNames.find(fontName => declaredFonts.has(fontName))).filter(fontName => fontName));
-			const unusedFonts = Array.from(declaredFonts).filter(fontFamilyName => !filteredUsedFonts.has(fontFamilyName));
+			const variableFound = usedFonts.find(fontNames => fontNames.find(fontName => fontName.startsWith("var(--")));
+			let unusedFonts;
+			if (variableFound) {
+				unusedFonts = [];
+			} else {
+				const filteredUsedFonts = new Set(usedFonts.map(fontNames => fontNames.find(fontName => declaredFonts.has(fontName))).filter(fontName => fontName));
+				unusedFonts = Array.from(declaredFonts).filter(fontFamilyName => !filteredUsedFonts.has(fontFamilyName));
+			}
 			doc.querySelectorAll("style").forEach(style => {
 				if (style.sheet) {
 					const processedRules = style.sheet.cssRules.length;