From 2b035920adfa385dad831d8eb2f78773ce714f54 Mon Sep 17 00:00:00 2001 From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Tue, 28 Jan 2025 23:46:01 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=90=8C=E3=81=98unicode=E3=81=AB?= =?UTF-8?q?=E8=A4=87=E6=95=B0=E3=81=AE=E3=82=A2=E3=82=A4=E3=82=B3=E3=83=B3?= =?UTF-8?q?class=E3=81=8C=E5=89=B2=E3=82=8A=E5=BD=93=E3=81=A6=E3=82=89?= =?UTF-8?q?=E3=82=8C=E3=81=A6=E3=81=84=E3=82=8B=E5=A0=B4=E5=90=88=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/icons-subsetter/src/generator.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/icons-subsetter/src/generator.ts b/packages/icons-subsetter/src/generator.ts index 9823b1bf83..699ff0e512 100644 --- a/packages/icons-subsetter/src/generator.ts +++ b/packages/icons-subsetter/src/generator.ts @@ -50,11 +50,17 @@ async function main() { const files = await glob(dir, { cwd }); for (const file of files) { //console.log(`Scanning ${file}`); + if (file.includes('MkSignin')) { + console.log(`Scanning ${file}`); + } const content = await fsp.readFile(path.resolve(cwd, file), 'utf-8'); const classRegex = /ti-[a-z0-9-]+/g; let matches: RegExpExecArray | null; while ((matches = classRegex.exec(content)) !== null) { const icon = matches[0]; + if (file.includes('MkSignin')) { + console.log(`Found ${icon}, ${rgMap.has(icon)}`); + } if (rgMap.has(icon)) { iconsToPack.add(icon); } @@ -119,8 +125,12 @@ async function main() { // 使用されているアイコンのclassとの対応を追記 for (const icon of unicodeRangeValues.get(key)!) { - const iconClass = Array.from(rgMap.entries()).find(([_, unicode]) => parseInt(unicode, 16) === icon)![0]; - cssRules.push(`.${iconClass}::before { content: "\\${icon.toString(16)}"; }`); + const iconClasses = Array.from(rgMap.entries()).filter(([_, unicode]) => parseInt(unicode, 16) === icon); + if (iconClasses.length > 1) { + console.warn(`[WARN] Multiple classes for the same unicode: ${iconClasses.map(([cls]) => cls).join(', ')}. Maybe it's deprecated?`); + } + const iconSelector = iconClasses.map(([className]) => `.${className}::before`).join(', '); + cssRules.push(`${iconSelector} { content: "\\${icon.toString(16)}"; }`); } }