两个 URL 空间,一个索引页面,以及一个分支相同的三元表达... 笔记

两个 URL 空间,一个索引页面,以及一个分支相同的三元表达式

ArticleLayout.tsx 中的代码包含一个三元运算符,其两个分支完全相同,这表明过去曾做出过决策,但随后已简化为单一结果。出现这种情况的原因是 Notifio 拥有八篇长文,分布在两个 URL 空间下:/guides 和 /for。尽管这些页面的 URL 不同,但它们本质上是同一类型的文档,均以“问题 - 解决方案 - 产品”的结构来阐述特定问题。URL 的区别基于读者意图:/for/ 页面面向自我认同型读者,而 /guides/ 页面则聚焦于任务导向型读者。一个关键字段 kind 将这些页面区分为"audience"(受众)或"guide"(指南)。然而,底层内容图及相关链接并未严格遵循此 URL 划分;链接经常在这两个域之间交叉。这是有意为之,因为读者在浏览相关内容时并不关心 URL 前缀。系统对所有文章使用单一的扁平化查找机制,并采用专用的 articleHref 函数来正确生成链接。潜在问题在于 slug 命名空间冲突:若受众(audience)和指南(guide)集合中存在相同的 slug,可能导致某篇页面无法访问。面包屑结构显示,/guides 实际上充当了全部八篇文章的事实索引,包括那些带有 /for 前缀的页面。因此,面包屑中的三元运算符保持静态,因为受众页面正确地将父级指向 /guides。最终面包屑元素的逻辑通过比较 eyebrow 字段是否为字符串"Guide"来判断,这种实现方式脆弱且应改用 kind 判别器。规范 URL 已传入布局组件,从而确保服务路由与结构化数据之间的一致性。此外,当相关站点 slug 出现拼写错误时,会导致值为 undefined,进而产生缺失链接且无报错的静默失败;此类问题应通过构建时测试进行捕获。总体编辑原则是:内容必须独立于产品购买而具有价值,这一标准在那些甚至论证反对产品的内容中得到了充分体现。