复制要区分可见文本与富文本
根因(Milkdown)
Milkdown 的剪贴板插件会把「非纯文本选择」主动序列化成 Markdown 写进 text/plain,其中的原始 HTML 节点又被序列化回 <br>。所以选中复制后粘出来的内容带 #/**/<br>,与 ChatGPT、豆包的可见文本复制行为不同。
两条复制路径的契约
| 动作 | 产物 | 期望 |
|---|---|---|
| 点「复制全文」 | Markdown 源码 | 给纯文本/开发用途,保留 #、** |
选中/全选后 Cmd/Ctrl+C | 屏幕可见内容 | 粘到 Word 保留标题加粗;粘到微信无 <br>;粘到纯文本框无 #/** |
- 剪贴板内部仍要携带富文本数据,否则 Word 之类无法保留格式 —— 但用户看到的内容不出现 HTML 标签。
- 实现上不额外加
onCopy,只覆盖 Milkdown 那条错误的纯文本序列化规则。