diff --git a/package.json b/package.json index 684d33be..5163fc52 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "serve": "vue-cli-service serve", "build": "vue-cli-service build", "test:unit": "vue-cli-service test:unit", - "lint": "vue-cli-service lint" + "lint": "vue-cli-service lint", + "build:fonts": "node scripts/build-fonts" }, "dependencies": { "@icon-park/vue-next": "^1.4.0", diff --git a/scripts/build-fonts.js b/scripts/build-fonts.js new file mode 100644 index 00000000..cd67989a --- /dev/null +++ b/scripts/build-fonts.js @@ -0,0 +1,45 @@ +// 自动获取 src\assets\fonts 路径下的字体文件列表,并替换相关的 SCSS 变量 + +/* eslint-disable no-console */ + +const fs = require('fs') +const path = require('path') + +const assetsPath = path.join(__dirname, '../src/assets') +const fontVarPath = path.join(assetsPath, 'styles/font.scss') +const fontsPath = path.join(assetsPath, 'fonts') + +const scssFontListVar = '$fontList' + +const replaceSCSSVariable = (names) => { + fs.readFile(fontVarPath, 'utf-8', (errs, content) => { + if (errs) { + console.error(errs) + process.exit(1) + } + const reg = new RegExp(`(\\${scssFontListVar}:\\s*)(.*)(;.*)`, 'g') + const newContent = content.replace(reg, `$1${names}$3`) + fs.writeFile(fontVarPath, newContent, errs => { + if (errs) { + console.error(errs) + process.exit(1) + } + console.log('自动生成自定义字体列表完成') + }) + }) +} + +fs.readdir(fontsPath, { withFileTypes: true }, (errs, files) => { + if (errs) { + console.error(errs) + process.exit(1) + } + const woff2Fonts = files.filter(({ name }) => name.endsWith('.woff2')) + const fontList = woff2Fonts.map(({ name }) => name.replace('.woff2', '')) + + const names = fontList.reduce((result, name, i) => { + if (i === 0) return `'${name}'` + return `${result}, '${name}'` + }, '') + replaceSCSSVariable(names) +}) diff --git a/src/assets/fonts/仓耳小丸子.ttf b/src/assets/fonts/仓耳小丸子.ttf deleted file mode 100644 index a8786a4d..00000000 Binary files a/src/assets/fonts/仓耳小丸子.ttf and /dev/null differ diff --git a/src/assets/fonts/仓耳小丸子.woff2 b/src/assets/fonts/仓耳小丸子.woff2 new file mode 100644 index 00000000..3f7c1202 Binary files /dev/null and b/src/assets/fonts/仓耳小丸子.woff2 differ diff --git a/src/assets/fonts/优设标题黑.ttf b/src/assets/fonts/优设标题黑.ttf deleted file mode 100644 index 3729151a..00000000 Binary files a/src/assets/fonts/优设标题黑.ttf and /dev/null differ diff --git a/src/assets/fonts/优设标题黑.woff2 b/src/assets/fonts/优设标题黑.woff2 new file mode 100644 index 00000000..0b9783e4 Binary files /dev/null and b/src/assets/fonts/优设标题黑.woff2 differ diff --git a/src/assets/fonts/字制区喜脉体.ttf b/src/assets/fonts/字制区喜脉体.ttf deleted file mode 100644 index d3528404..00000000 Binary files a/src/assets/fonts/字制区喜脉体.ttf and /dev/null differ diff --git a/src/assets/fonts/字制区喜脉体.woff2 b/src/assets/fonts/字制区喜脉体.woff2 new file mode 100644 index 00000000..b7d28fb2 Binary files /dev/null and b/src/assets/fonts/字制区喜脉体.woff2 differ diff --git a/src/assets/fonts/峰广明锐体.ttf b/src/assets/fonts/峰广明锐体.ttf deleted file mode 100644 index 0cd0e2d0..00000000 Binary files a/src/assets/fonts/峰广明锐体.ttf and /dev/null differ diff --git a/src/assets/fonts/峰广明锐体.woff2 b/src/assets/fonts/峰广明锐体.woff2 new file mode 100644 index 00000000..3b967a9b Binary files /dev/null and b/src/assets/fonts/峰广明锐体.woff2 differ diff --git a/src/assets/fonts/得意黑.woff2 b/src/assets/fonts/得意黑.woff2 new file mode 100644 index 00000000..caf6caad Binary files /dev/null and b/src/assets/fonts/得意黑.woff2 differ diff --git a/src/assets/fonts/摄图摩登小方体.ttf b/src/assets/fonts/摄图摩登小方体.ttf deleted file mode 100644 index cde0e4c9..00000000 Binary files a/src/assets/fonts/摄图摩登小方体.ttf and /dev/null differ diff --git a/src/assets/fonts/摄图摩登小方体.woff2 b/src/assets/fonts/摄图摩登小方体.woff2 new file mode 100644 index 00000000..f2d76335 Binary files /dev/null and b/src/assets/fonts/摄图摩登小方体.woff2 differ diff --git a/src/assets/fonts/站酷快乐体.ttf b/src/assets/fonts/站酷快乐体.ttf deleted file mode 100644 index ba2ad8a7..00000000 Binary files a/src/assets/fonts/站酷快乐体.ttf and /dev/null differ diff --git a/src/assets/fonts/站酷快乐体.woff2 b/src/assets/fonts/站酷快乐体.woff2 new file mode 100644 index 00000000..444aa1cc Binary files /dev/null and b/src/assets/fonts/站酷快乐体.woff2 differ diff --git a/src/assets/fonts/素材集市康康体.ttf b/src/assets/fonts/素材集市康康体.ttf deleted file mode 100644 index 6adc515a..00000000 Binary files a/src/assets/fonts/素材集市康康体.ttf and /dev/null differ diff --git a/src/assets/fonts/素材集市康康体.woff2 b/src/assets/fonts/素材集市康康体.woff2 new file mode 100644 index 00000000..097609ea Binary files /dev/null and b/src/assets/fonts/素材集市康康体.woff2 differ diff --git a/src/assets/fonts/素材集市酷方体.ttf b/src/assets/fonts/素材集市酷方体.ttf deleted file mode 100644 index b8d727cd..00000000 Binary files a/src/assets/fonts/素材集市酷方体.ttf and /dev/null differ diff --git a/src/assets/fonts/素材集市酷方体.woff2 b/src/assets/fonts/素材集市酷方体.woff2 new file mode 100644 index 00000000..c9ebffbc Binary files /dev/null and b/src/assets/fonts/素材集市酷方体.woff2 differ diff --git a/src/assets/fonts/途牛类圆体.ttf b/src/assets/fonts/途牛类圆体.ttf deleted file mode 100644 index a411dd42..00000000 Binary files a/src/assets/fonts/途牛类圆体.ttf and /dev/null differ diff --git a/src/assets/fonts/途牛类圆体.woff2 b/src/assets/fonts/途牛类圆体.woff2 new file mode 100644 index 00000000..cf369ef8 Binary files /dev/null and b/src/assets/fonts/途牛类圆体.woff2 differ diff --git a/src/assets/fonts/锐字真言体.ttf b/src/assets/fonts/锐字真言体.ttf deleted file mode 100644 index 7c1e7de6..00000000 Binary files a/src/assets/fonts/锐字真言体.ttf and /dev/null differ diff --git a/src/assets/fonts/锐字真言体.woff2 b/src/assets/fonts/锐字真言体.woff2 new file mode 100644 index 00000000..d047ff2c Binary files /dev/null and b/src/assets/fonts/锐字真言体.woff2 differ diff --git a/src/assets/styles/font.scss b/src/assets/styles/font.scss index cc57982f..a1846e50 100644 --- a/src/assets/styles/font.scss +++ b/src/assets/styles/font.scss @@ -1,40 +1,9 @@ -@font-face { - font-family: '仓耳小丸子'; - src: url(../fonts/仓耳小丸子.ttf); -} -@font-face { - font-family: '优设标题黑'; - src: url(../fonts/优设标题黑.ttf); -} -@font-face { - font-family: '峰广明锐体'; - src: url(../fonts/峰广明锐体.ttf); -} -@font-face { - font-family: '摄图摩登小方体'; - src: url(../fonts/摄图摩登小方体.ttf); -} -@font-face { - font-family: '站酷快乐体'; - src: url(../fonts/站酷快乐体.ttf); -} -@font-face { - font-family: '字制区喜脉体'; - src: url(../fonts/字制区喜脉体.ttf); -} -@font-face { - font-family: '素材集市康康体'; - src: url(../fonts/素材集市康康体.ttf); -} -@font-face { - font-family: '素材集市酷方体'; - src: url(../fonts/素材集市酷方体.ttf); -} -@font-face { - font-family: '途牛类圆体'; - src: url(../fonts/途牛类圆体.ttf); -} -@font-face { - font-family: '锐字真言体'; - src: url(../fonts/锐字真言体.ttf); +$fontList: '仓耳小丸子', '优设标题黑', '字制区喜脉体', '峰广明锐体', '得意黑', '摄图摩登小方体', '站酷快乐体', '素材集市康康体', '素材集市酷方体', '途牛类圆体', '锐字真言体'; + +@each $font in $fontList { + @font-face { + font-display: swap; + font-family: $font; + src: url('../fonts/#{$font}.woff2') format('woff2'); + } } \ No newline at end of file diff --git a/src/configs/font.ts b/src/configs/font.ts index 2961b2e1..a8909ea8 100644 --- a/src/configs/font.ts +++ b/src/configs/font.ts @@ -30,6 +30,7 @@ export const SYS_FONTS = [ ] export const WEB_FONTS = [ + { label: '得意黑', value: '得意黑' }, { label: '仓耳小丸子', value: '仓耳小丸子' }, { label: '优设标题黑', value: '优设标题黑' }, { label: '峰广明锐体', value: '峰广明锐体' },