Skip to content

Commit e53d335

Browse files
fix(ci): IndexNow 提 leetcode slug 时走拼音映射,与实际路由对齐
CR (Copilot) 指出 #331 的 deploy.yml 直接拿文件路径当 slug,但 lib/source.ts 的 transformer 把 career/interview-prep/leetcode/ 下 含中文的文件名拼音化(convertSlugToPinyin): 文件:content/docs/career/interview-prep/leetcode/142.环形链表II_translated.md 实际路由:/<locale>/docs/career/interview-prep/leetcode/142-huan-xing-lian-biao-iitranslated 我之前推的:/<locale>/docs/career/interview-prep/leetcode/142.环形链表II_translated ← 404 修:在 deploy.yml 的 IndexNow URL 提取里复用 generated/leetcode-slug-map.json (prebuild 时由 scripts/generate-leetcode-slug-map.mts 用同一份算法生成), 对 leetcode 子树的 slug 做 stem → 拼音 映射后再推送。 非 leetcode 子树的 slug 不受影响(它们的文件名都是 ASCII,路由按 file path 直出,不需要映射)。
1 parent a70d3f1 commit e53d335

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,15 @@ jobs:
8383
# 文件命名约定(fumadocs dot parser):
8484
# xxx.mdx → 默认 (zh) 原文,slug = xxx
8585
# xxx.en.mdx → en 翻译,slug = xxx(去 .en 后缀提 base slug)
86+
#
87+
# 例外:career/interview-prep/leetcode/ 下含中文的文件名会被
88+
# lib/source.ts 的 transformer 拼音化(convertSlugToPinyin),
89+
# 实际路由的最后一段是拼音 slug 而不是中文 stem。这里复用
90+
# generated/leetcode-slug-map.json (prebuild 时由
91+
# scripts/generate-leetcode-slug-map.mts 与 source.ts 同算法生成)
92+
# 把中文 stem 映射到拼音 slug,否则推送的 URL 会 404。
93+
LEETCODE_PREFIX="career/interview-prep/leetcode/"
94+
SLUG_MAP_FILE="generated/leetcode-slug-map.json"
8695
URLS=()
8796
8897
while IFS= read -r f; do
@@ -94,6 +103,17 @@ jobs:
94103
slug="${slug%.zh}"
95104
# index.mdx 对应目录本身的 URL(fumadocs 约定)
96105
slug="${slug%/index}"
106+
107+
# leetcode 中文 stem → 拼音 slug 映射(与 source.ts transformer 一致)
108+
if [[ "$slug" == "$LEETCODE_PREFIX"* && -f "$SLUG_MAP_FILE" ]]; then
109+
stem="${slug##*/}"
110+
dir="${slug%/*}"
111+
mapped="$(jq -r --arg k "$stem" '.[$k] // empty' "$SLUG_MAP_FILE")"
112+
if [ -n "$mapped" ]; then
113+
slug="$dir/$mapped"
114+
fi
115+
fi
116+
97117
URLS+=("$SITE_ORIGIN/zh/docs/$slug")
98118
URLS+=("$SITE_ORIGIN/en/docs/$slug")
99119
fi

0 commit comments

Comments
 (0)