diff --git a/apps/desktop/src/renderer/features/editor/CodeBlockView.tsx b/apps/desktop/src/renderer/features/editor/CodeBlockView.tsx index f617497..50de0d5 100644 --- a/apps/desktop/src/renderer/features/editor/CodeBlockView.tsx +++ b/apps/desktop/src/renderer/features/editor/CodeBlockView.tsx @@ -30,20 +30,18 @@ export function CodeBlockView({ node, updateAttributes, selected }: NodeViewProp const language = (node.attrs.language as string) || ''; const codeClass = language ? `language-${language} hljs` : 'hljs'; const [copied, setCopied] = useState(false); - // FR-E5 扩展:复制时携带 Markdown 代码围栏(```language),方便粘贴到其他 Markdown 应用 - const copyWithFence = async () => { + // 复制按钮:复制纯代码内容(不带 Markdown 围栏) + const copyPlain = async () => { const code = node.textContent ?? ''; - const lang = language && language !== 'plaintext' ? language : ''; - const text = lang ? '```' + lang + '\n' + code + '\n```' : '```\n' + code + '\n```'; try { - await navigator.clipboard.writeText(text); + await navigator.clipboard.writeText(code); setCopied(true); setTimeout(() => setCopied(false), 1500); } catch { // 剪贴板不可用时回退到 execCommand try { const ta = document.createElement('textarea'); - ta.value = text; + ta.value = code; ta.style.position = 'fixed'; ta.style.opacity = '0'; document.body.appendChild(ta); @@ -59,8 +57,8 @@ export function CodeBlockView({ node, updateAttributes, selected }: NodeViewProp