diff --git a/.design/surinz/build-record.mjs b/.design/surinz/build-record.mjs new file mode 100644 index 0000000..9bce2c8 --- /dev/null +++ b/.design/surinz/build-record.mjs @@ -0,0 +1,64 @@ +// templates-record/*.dc.html 의 /*PRETENDARD*/ 토큰을 Pretendard woff2 data URI 로 치환해 +// record/ 아래에 최종 .dc.html 아트보드를 생성한다. +// +// 홈 캔버스(build.mjs · fonts/mini)와 서브셋을 공유하지 않는다. +// 전적 화면은 홈에 없던 글자를 많이 쓰는데, 공용 서브셋을 키우면 홈 아트보드 10개가 +// 전부 같이 무거워지기 때문이다. 여기서는 이 화면이 실제로 쓰는 글자만 담는다. +import { readFileSync, writeFileSync, readdirSync, mkdirSync } from 'node:fs'; +import { join } from 'node:path'; +import subsetFont from 'subset-font'; +import { decompress } from 'wawoff2'; + +const TPL = 'templates-record'; +const OUT = 'record'; + +// 1) 아트보드 텍스트에서 쓰이는 글자를 모은다 (style 블록과 태그는 제외) +const used = new Set(); +const names = readdirSync(TPL).filter((n) => n.endsWith('.dc.html')); +for (const name of names) { + const src = readFileSync(join(TPL, name), 'utf8') + .replace(/ + + +