Skip to content

docs-gen: 括号里的裸源码路径既不成链接也不成代码 —— 4 处、3 张已发布参考页(#6224 之后残留的 lookaround 对) #6420

Description

@os-zhuang

在实施 #6229(PR #6408,../ 前缀漏在链接外面)时顺带扫出,非本单范围,按 Prime Directive #10 独立记录。⛔ 未自我认领。

观察

packages/spec/scripts/lib/file-description.ts 的 bare-path 改写步骤,正则两端各带一个前后瞻:

/(?<!\()(  )\b(?!\))/g

它们的作用是「前面不是左括号、后面不是右括号」。于是任何写在圆括号里的裸源码路径一律不被改写 ——
既不成链接,也不成行内代码,原样落成纯文本。而语料里其它位置的裸路径都会变成链接或代码段。

已发布的 4 处(路由都存在,不是死链问题,是根本没链)

页面 文本 对应参考页
content/docs/references/automation/etl.mdx 16 - **Enterprise Connector** (integration/connector.zod.ts) - … /docs/references/integration/connector ✅ 存在
content/docs/references/integration/connector.mdx 17 - **ETL Pipeline** (automation/etl.zod.ts) - … /docs/references/automation/etl ✅ 存在
content/docs/references/shared/mapping.mdx 16 - Integration connectors (integration/connector.zod.ts) /docs/references/integration/connector ✅ 存在
content/docs/references/shared/mapping.mdx 17 - External lookups (data/external-lookup.zod.ts) /docs/references/data/external-lookup ✅ 存在

源分别在 packages/spec/src/automation/etl.zod.ts:18integration/connector.zod.ts:20
shared/mapping.zod.ts:15-16

讽刺的是 etl.mdx 同一页上,{@link} 写法的那条链接(#6136 修的那条),而正上方括号里的同一个
integration/connector.zod.ts 是纯文本 —— 同一页、同一个目标、两种待遇。

为什么这对 lookaround 现在是残留

它们是 #6136 之前的防嵌套手段:那时改写器直接跑在已含 markdown 链接的整串上,只能靠「前面不是 (
后面不是 )」勉强躲开链接的 ](route) 部分。PR #6224 把这一步改成分词器方案后,已成形的链接是
link 段、行内代码是 code 段,本步骤根本看不到它们 —— 该文件模块注释自己写着「lookaround 表达不了
『不要嵌在链接里』」。防嵌套的职责已经整体转移,这对 lookaround 只剩下误伤圆括号里的正常散文这一个
实际效果。

(?<!\()(?!\)) 是一对,#6229 只动中间的前缀与 \b,两端一字未改,所以 PR #6408 落地后这条依旧成立。

复现

// 现状:无匹配,整串保持纯文本
'see (system/cache.zod.ts) here'.replace(/(?<!\()((?:\.\.\/)*\b[\w-]+\/[\w.-]+\.zod\.ts)\b(?!\))/g, 'X')

为什么没有随 #6229 一起修

不同的输入形态、不同的成因(#6229 是匹配起点,这条是匹配两端的守卫),而且删掉这对 lookaround
放宽改写器的行为面 —— 会让此前从不成链接的一类位置开始产出链接,超出 #6229 的验收范围。契约优先:
该在产出侧(改写器)裁决要不要放宽,不该在别处兜底。

影响面(据实,不夸大)

无运行时影响,check:docs / check:generated / 全语料 MDX 编译在现状下全绿 —— 产物忠实复现了
改写器的行为,门禁看不见这类「本该有链接却没有」。代价是 3 张已发布页上 4 个导航出口缺失。
不自评级别,留待分诊。

去重

已翻过三仓 336 条 open issue/PR,按 file-descriptiondocs-genlookahead/lookbehind裸露
链接 本地匹配。同族三单都是别的输入形态,不重复:#6136(untitled {@link} 嵌套链接)、
#6229(../ 前缀,本单母体)、#5853(getCategoryTitle() 大小写)。

⚠️#6373 方向相似但不是一回事:那条是手写quick-reference.mdx 表格里缺链接目标,
本条是生成器在参考页上系统性地漏掉一类位置。修法与文件面零重叠。

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions