跳转到内容
搜索文档

链接

最后更新 查看 MarkdownAgent 设置

尽管链接是文档的重要组成部分,但它们也有其自身的维护成本。

我们采用了一些策略来简化链接维护。

链接类型

共有 3 种类型的链接:

  • 外部(External):指向其他资源的链接,例如 www.cloudflare.com。
  • 内部(Internal):指向文档中其他页面的链接,例如 Workers
  • 锚点(Anchor):指向文档中其他页面特定部分的链接,例如 代理记录

对于每种类型的链接,我们都会思考其体验的几个不同方面:

  • 外部链接
    • 真实信源:另一个网站。
    • 断开原因:另一个网站更改了其内容。
    • 链接断开后的用户体验:另一个网站上的 404 页面。
  • 内部链接
    • 真实信源:您自己的网站。
    • 断开原因:您自己的网站更改了其内容。
    • 链接断开后的用户体验:您自己网站上的 404 页面。
  • 锚点链接
    • 真实信源:您自己的网站。
    • 断开原因:您自己的网站更改了其内容。
    • 链接断开后的用户体验:您自己网站的页面加载完成,但内容可能在页面更下方,或者已被移动到另一个页面。

检查

内部链接

在这三种链接类型中,只有内部链接:

  • 发生在对您网站内容进行修改的上下文中。
  • 普遍会导致糟糕的用户体验(404 页面)。
  • 在当前上下文中极易进行审计。

基于这些原因,如果存在损坏的内部链接,我们会选择使构建失败。在我们的具体实现中,我们依赖 Nimbusnimbus/internal-link 静态检查(lint)规则,该规则配置在 astro.config.ts 中。

对于此类链接审计,我们还做出了两项有意为之的决定:

  • 绝对链接而非相对链接:我们强制使用绝对链接(/style-guide/how-we-docs/metadata/),如果使用相对链接(../metadata/)则会导致构建失败,以避免未来耗时的维护。这一决定也有助于查找/替换工作以及未来的平台迁移。
  • 无重定向:我们在评估链接时不会考虑重定向。既然我们拥有当前的真实信源,我们就应该充分利用该源(这也有助于我们避免重定向链和未来的维护负担)。

外部链接

尽管外部链接损坏对用户体验不好,但它们并不会在您网站内容发生修改的上下文中发生变化。此外,外部链接检查可能非常耗时且容易出错,这可能会减慢贡献速度。

我们使用外部 SEO 工具来帮我们标记这些损坏的外部链接,并根据需要进行处理(而不是因为它们而导致构建失败)。

锚点链接

锚点链接出错的后果不像内部链接那样严重。如果您的锚点链接损坏,用户要么需要手动滚动到标题,要么(在某些情况下)转到另一个页面。

由于这些特点,我们使用 htmltest 库运行定期的后台检查来标记损坏的锚点链接。

这篇文档对您有帮助吗?