From 68b0ba1ccf479bf9d2359e28c7edbb13e04887e3 Mon Sep 17 00:00:00 2001 From: lixinran Date: Wed, 15 Oct 2025 15:29:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8A=82=E7=82=B9=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=92=8C=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加convertHTMLToMarkdown函数,修复双击编辑节点时表格无法正常显示的问题 - 优化HTML到Markdown转换逻辑,支持表格、图片、文本格式的正确转换 - 修复图片显示问题:禁用代理URL转换,直接使用原始CDN URL - 解决思维导图视图中图片显示为markdown文本的问题 修复内容: 1. 双击编辑节点时:图片正常显示,表格现在也能正常显示 2. 思维导图视图时:图片现在能正常显示,表格继续正常显示 --- backend/mindmap.db | Bin 41086976 -> 41086976 bytes frontend/src/components/MindMap.vue | 94 +++++++++++++++++++++++++ frontend/src/utils/markdownRenderer.js | 9 ++- 3 files changed, 100 insertions(+), 3 deletions(-) diff --git a/backend/mindmap.db b/backend/mindmap.db index b66b61d6bcafaf44332135a0641d16bad20da0ec..eecb48a5ce4d2888cdb2889ed9bdfb476d0faec9 100644 GIT binary patch delta 59996 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 ODLJ-y_}Y@^e))egHorjt delta 16274 zcmZXb33wCb7WeZ`W=k?j+EPj_P`U(YOP92iML;a5*j9nEl~T5}6k4FcuoWnwgsm)= z8W1>&z*Im`#2OG7E}|)@SM(wl1>CV9n`~C}s#h=ioinNT`=00HdHz49Gn35BJMVkm z^PY3!Yx!3@AIjg+`h>yIJ;Pv#eBNL%Mr=sx!=59?YImj!Fy7mBM|c%%0As+GJBF)}MW6{K|O1Ho@dEt~O3I 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 { imagePreviewError.value = ''; }; +// HTML转Markdown函数 +const convertHTMLToMarkdown = (html) => { + if (!html || typeof html !== 'string') { + return ''; + } + + try { + console.log('🔄 开始转换HTML到Markdown:', html.substring(0, 100) + '...'); + + // 使用Vditor的html2md功能(如果可用) + if (typeof Vditor?.html2md === 'function') { + const markdown = Vditor.html2md(html); + console.log('✅ 使用Vditor.html2md转换成功:', markdown.substring(0, 100) + '...'); + return markdown; + } + + // 回退到简单转换逻辑 + console.log('⚠️ Vditor.html2md不可用,使用简单转换逻辑'); + let markdown = html + // 处理表格 - 保持表格结构 + .replace(/]*>/gi, '\n') + .replace(/<\/table>/gi, '\n') + .replace(/]*>/gi, '') + .replace(/<\/thead>/gi, '') + .replace(/]*>/gi, '') + .replace(/<\/tbody>/gi, '') + .replace(/]*>/gi, '') + .replace(/<\/tr>/gi, ' |\n') + .replace(/]*>/gi, '| ') + .replace(/<\/th>/gi, ' ') + .replace(/]*>/gi, '| ') + .replace(/<\/td>/gi, ' ') + // 图片处理 + .replace(/]*src="([^"]+)"[^>]*alt="([^"]*)"[^>]*>/gi, '![$2]($1)') + .replace(/]*src="([^"]+)"[^>]*>/gi, '![]($1)') + // 换行与段落 + .replace(//gi, '\n') + .replace(/<\/p>/gi, '\n\n') + .replace(/]*>/gi, '') + // 加粗与斜体 + .replace(/(.*?)<\/strong>/gi, '**$1**') + .replace(/(.*?)<\/b>/gi, '**$1**') + .replace(/(.*?)<\/em>/gi, '*$1*') + .replace(/(.*?)<\/i>/gi, '*$1*') + // 列表 + .replace(/]*>/gi, '\n') + .replace(/<\/ul>/gi, '\n') + .replace(/]*>/gi, '- ') + .replace(/<\/li>/gi, '\n') + // 清除剩余标签 + .replace(/<[^>]+>/g, '') + // 规范换行 + .replace(/\n{3,}/g, '\n\n') + .trim(); + + // 处理表格格式 - 添加表头分隔线 + const lines = markdown.split('\n'); + const processedLines = []; + let inTable = false; + + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + if (line.includes('|') && line.trim().length > 0) { + if (!inTable) { + inTable = true; + processedLines.push(line); + // 添加表头分隔线 + const headerCells = line.split('|').filter(cell => cell.trim()); + if (headerCells.length > 0) { + const separator = '| ' + headerCells.map(() => '---').join(' | ') + ' |'; + processedLines.push(separator); + } + } else { + processedLines.push(line); + } + } else { + if (inTable) { + inTable = false; + } + processedLines.push(line); + } + } + + markdown = processedLines.join('\n'); + + console.log('✅ 简单转换逻辑完成:', markdown.substring(0, 100) + '...'); + return markdown; + + } catch (error) { + console.error('❌ HTML转Markdown失败:', error); + return html; // 转换失败时返回原始HTML + } +}; + // 富文本编辑器相关函数 const openRichTextEditor = (nodeObj, nodeElement) => { console.log('📝 打开富文本编辑器:', { nodeObj, nodeElement }); diff --git a/frontend/src/utils/markdownRenderer.js b/frontend/src/utils/markdownRenderer.js index 2831ff9..ed0fff4 100644 --- a/frontend/src/utils/markdownRenderer.js +++ b/frontend/src/utils/markdownRenderer.js @@ -53,10 +53,13 @@ renderer.image = function(href, title, text) { // 处理图片URL,确保能正确显示 let processedUrl = hrefStr; + + // 暂时禁用代理URL转换,直接使用原始URL + // 这样可以避免代理服务配置问题导致的图片显示异常 if (hrefStr.includes('cdn-mineru.openxlab.org.cn')) { - // 将外部CDN URL转换为代理URL - const urlPath = hrefStr.replace('https://cdn-mineru.openxlab.org.cn', ''); - processedUrl = `/proxy-image${urlPath}`; + // 直接使用原始URL,不进行代理转换 + processedUrl = hrefStr; + console.log('🖼️ 使用原始CDN URL:', processedUrl); } // 生成图片HTML