소스 검색

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;