Skip to content

Commit fb33a59

Browse files
committed
refactor(pdf): 并行读取字体子集并去重加载样板
采纳 PR #335 review 建议:5 份字体相互独立,用 Promise.all 并行读取, 并抽出 readFontB64 去掉 5 段重复的 readFile().toString() 样板。
1 parent 9a695ab commit fb33a59

1 file changed

Lines changed: 13 additions & 15 deletions

File tree

scripts/pdf/main.ts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,19 @@ async function main(): Promise<void> {
4343
await mkdir(OUT_DIR, { recursive: true });
4444
await initHighlighter();
4545

46-
const fontCjk = (
47-
await readFile(path.join(ROOT, "assets/fonts/zigcourse-cjk.ttf"))
48-
).toString("base64");
49-
const fontSans = (
50-
await readFile(path.join(ROOT, "assets/fonts/zigcourse-sans.ttf"))
51-
).toString("base64");
52-
const fontMono = (
53-
await readFile(path.join(ROOT, "assets/fonts/zigcourse-mono.ttf"))
54-
).toString("base64");
55-
const fontCjkBold = (
56-
await readFile(path.join(ROOT, "assets/fonts/zigcourse-cjk-bold.ttf"))
57-
).toString("base64");
58-
const fontSansBold = (
59-
await readFile(path.join(ROOT, "assets/fonts/zigcourse-sans-bold.ttf"))
60-
).toString("base64");
46+
// 五份字体相互独立,并行读取并转 base64(顺手去掉 5 段重复的 readFile 样板)。
47+
const readFontB64 = (name: string): Promise<string> =>
48+
readFile(path.join(ROOT, `assets/fonts/${name}.ttf`)).then((b) =>
49+
b.toString("base64"),
50+
);
51+
const [fontCjk, fontSans, fontMono, fontCjkBold, fontSansBold] =
52+
await Promise.all([
53+
readFontB64("zigcourse-cjk"),
54+
readFontB64("zigcourse-sans"),
55+
readFontB64("zigcourse-mono"),
56+
readFontB64("zigcourse-cjk-bold"),
57+
readFontB64("zigcourse-sans-bold"),
58+
]);
6159

6260
let nodes: FlatNode[] = flattenSidebar(sidebar as DefaultTheme.SidebarItem[]);
6361
// 仅对页面节点应用排除;分组节点保留(其下无页面会被自动跳过)。

0 commit comments

Comments
 (0)