跳转到主要内容

深链接

用 crib:// 链接从笔记、其他应用或脚本直接打开 Crib 中的某一章节:怎样复制链接、两种链接格式、打不开时的提示,以及旧的 pgdash:// 链接。

Crib 注册了 crib 协议。点击一个 crib:// 链接,Crib 会打开它指向的章节。界面里把这类链接叫“链接”。

复制链接

  • 在搜索结果上点右键,选“复制链接”。折叠起来的多版本结果,复制的是代表项那一条。
  • 阅读时,从正文上方的“更多”菜单(版本、书签按钮右侧)选“复制链接”,复制正在阅读的章节。
  • 本地 API 搜索结果中的 load_url 也是这种链接,见本地 API。

复制得到的链接形如:

crib://open?project=postgresql&branch=18&locale=zh-Hans&section=<章节键>&manifest=<资料包摘要>

manifest 记录结果来自哪个资料包。搜索结果和阅读器各自用自己所属的搜索世代生成链接,不会把一个版本的结果链到另一个版本。

两种格式

crib://open

project , required
项目,如 postgresql
branch , required
版本线,如 18、9.6;Wiki 为空
locale , required
zh-Hans 或 en
section
章节键,必须精确匹配
manifest
资料包摘要,64 位小写十六进制;给出时必须与已启用资料包的摘要一致
concept、semantic
没有 section 时使用,必须恰好匹配一个章节

带 section 时,该章节必须存在于当前已启用的内容中,且项目、版本线、语言都与参数一致。未知参数、重复参数、超过 4096 字节的值都会让链接被拒绝。

crib://section

crib://section/<章节键>
crib://section/<章节键>?manifest=<资料包摘要>

路径只有一段,就是精确的章节键;只允许一个可选的 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://<资料包摘要>/<路径> 加载资料包里的文件。这个协议不向系统注册,不能从其他应用打开,也不要把它当作链接保存。