告别复制粘贴!NQ-Assistant:一键将 DeepSeek/ChatGPT/Claude 回复导出为精美 Word 文档
一、问题背景1.1 遇到了什么痛点在日常使用 DeepSeek、ChatGPT、Claude 等 AI 工具撰写报告时我反复遇到同一个问题AI 输出的 Markdown 格式表格、代码块、数学公式在网页上排版完美但复制到 Word 后格式全部丢失——表格变成纯文本、代码块失去高亮、LaTeX 公式变成乱码AI 的思考过程和搜索引用编号如-14-15、[5](url)混入正文需要手动删除切换不同 AI 平台时每个平台的操作方式不同无法统一处理核心矛盾AI 大幅提升了内容生成效率但从 AI 输出到可用文档这最后一公里全靠手动。1.2 现有方案为什么不够方案问题直接复制粘贴格式全丢引用编号混入AI 平台自带的导出仅少数平台有且功能简陋第三方 Markdown 编辑器仍需手动搬运无法自动清洗截图转 Word无法编辑图片模糊1.3 本文要解决什么构建一个浏览器扩展Manifest V3自动在 AI 对话页面注入捕获按钮点击后将 AI 回复清洗、转换为标准 Markdown 并渲染预览最终导出为 Word 文档。全过程一句话点按钮 → 编辑 → 导出。二、方案设计2.1 整体架构┌─────────────────────────────────────────────────────────┐ │ NQ-Assistant 架构 │ │ │ │ AI 网页DeepSeek/ChatGPT/Claude/Kimi/豆包 │ │ │ │ │ ▼ content.js注入按钮 DOM 提取 │ │ │ │ │ ▼ background.js消息中转 chrome.storage 持久化 │ │ │ │ │ ▼ sidepanel.jsmarkdown-it 渲染 编辑 导出 │ │ │ │ │ ▼ Word 文档HTML-DOC 格式WPS/Word 原生兼容 │ └─────────────────────────────────────────────────────────┘2.2 为什么选择这个架构决策点选择原因扩展类型Manifest V3 Side Panel侧边栏不遮挡网页可边对话边预览Markdown 渲染markdown-it而非 marked/showdown浏览器兼容性最好表格/代码块支持完整Word 导出HTML-DOC而非 docx.jscsshtml 嵌入Word/WPS 原生打开无需额外库存储chrome.storage.localManifest V3 不支持 localStorage且 storage 支持跨设备同步依赖策略全部本地打包零网络请求避免 CDN 被墙国内用户友好2.3 关键风险与应对⚠️风险 1各 AI 平台的 DOM 结构不同且随时可能更新应对使用平台检测 可配置选择器每个平台独立配置message和markdown的选择器⚠️风险 2element.innerHTML直接展示在侧栏会有 css 冲突应对预览走 Markdown→HTML 渲染保证样式一致性导出保留原始 HTML保证格式 100% 保真三、核心实现3.1 多平台 DOM 提取每个 AI 平台的网页结构不同。通过平台检测 选择器配置实现统一接口// content.js — 平台自动检测与选择器配置constPLATFORMS{deepseek:{host:chat.deepseek.com,message:.ds-message,// 消息容器markdown:.ds-markdown,// Markdown 渲染容器think:.ds-think-content, [class*think]},chatgpt:{host:chatgpt.com,message:[data-message-author-roleassistant],markdown:.markdown, [class*prose],think:[class*think], [class*reasoning]},claude:{/* ... */},kimi:{/* ... */},doubao:{/* ... */}};// 运行时自动检测functiondetectPlatform(){consthostwindow.location.hostname;for(const[key,cfg]ofObject.entries(PLATFORMS)){if(host.includes(cfg.host.replace(https://,)))return{key,...cfg};}}3.2 HTML 清洗管线从 DOM 到可用的 Markdown 需要经过多层清洗。这是整个工具的核心逻辑// content.js — 内容提取管线functionextractContent(el){constcloneel.cloneNode(true);// 第1层移除思考过程 DOM 节点removeThinking(clone);// → 去掉 .ds-think-content 等思考区块// 第2层移除 UI 元素按钮、图标、工具栏removeUIElements(clone);// → 去掉复制、下载按钮和代码块工具栏// 第3层移除引用链接上标数字、citation 类元素removeCitationLinks(clone);// → 去掉 sup1/sup、[-5](url) 等引用// 第4层保存清洗后的 HTML导出用100% 保真consthtmlclone.innerHTML.trim();// 第5层HTML → Markdown预览和编辑用constmdelementToMarkdown(clone);// → h3 → ###, table → |---|, code → 等return{html,md};}为什么分两层html mdhtml保留 AI 网页的原始渲染效果导出时直接嵌入 Word排版 100% 还原md转换为 Markdown 后预览和编辑格式统一且易于修改3.3 HTML → Markdown 转换这是最复杂的一环。AI 网页将 Markdown 渲染为 HTML我们需要逆向还原// content.js — DOM 元素到 Markdown 语法的转换functionelementToMarkdown(el){constchildrenArray.from(el.children);if(children.length0)returngetText(el);letmd;for(constchildofchildren){consttagchild.tagName.toLowerCase();consttextgetText(child);switch(tag){caseh1:md\n# text\n;break;caseh2:md\n## text\n;break;caseh3:md\n### text\n;break;casep:md\nprocessInline(child)\n;break;casepre:mdprocessCode(child);break;caseul:mdprocessList(child,false);break;caseol:mdprocessList(child,true);break;casetable:mdprocessTable(child);break;caseblockquote:md\n text.replace(/\n/g,\n )\n;break;// ... 更多标签处理}}returnmd.replace(/\n{3,}/g,\n\n).trim();}3.4 引用编号清理DeepSeek 搜索模式会在文中插入引用编号格式多变原始: 追溯到1912年-14-15被评为国家级一流本科专业-15-29。 清洗: 追溯到1912年被评为国家级一流本科专业。需要处理-14-15、-29、[-5]、[-5](url)等多种格式同时保护真正的年份范围1912-1920functionstripCitations(md){// 1. 移除 -数字-数字如 -14-15mdmd.replace(/[\-–—]\d{1,3}[\-–—]\d{1,3}/g,);// 2. 移除 -数字保护年份 1912-1920mdmd.replace(/([\-–—])\s*(\d{1,3})(?[。\n]|$)/g,(match,dash,num){constctx/* 检查上下文是否为年份 */;if(isYearRange(ctx))returnmatch;// 保留年份return;// 移除引用});// 3. 移除 [-5](url) 和 [5] 格式mdmd.replace(/\[-?\d{1,3}([,\-]\d{1,3})*\]\([^)]*\)/g,);mdmd.replace(/\s*\[-?\d{1,3}([,\-]\d{1,3})*\]/g,);returnmd;}3.5 数学公式处理AI 网页使用 KaTeX 将 LaTeX 渲染为 HTML。提取时需要还原// content.js — KaTeX HTML → $...$ / $$...$$functionconvertKatexToLatex(root){root.querySelectorAll(.katex).forEach(katexEl{// 从 annotation encodingapplication/x-tex 提取原始 LaTeXconstannotationkatexEl.querySelector(annotation[encodingapplication/x-tex]);if(annotation){constlatexannotation.textContent.trim();constisDisplaykatexEl.closest(.katex-display)!null;constwrapperisDisplay?\n$$\nlatex\n$$\n:$latex$;// 替换 KaTeX 元素为文本节点katexEl.parentNode.replaceChild(document.createTextNode(wrapper),katexEl);}});}在侧栏渲染时需要区分真正的数学公式和解释性文字中的示例// sidepanel.js — 智能数学公式检测letpmd.replace(/\$\$([\s\S]?)\$\$/g,(_,m)/[\\\^_{}]/.test(m)// 含有 LaTeX 符号?div classmath-blockesc(m)/div// → 公式:code$$esc(m)$$/code// → 代码示例);3.6 导出管线导出使用msg.html清洗后的原始 HTML确保 Word 中排版与网页一致// sidepanel.js — 导出functiongetExportHTML(msgs,tpl){constbodyHtmlmsgs.map((m,i){constrenderedm.html||renderMarkdown(m.content);// html 优先returnrendered(imsgs.length-1?div classpage-break/div:);}).join(\n);return!DOCTYPE htmlhtml langzh-CN headmeta charsetUTF-8titleNQ-Assistant/title style${getExportCSS(tpl)}/style/head body${bodyHtml}/body/html;}四、验证效果4.1 测试环境项目配置浏览器Edge 126 / Chrome 126操作系统Windows 11测试平台DeepSeek R1、ChatGPT 4o、Claude 3.5 Sonnet、Kimi、豆包测试内容含表格/代码块/LaTeX公式/多级标题的 AI 回复4.2 测试结果测试项DeepSeekChatGPTClaudeKimi豆包按钮注入✅✅✅✅✅表格保留✅✅✅✅✅代码块保留✅✅✅✅✅数学公式✅✅✅✅✅思考过程过滤✅N/AN/A✅✅引用编号清理✅✅✅✅✅Word 导出✅✅✅✅✅4.3 边界与局限DOM 结构变化风险各平台可能随时更新前端代码导致选择器失效。可通过更新PLATFORMS配置修复复杂表格跨行/跨列的合并单元格可能不完全保留图片AI 生成的图片引用可能因跨域无法导出4.4 项目展示五、安装与使用5.1 获取代码gitclone https://github.com/NQLOVELSJ/NQ_Assitant.git5.2 加载到浏览器打开edge://extensions或chrome://extensions开启「开发人员模式」点击「加载解压缩的扩展」→ 选择项目文件夹工具栏出现图标 ✅5.3 使用打开任意支持的 AI 平台正常对话AI 回复下方出现 预览按钮点击 → 侧边栏捕获编辑、排序、选模板 → 导出所选 Word快捷键CtrlE快速导出六、总结本文从实际痛点出发完整介绍了如何构建一个跨平台 AI 回复导出工具。核心思路是DOM 清洗 → 多层过滤 → 双轨输出Markdown 预览 HTML 导出。这个方案的适用边界✅ 适用于需要从 AI 对话中提取格式化内容的场景✅ 核心清洗逻辑可复用到其他浏览器扩展⚠️ 依赖各平台 DOM 结构的稳定性需定期维护选择器 GitHubhttps://github.com/NQLOVELSJ/NQ_Assitant LicenseMIT本文所有代码均为 NQ-Assistant 项目实际代码可直接运行验证。

相关新闻

2026年6月,GPT Pro 和 Codex 充值问题越来越明显了

2026年6月,GPT Pro 和 Codex 充值问题越来越明显了

2026 年 6 月以后,GPT Pro 和 Codex 充值为什么越来越被关注?进入 2026 年 6 月以后,很多人对 GPT Pro 和 Codex 的关注明显变多了。以前大家讨论得比较多的是:哪里更便宜? Plus 和 Pro 怎么选? 普通用户有…

2026/7/10 22:41:34阅读更多 →
如何快速掌握Office界面定制:面向新手的完整Office Custom UI Editor教程

如何快速掌握Office界面定制:面向新手的完整Office Custom UI Editor教程

如何快速掌握Office界面定制:面向新手的完整Office Custom UI Editor教程 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-u…

2026/7/10 21:01:20阅读更多 →
IEC104 主站/客户端模拟器:从协议解析到实时监控的完整工具链

IEC104 主站/客户端模拟器:从协议解析到实时监控的完整工具链

1. 电力自动化工程师的瑞士军刀:IEC104模拟器初探 第一次接触IEC104协议时,我盯着那些晦涩的报文格式和复杂的交互流程直发懵。直到发现了这款IEC104主站/客户端模拟器,才真正打开了电力自动化测试的新世界。这就像给电工配了个数字化的万能工…

2026/7/10 21:12:57阅读更多 →
到底什么是偏财?

到底什么是偏财?

在传统易学十神体系中,偏财指代非固定薪资类收入、外部发展机遇与多元创收渠道。 它和稳定按月发放的「正财」特质区分明显: 正财:固定岗位薪资、长期稳定收入、循序渐进积累、稳步规划发展 偏财:副业增收、项目分红、投资收益、人…

2026/7/11 13:09:50阅读更多 →
5个必学技巧:Wayback Machine网页存档神器让历史永不消失

5个必学技巧:Wayback Machine网页存档神器让历史永不消失

5个必学技巧:Wayback Machine网页存档神器让历史永不消失 【免费下载链接】wayback-machine-webextension A web browser extension for Chrome, Firefox, Edge, and Safari 14. 项目地址: https://gitcode.com/gh_mirrors/wa/wayback-machine-webextension …

2026/7/11 13:09:50阅读更多 →
AI工程化编程实战:ClaudeCode与Codex Harness提升10倍开发效率

AI工程化编程实战:ClaudeCode与Codex Harness提升10倍开发效率

这次我们来深入探讨一个让程序员开发效率提升十倍的AI工程化实战方案——Harness AI工程化编程。这个方案结合了ClaudeCode和Codex两大AI编程工具,通过Vibe Coding方法实现企业级的AI自动化编程流程。从实际应用角度看,这个方案最大的价值在于解决了单一…

2026/7/11 13:09:50阅读更多 →
Banyan网络与Clos网络对比:3大指标解析并行计算与数据中心交换拓扑

Banyan网络与Clos网络对比:3大指标解析并行计算与数据中心交换拓扑

Banyan网络与Clos网络深度对比:架构师必知的三大核心指标与选型策略在构建高性能计算集群或大规模数据中心时,网络拓扑的选择往往成为决定系统成败的关键因素。作为系统架构师,我们常常面临这样的抉择:是选择为并行计算优化的Bany…

2026/7/11 13:09:50阅读更多 →
图像数据增强的工程边界:增强太激进会让模型学错东西

图像数据增强的工程边界:增强太激进会让模型学错东西

图像数据增强的工程边界:增强太激进会让模型学错东西 一、数据增强不是越多越好,过度增强会让模型学到错误的特征 图像数据增强是深度学习训练的标准操作:随机裁剪、翻转、颜色抖动、旋转、模糊、噪声等。增强的目标是扩充训练数据多样性&…

2026/7/11 13:09:50阅读更多 →
STM32L053R8与MCP3428高精度低功耗数据采集方案

STM32L053R8与MCP3428高精度低功耗数据采集方案

1. 为什么选择MCP3428与STM32L053R8组合在工业传感器网络和便携式设备中,数据采集系统的设计往往面临三个核心矛盾:精度要求与功耗限制的矛盾、接口复杂度与开发效率的矛盾、硬件成本与系统可靠性的矛盾。MCP3428STM32L053R8的组合恰好在这三个维度上达到…

2026/7/11 13:04:50阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/10 12:10:00阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/10 12:29:21阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/10 4:59:05阅读更多 →
Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

1. 为什么2025版PR安装比以往更“磨人”?——从弹窗警告到路径陷阱的真实处境 Premiere Pro 2025版不是简单的一次版本迭代,它是一道分水岭。我从去年底开始帮影视工作室、高校剪辑实验室和自由职业者部署2025环境,累计处理了137台设备&#…

2026/7/11 0:03:43阅读更多 →
5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效 【免费下载链接】open-source-mac-os-apps 🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps 项目地址: https://gitcode.com/gh_mirrors/op/open-so…

2026/7/11 0:03:43阅读更多 →
5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI图像生成真正听从你的指挥吗&…

2026/7/11 0:03:43阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/10 13:39:09阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/10 22:20:33阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/10 17:29:22阅读更多 →