功能介绍
本文记录了对 Quartz 反向链接(Backlinks)进行的深度定制。通过应用自定义组件 Backlinks,我们实现了以下核心增强:
- 精准跳转:点击反向链接时能直接定位到源文档中具体引用当前页面的位置。
- 上下文预览:在鼠标悬停时利用 Popover 机制自动预览引用位置的上下文。
- 外部链接优化:支持配置外部链接在新标签页中打开,并自动添加
rel="noopener"以增强安全性。
遗留问题
- 浏览器默认对齐问题:跳转后该行文字会紧贴顶部,有时会丢失上方上下文感。
- 图片加载干扰:大量未设置高度的图片可能导致最终定位偏差。
- SPA 路由竞争:在开启 SPA 模式时,Quartz 的滚动处理与浏览器的原生锚点跳转有时会产生冲突。
如何使用
下载文件
请将以下文件下载并保存至项目的 quartz/custom/ 对应位置:
- 转换插件文件夹:
Links/ - 显示组件文件夹:
Backlinks/ - 统一入口:
index.ts(若已存在则无需重复下载)
启用插件
1. 配置转换插件 (quartz.config.ts)
将原生的 Plugin.CrawlLinks 替换为自定义的 Custom.CrawlLinks。
常用配置项:
markdownLinkResolution: 链接解析策略(如 “shortest”)。openLinksInNewTab: 设置为true可使外部链接在新标签页打开(已默认增强rel="noopener"安全属性)。
import * as Custom from "./quartz/custom"
// ...
transformers: [
// ... 其他插件
Custom.CrawlLinks({
markdownLinkResolution: "shortest",
openLinksInNewTab: true
}),
],2. 配置布局组件 (quartz.layout.ts)
将原有的 Component.Backlinks 替换为 Custom.Backlinks:
import * as Custom from "./quartz/custom"
// ...
right: [
// ... 其他组件
Custom.Backlinks(),
],