25 lines
824 B
JavaScript
25 lines
824 B
JavaScript
/**
|
|
* 从 Font Awesome SCSS 变量生成图标 Unicode 映射表。
|
|
* 升级 @fortawesome/fontawesome-free 后执行: node scripts/gen-fa-icons.js
|
|
*/
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
|
|
const scssPath = path.join(
|
|
__dirname,
|
|
'../node_modules/@fortawesome/fontawesome-free/scss/_variables.scss'
|
|
)
|
|
const outputPath = path.join(__dirname, '../utils/fa-icons.js')
|
|
|
|
const source = fs.readFileSync(scssPath, 'utf8')
|
|
const icons = {}
|
|
|
|
for (const match of source.matchAll(/\$var-([a-z0-9-]+):\s*\\([a-f0-9]+);/gi)) {
|
|
const [, name, hex] = match
|
|
icons[name] = String.fromCharCode(parseInt(hex, 16))
|
|
}
|
|
|
|
const content = `export const FA_ICONS = ${JSON.stringify(icons, null, 2)}\n`
|
|
fs.writeFileSync(outputPath, content, 'utf8')
|
|
console.log(`Generated ${Object.keys(icons).length} icons -> utils/fa-icons.js`)
|