chore(icon_packs): process boxicons v2

This commit is contained in:
Elian Doran 2025-12-27 17:56:12 +02:00
parent 59b691d670
commit 241a9e2e7f
No known key found for this signature in database
2 changed files with 8863 additions and 0 deletions

8826
boxicons-v2.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,37 @@
import { readFileSync, writeFileSync } from "fs";
import { join } from "path";
import iconList from "../../apps/client/src/widgets/icon_list";
function readMappingsFromCss() {
const cssPath = join(__dirname, "../../node_modules/boxicons/css/boxicons.css");
const cssContent = readFileSync(cssPath, "utf-8");
const mappings: Record<string, string> = {};
const regex = /\.(bx.*?):before.*?\n.*?content:.*?"(.*?)"/g;
let match;
while ((match = regex.exec(cssContent)) !== null) {
mappings[match[1]] = String.fromCharCode(parseInt(match[2].substring(1), 16));
}
return mappings;
}
const mappings = readMappingsFromCss();
const icons = {};
for (const icon of iconList.icons) {
if (!icon.className) continue;
const className = icon.className.substring(3); // remove 'bx-' prefix
if (className === "bx-empty") continue;
icons[className] = {
glyph: mappings[className],
terms: [ icon.name, ...(icon.term || []) ]
};
}
const manifest = {
prefix: "bx",
icons
};
writeFileSync(join(__dirname, "../../apps/server/src/services/icon_pack_boxicons-v2.json"), JSON.stringify(manifest, null, 2));