Skip to content

OmniOutliner

OmniOutliner 是 The Omni Group 的大纲应用。Protocol Launcher 可以生成 OmniOutliner Omni Links 与 Legacy Links。

使用

有两种方式可以使用此库:

  • 按需从子路径导入,支持 Tree Shaking 并保持包体积较小。
  • 从根包完整导入更适合快速脚本或示例,但会包含全部应用模块。

生产构建建议使用按需导入;快速演示可以使用完整导入。

选择安装方式

按需加载
推荐使用。生产环境优化。
全量导入
使用便捷。适合快速脚本。

打开文档

Omni Links 支持 document(doc)links。请提供 OmniOutliner Connected Folder 中的 path、document name 和 Omni Links Folder ID。

On-Demand
ts
import { openDocument } from 'protocol-launcher/omnioutliner'

const url = openDocument({
  documentName: 'My Outline.ooutline',
  folder: 'iCloud Drive',
})

打开文档中的行

Document Omni Links 可以包含可选 Elements,每个 Element 都在 folder 参数之后用 & 追加。OmniOutliner 目前记录了用于 Focus 的 focus,以及用于 Row Selection 的 row

On-Demand
ts
import { openDocumentRow } from 'protocol-launcher/omnioutliner'

const url = openDocumentRow({
  path: 'foo/bar',
  documentName: 'My Outline.ooutline',
  folder: 'Work Server 9070',
  focus: 'mDFTZpAeCb8',
  row: 'fh4Q0jgg5iB',
})

Legacy Links 只支持 open link type。只要包含目标位置的文档已经打开,它们就可以工作,并可包含可选的 focusrow Elements。

On-Demand
ts
import { openLegacyLink } from 'protocol-launcher/omnioutliner'

const openUrl = openLegacyLink()

const rowUrl = openLegacyLink({
  focus: 'nBZUyLQl3b6',
  row: 'j3NzslZpCi8',
})

打开已有链接

当你已经有从 OmniOutliner 复制出的完整 omnioutliner:///doc/... Omni Link 或 omnioutliner:///open... Legacy Link 时,可以使用 openLink()

On-Demand
ts
import { openLink } from 'protocol-launcher/omnioutliner'

const url = openLink({
  url: 'omnioutliner:///doc/My%20Outline.ooutline?folder=iCloud%20Drive',
})

生成的 URL

ts
openDocument({ documentName: 'My Outline.ooutline', folder: 'iCloud Drive' })
// => 'omnioutliner:///doc/My%20Outline.ooutline?folder=iCloud%20Drive'

openDocumentRow({
  path: 'foo/bar',
  documentName: 'My Outline.ooutline',
  folder: 'Work Server 9070',
  focus: 'mDFTZpAeCb8',
  row: 'fh4Q0jgg5iB',
})
// => 'omnioutliner:///doc/foo/bar/My%20Outline.ooutline?folder=Work%20Server%209070&focus=mDFTZpAeCb8&row=fh4Q0jgg5iB'

openLegacyLink()
// => 'omnioutliner:///open'

openLegacyLink({ focus: 'nBZUyLQl3b6', row: 'j3NzslZpCi8' })
// => 'omnioutliner:///open?focus=nBZUyLQl3b6&row=j3NzslZpCi8'

官方文档