Protocol Launcher 系列:1Writer iOS 上的 Markdown 文档管理

在介绍了 Longshot 的协作后,今天,我们将介绍如何通过 Protocol Launcher1Writer 联动,让 iOS 上的 Markdown 文档管理变得更加高效。

作为移动办公的创作者或文档工作者,你可能经常遇到这些场景:

  • 在 iOS 快捷指令中自动创建日记或笔记文档。
  • 从其他应用获取文本内容,直接追加到 1Writer 的特定文档中。
  • 批量替换文档中的占位符或更新文档内容。

现在,通过 Protocol Launcher ,你可以摆脱手动拼接复杂的 onewriter:// 协议链接,以类型安全的方式管理 iOS 上的 Markdown 文档。


1Writer 与深度链接

1Writer 是一款强大的 iOS Markdown 文本编辑器,支持 Dropbox、Google Drive 和 iCloud 云存储。它提供了丰富的 URL Scheme 支持,允许从快捷指令或其他应用触发创建、编辑和管理文档等操作。

然而,手动拼接这些链接需要处理 URL 编码和 x-callback-url 协议,且缺乏类型提示,极易出错。


核心能力:文档创建与内容管理

Protocol Launcher 为 1Writer 专门提供了 protocol-launcher/1writer 模块,支持以下核心功能:

  1. 创建文档:在指定云存储路径下创建新文档,支持预设内容。
  2. 打开文档:快速打开现有文档进行编辑。
  3. 替换内容:完全替换文档内容或替换选中的文本。
  4. 追加/前置内容:在文档末尾或开头添加新内容。
  5. 获取内容:读取文档内容并传递给其他应用。

快速上手

首先,确保你的项目中已安装:

bash 复制代码
npm install protocol-launcher

在代码中你可以根据场景选择两种导入方式:

  • 按需加载(通过子路径导入),支持 Tree Shaking,体积更小;
  • 全量导入(从根包导入),写法更简单,但会引入所有已支持应用的逻辑。
typescript 复制代码
// ✅ 推荐:按需加载 1Writer 模块
import { create, replace, append, prepend, open, content, replaceSelection } from 'protocol-launcher/1writer'

// 也可以从根包导入,但会包含所有应用模块
// import { oneWriter } from 'protocol-launcher'

场景一:创建新文档 (create)

这是最常用的功能。你可以在指定云存储路径下创建新的 Markdown 文档:

typescript 复制代码
import { create } from 'protocol-launcher/1writer'

const url = create({
  path: 'Dropbox/Documents', // 云存储路径,支持 Dropbox、iCloud 等
  name: 'Notes.txt', // 文档名称
  text: 'Hello world', // 可选:初始内容
})

生成的 URL 将在 1Writer 中创建一个新文档,适合用于快捷指令自动创建日记、笔记等场景。

场景二:打开现有文档 (open)

快速打开云存储中的文档进行编辑:

typescript 复制代码
import { open } from 'protocol-launcher/1writer'

const url = open({
  path: 'Dropbox/Documents/Notes.txt', // 文档完整路径
})

如果不指定路径,将直接打开 1Writer 应用。

场景三:替换文档内容 (replace)

完全替换文档的内容,适合批量更新或重置文档:

typescript 复制代码
import { replace } from 'protocol-launcher/1writer'

const url = replace({
  path: 'Dropbox/Documents/Notes.txt',
  text: '这是新的文档内容',
})

场景四:替换选中文本 (replaceSelection)

在当前编辑的文档中替换选中的文本,适合快捷指令中的文本替换操作:

typescript 复制代码
import { replaceSelection } from 'protocol-launcher/1writer'

const url = replaceSelection({
  text: '替换后的文本', // 必填参数
})

场景五:追加内容 (append)

在文档末尾添加新内容,适合日志记录或累积笔记:

typescript 复制代码
import { append } from 'protocol-launcher/1writer'

const url = append({
  path: 'Dropbox/Documents/Diary.txt',
  text: '2026-03-28:今天完成了重要项目',
})

场景六:前置内容 (prepend)

在文档开头添加内容,适合添加标题或更新记录:

typescript 复制代码
import { prepend } from 'protocol-launcher/1writer'

const url = prepend({
  path: 'Dropbox/Documents/Notes.txt',
  text: '# 更新日志\n\n',
})

场景七:获取文档内容 (content)

读取文档内容并传递给其他应用或快捷指令:

typescript 复制代码
import { content } from 'protocol-launcher/1writer'

const url = content({
  path: 'Dropbox/Documents/Notes.txt',
  param: 'text', // 可选:指定返回内容的参数名
})

为什么选择 Protocol Launcher?

  1. 自动编码与 Unicode 支持 :1Writer 的协议对参数编码有严格要求。库内部会自动处理所有的转义逻辑,确保生成的 URL 在唤起应用时绝不乱码
  2. 类型安全与参数提示:TypeScript 的智能补全会确保你提供了必要的参数,并提醒你哪些是可选参数。
  3. 一致的用户体验:通过封装复杂的协议逻辑,你可以专注于业务功能的实现,而不用担心 iOS 快捷指令中 URL 拼接的繁琐细节。
  4. 极致的按需加载 (Tree Shaking) :采用了模块化设计,支持按需加载以最小化包体积:
    • 推荐方式 :使用子路径导入(如 import { create } from 'protocol-launcher/1writer'),这样构建工具只会打包相关的代码。
    • 全量方式 :也可以从根包导入(如 import { oneWriter } from 'protocol-launcher'),建议生产环境始终使用按需加载。
  5. 云存储兼容:完美支持 Dropbox、Google Drive 和 iCloud,路径格式遵循 1Writer 的标准约定。

结语

通过 Protocol Launcher,你可以将 1Writer 深度集成到 iOS 自动化工作流中。无论是个人知识管理,还是团队文档协作,它都是连接 Web 服务与 iOS Markdown 编辑器最优雅的桥梁。


🔗 相关链接

相关推荐
ˇasushiro2 小时前
终端工具配置
开发语言·ios·swift
EmmaXLZHONG2 小时前
Django By Example - 学习笔记
笔记·python·学习·django
心静财富之门2 小时前
《前端零基础入门:HTML + CSS + JavaScript 全套速查表(详细版 + 实例)》
前端·javascript·python
prog_61032 小时前
【笔记】用cursor手搓cursor(五)再见claude
人工智能·笔记·大语言模型·agent
扑火的小飞蛾2 小时前
OpenClaw Dashboard 部署与远程访问笔记
笔记
We་ct2 小时前
JS手撕:DOM操作 & 浏览器API高频场景详解
开发语言·前端·javascript·面试·状态模式·操作·考点
吴声子夜歌2 小时前
Node.js——操作MongoDB
数据库·mongodb·node.js
We་ct3 小时前
LeetCode 137. 只出现一次的数字 II:从基础到最优的两种解法详解
前端·数据结构·算法·leetcode·typescript·位运算
Dxy12393102163 小时前
如何使用 ECharts 绘制 K 线图
开发语言·javascript