import path from 'node:path'; import fs from 'node:fs/promises'; import * as cheerio from 'cheerio'; import { root, relative, write } from './lib.mjs'; export async function addFonts(asset,site,output){ const cjk=new Set();const korean=new Set(); for(const page of output){ const $=cheerio.load(await fs.readFile(path.join(root,site.id,page.file),'utf8'));$('script,style').remove(); for(const char of $('body').text()){ if(/[\u2e80-\u9fff\uff00-\uffef]/u.test(char))cjk.add(char); else if(/[\uac00-\ud7af]/u.test(char))korean.add(char); } } const styles=[]; for(const [family,characters,licenseFolder] of [['Noto Sans SC',cjk,'notosanssc'],['Noto Sans KR',korean,'notosanskr']]){ const sorted=[...characters].sort((a,b)=>a.codePointAt(0)-b.codePointAt(0)); if(!sorted.length)continue; for(let i=0;i`); await write(file,$.html()); } console.log(`${site.id}: embedding local CJK fonts (${cjk.size} CJK characters, ${korean.size} Korean characters)`); }