飞书 Markdown 技能用于操作飞书云空间(Drive)中作为普通文件存储的原生 Markdown 文件。它不处理 docx 文档,纯本地 Markdown 文件操作也不会触发本技能。
用途
该技能覆盖飞书 Markdown 文件的查看、创建、上传、编辑和比较等操作,适用于需要操作飞书 Markdown 文件,或比较远端版本与本地草稿的场景。
主要能力
技能通过 lark-cli 的快捷命令(Shortcut)提供以下操作:
+create:在 Drive 中创建 Markdown 文件。
+diff:比较两个远端 Markdown 版本,或比较远端 Markdown 与本地文件。
+fetch:从 Drive 获取 Markdown 文件。
+patch:通过 fetch-local-replace-overwrite 方式对 Drive 中的 Markdown 文件做局部更新。
+overwrite:覆盖更新 Drive 中已有的 Markdown 文件。
使用方式
开始前必须先读取 ../lark-shared/SKILL.md,其中包含认证和权限处理说明。
身份方面,Markdown 文件通常属于用户云空间资源,优先使用 --as user;如为自动化场景,或应用已创建并持有目标文件权限,可按场景使用 --as bot。首次以 user 身份访问前需执行 lark-cli auth login。
+create / +overwrite 失败时,先判断是否为身份和权限问题:bot 更常见的是 app scope 或目标目录 ACL,user 更常见的是用户授权或用户 ACL,不应不加判断地切换身份重试。
+create 的目标参数不要猜:Drive 文件夹用 --folder-token,Wiki 节点用 --wiki-token。如用户给的是 URL,可直接传完整 URL,CLI 会归一成 token;不要把 doc/sheet/wiki URL 放进 --folder-token 试错。
--name 和本地 --file 文件名都必须显式带 .md 后缀。--content 支持直接传字符串、@file 从本地文件读取内容、- 从 stdin 读取内容。--file 只接受本地 .md 文件路径。
+patch 的内部语义是先完整下载 Markdown,再本地替换,再整文件覆盖上传,并非服务端原子 patch,而是 CLI 侧编排的局部更新能力。它当前只支持单组 --pattern / --content;替换后的最终内容不能为空,CLI 会拒绝上传空文件。使用正则替换时要注意 --pattern 的转义,需显式转义正则特殊字符。
适用场景
需要上传或创建原生 .md 文件、比较原生 .md 文件历史版本差异或对比远端与本地草稿、读取 Drive 中某个 .md 文件内容、对 Markdown 文件做局部文本或正则替换、覆盖更新 Drive 中某个 .md 文件内容时,均可使用本技能。
如需先获取 Markdown 文件的历史版本号再做比较/下载/回滚,应先用 lark-drive 的 lark-cli drive +version-history。
限制与边界
本技能处理的是 Drive 中作为普通文件存储的 Markdown,不是 docx 文档。如需将本地 Markdown 导入为在线新版文档(docx),应改用 lark-drive 的 lark-cli drive +import --type docx。如需对 Markdown 文件做 rename / move / delete / 搜索 / 权限 / 评论等云空间操作,应切换到 lark-drive。
当 +create / +overwrite 命中 missing scope、permission denied、not found、quota_exceeded、version limit 时,默认停止重试并按报错 hint 处理;只有 rate_limit、server_error 或临时网络错误才做有限退避重试。
参考:lark-shared(认证和全局参数)、lark-drive(Drive 文件管理、导入 docx、move/delete/search 等)。