深链接
用 crib:// 链接从笔记、其他应用或脚本直接打开 Crib 中的某一章节:怎样复制链接、两种链接格式、打不开时的提示,以及旧的 pgdash:// 链接。
Crib 注册了 crib 协议。点击一个 crib:// 链接,Crib 会打开它指向的章节。界面里把这类链接叫“链接”。
复制链接
- 在搜索结果上点右键,选“复制链接”。折叠起来的多版本结果,复制的是代表项那一条。
- 阅读时,从正文上方的“更多”菜单(版本、书签按钮右侧)选“复制链接”,复制正在阅读的章节。
- 本地 API 搜索结果中的
load_url也是这种链接,见本地 API。
复制得到的链接形如:
manifest 记录结果来自哪个资料包。搜索结果和阅读器各自用自己所属的搜索世代生成链接,不会把一个版本的结果链到另一个版本。
两种格式
crib://open
带 section 时,该章节必须存在于当前已启用的内容中,且项目、版本线、语言都与参数一致。未知参数、重复参数、超过 4096 字节的值都会让链接被拒绝。
crib://section
路径只有一段,就是精确的章节键;只允许一个可选的 manifest 参数,不能带片段、用户名、端口或其他参数。“复制链接”目前生成的是 crib://open 格式;这种短格式适合手写,或由脚本从本地 API 返回的 section_key 拼出来。
章节键和资料包摘要都来自签名资料包,详见资料包格式。
打不开时
Crib 只打开链接精确指向的章节,不会退而打开相似的页面或其他版本。打不开时,当前页面保持不变,Crib 显示:
| 提示 | 原因 |
|---|---|
| 无法打开链接:页面地址无效 | 链接格式不对,例如多了参数、路径不止一段、manifest 不是 64 位十六进制 |
| 无法打开链接:资料库中没有这个页面或文件 | 链接格式正确,但当前启用的内容里找不到:版本未安装或已停用,或 manifest 指向的修订不是当前启用的那个 |
版本已停用时,在资料库中启用后再点链接。
说明
Crib 没有运行时点击链接、由链接启动 Crib 的情况还没有实测。Crib 打开后如果没有跳到目标章节,再点一次链接。
旧的 pgdash:// 链接
Crib 仍然注册 pgdash 协议,PGDash 时期复制的 pgdash://open?... 链接按上面相同的规则打开。PGDash 的 pgdash://search 没有实现,会被拒绝。Crib 自己只生成 crib:// 链接。
pgdoc:// 不是给用户的
阅读器内部用 pgdoc://<资料包摘要>/<路径> 加载资料包里的文件。这个协议不向系统注册,不能从其他应用打开,也不要把它当作链接保存。