@muzi3/code-button
v0.1.2
Published
pi 终端 UI 代码块可点击按钮基座:OSC 8 超链接 + 本地 HTTP 回调 + 按钮注册 API
Maintainers
Readme
@muzi3/code-button
pi 终端 UI 代码块可点击按钮的基座。
原理:终端里没有真正的按钮,这是唯一能做到「点一下就触发」的链路 —— 在代码块上方插入 OSC 8 超链接,点击后由 macOS 本地 URL handler 转发到本扩展启动的 127.0.0.1 本地 HTTP 服务,再按 id 触发已注册的回调。
它做什么
- 启动本地 HTTP 服务(127.0.0.1 随机端口 + 随机 token)
- 提供
registerCodeBlockButtons(provider)—— 其他扩展注册按钮来源 - 提供
scanCodeBlocks(markdown)—— 统一的围栏代码块扫描器 - 提供
toast(text, color)—— 编辑器下方一次性提示 /code-button-install命令 —— 安装 macOS URL handler(首次使用需要)
它不做什么
本身不提供任何按钮。按钮由消费方(如 @muzi3/copy-code、@muzi3/run-cmd)通过 registerCodeBlockButtons 注册。
安装
pi install npm:@muzi3/code-button首次使用运行 /code-button-install 安装 macOS URL handler。
给其他扩展复用
import { registerCodeBlockButtons, scanCodeBlocks, toast } from "@muzi3/code-button";
registerCodeBlockButtons((block) => [{
key: `my-action:${block.index}`,
label: `[我的按钮 #${block.index}]`,
run: () => { /* ... */ },
}]);运行时状态挂在
globalThis上(__piUiCodeButton),即使被多个包分别 bundle、多次加载,按钮注册表仍是同一份。
License
MIT
