复制要区分可见文本与富文本

**编辑器的「复制」要分两种产物:`text/plain` 只写屏幕可见文字,`text/html` 保留富文本;不能让 Markdown 源码(`#`、`**`)或 `<br>` 字面量进入纯文本通道。**

根因(Milkdown)

Milkdown 的剪贴板插件会把「非纯文本选择」主动序列化成 Markdown 写进 text/plain,其中的原始 HTML 节点又被序列化回 <br>。所以选中复制后粘出来的内容带 #/**/<br>,与 ChatGPT、豆包的可见文本复制行为不同。

两条复制路径的契约

动作产物期望
点「复制全文」Markdown 源码给纯文本/开发用途,保留 #、**
选中/全选后 Cmd/Ctrl+C屏幕可见内容粘到 Word 保留标题加粗;粘到微信无 <br>;粘到纯文本框无 #/**
  • 剪贴板内部仍要携带富文本数据,否则 Word 之类无法保留格式 —— 但用户看到的内容不出现 HTML 标签。
  • 实现上不额外加 onCopy,只覆盖 Milkdown 那条错误的纯文本序列化规则。

相关