1
0
Эх сурвалжийг харах

fixed parsing of font property

Gildas 7 жил өмнө
parent
commit
ff2f8bed76

+ 14 - 3
lib/single-file/css-fonts-minifier.js

@@ -291,11 +291,22 @@ this.fontsMinifier = this.fontsMinifier || (() => {
 		}
 		const font = declarations.children.filter(node => node.property == "font").tail;
 		if (font) {
-			for (let node = font.data.value.children.tail; node && node.data.type != "WhiteSpace"; node = node.prev) {
-				if (node.data.type == "String" || node.data.type == "Identifier") {
-					fontFamilyNames.push(getFontFamily(cssTree.generate(node.data)));
+			let familyName = "";
+			const findPreviousComma = node => {
+				for (; node && !(node.data.type == "Operator" && node.data.value == ","); node = node.prev);
+				return node;
+			}
+			for (let node = font.data.value.children.tail; node && (node.data.type != "WhiteSpace" || findPreviousComma(node)); node = node.prev) {
+				if (node.data.type == "Operator" && node.data.value == "," && familyName) {
+					fontFamilyNames.push(getFontFamily(familyName));
+					familyName = "";
+				} else {
+					familyName = cssTree.generate(node.data) + familyName;
 				}
 			}
+			if (familyName) {
+				fontFamilyNames.push(getFontFamily(familyName));
+			}
 		}
 		return fontFamilyNames;
 	}