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 表格里缺链接目标,
本条是生成器在参考页上系统性地漏掉一类位置。修法与文件面零重叠。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions