DeepSeek 代码块折叠增强脚本
为 DeepSeek 对话页面添加代码块折叠功能,支持自定义自动折叠阈值和预览行数,并提供优雅的配置界面。按钮风格与官方复制按钮一致,完美适配深浅主题。
✨ 主要特性
- 代码块折叠/展开:在代码块顶部(与复制、下载按钮并列)添加折叠按钮,点击即可隐藏或显示代码内容。
- 自动折叠阈值:可设置代码块行数阈值,超过该行数的代码块在页面加载时自动折叠。
- 预览行数:折叠时可选显示前 N 行(例如显示前 5 行),其余内容隐藏,既节省空间又保留上下文。
- 双菜单配置:通过脚本猫菜单(Tampermonkey / ScriptCat)可随时调整自动折叠阈值和预览行数,无需修改代码。
- 优雅的交互:
- 配置弹窗使用自定义模态框,风格与 DeepSeek 页面一致。
- 保存设置后显示底部居中 Toast 提示,自动淡出并刷新页面。
- 视觉完美适配:
- 使用内嵌 SVG 图标(chevron-up/down),尺寸 20×20,颜色继承主题文字颜色。
- 按钮样式(圆角、间距、字体)与官方复制按钮完全一致,深浅主题下均清晰可辨。
📦 安装方法
- 确保您的浏览器已安装 Tampermonkey 或 ScriptCat 等用户脚本管理器。
- 添加本脚本。
- 访问 chat.deepseek.com,刷新页面即可生效。
脚本仅在
chat.deepseek.com、www.deepseek.com、deepseek.com域名下运行,不影响其他网站。
⚙️ 配置说明
通过脚本猫菜单配置(推荐)
点击脚本管理器图标 → 找到“DeepSeek 代码块折叠”脚本 → 点击菜单项:
⚙️ 设置自动折叠阈值
设置代码块自动折叠的行数阈值(0 表示禁用自动折叠)。
例如输入20:超过 20 行的代码块会自动折叠。⚙️ 设置折叠预览行数
设置折叠时显示的行数(0 表示关闭预览,完全隐藏代码块)。
例如输入5:折叠后只显示前 5 行,其余隐藏并显示“...”。
在弹出的对话框中输入数字,点击“确认”后页面底部会短暂显示 Toast 提示,然后自动刷新应用新设置。
手动修改脚本参数(高级)
如果您希望调整按钮文字或其他样式,可编辑脚本开头的常量:
const btnTextFold = '折叠'; // 折叠状态按钮文字
const btnTextUnfold = '展开'; // 展开状态按钮文字
按钮外观可在 GM_addStyle 中修改 .ds-fold-btn 相关样式。
🖱️ 使用指南
- 手动折叠/展开:点击代码块右上角的“📂 展开”或“📄 折叠”按钮即可切换状态。
- 自动折叠:当代码块行数超过自动折叠阈值时,页面加载或新消息出现时该代码块会自动折叠(具体行为取决于预览行数设置)。
- 预览模式:若预览行数 > 0,折叠后代码块将只显示前 N 行,底部会显示“...”,点击按钮可展开查看全部。
🎨 自定义样式
脚本已内置与 DeepSeek 官方风格一致的颜色和交互,无需额外配置。如果您希望进一步调整按钮外观(如圆角、间距、字体大小),可修改脚本中 GM_addStyle 内的 .ds-fold-btn 相关样式。
例如调整按钮圆角和间距:
.ds-fold-btn {
border-radius: 12px; /* 修改圆角 */
gap: 2px; /* 图标与文字间距 */
}
❓ 常见问题
Q:为什么有些代码块没有折叠按钮?
A:脚本仅对 <pre> 标签生效,且要求位于 .md-code-block 容器内。若代码块结构特殊,可尝试刷新页面或检查控制台是否有错误。
Q:自动折叠阈值设置了 20,但小于 20 行的代码块也自动折叠了?
A:请检查预览行数是否设为 0,若预览行数 > 0,自动折叠会使用预览模式(显示前 N 行),而非完全隐藏。
Q:配置弹窗无法弹出或 Toast 不显示?
A:可能是脚本管理器权限问题,确保脚本已启用 @grant 中包含了 GM_registerMenuCommand 和 GM_setValue。可尝试重新安装脚本。
Q:更新脚本后原有配置会丢失吗?
A:不会。配置存储在浏览器的扩展存储中,更新脚本后会自动读取上次保存的阈值和预览行数。
📄 更新日志
[1.15.0] - 2026-03-22
- 新增菜单项“设置自动折叠阈值”,支持动态调整折叠行数阈值。
- 重构配置弹窗为通用组件,支持任意数值类型设置。
[1.14.2] - 2026-03-22
- 将配置保存后的系统
alert替换为优雅的底部居中 Toast 提示,自动淡出无需确认。
[1.14.1] - 2026-03-22
- 同步用户自定义样式:按钮圆角
12px,字体13px,间距2px。
[1.14.0] - 2026-03-22
- 添加自定义配置弹窗,完全替换原生
prompt,支持数字输入、回车确认、点击遮罩关闭。 - 弹窗样式自动适配 DeepSeek 深浅主题。
[1.13.0] - 2026-03-22
- 折叠按钮图标替换为内嵌 SVG(chevron-up/down),尺寸 20×20。
- 添加
autoFoldThreshold配置项。
[1.12.0] - 2026-03-22
- 引入 Font Awesome 6 CDN,使用
chevron-down/chevron-up图标。
[1.11.0] - 2026-03-22
- 折叠按钮图标从纯文本改为 SVG 箭头。
[1.10.0] - 2026-03-22
- 添加脚本猫菜单支持:可动态设置预览行数,配置存储持久化。
[1.9.1] - 2026-03-22
- 修复自动折叠功能在预览模式开启时失效的问题。
[1.9.0] - 2026-03-22
- 新增“预览行数”功能:折叠时显示前 N 行,其余隐藏并显示“...”。
[1.8.0] - 2026-03-22
- 按钮颜色改为
color: currentColor,完美继承主题文字颜色。 - 悬停背景使用半透明灰色,与官方复制按钮一致。
[1.7.0] - 2026-03-22
- 强制按钮文字颜色在浅色主题下为黑色、深色主题下为白色。
- 悬停效果与官方复制按钮完全一致。
[1.6.0] - 2026-03-22
- 移除“自动折叠思考”和“一键复制思考”功能,回归纯净代码块折叠。
[1.5.0] - 2026-03-22
- 集成自动折叠思考内容及一键复制思考功能。
[1.4.0] - 2026-03-22
- 折叠按钮与复制、下载按钮并列,自动清理旧版独立按钮。
[1.3.0] - 2026-03-22
- 修复重复添加折叠按钮问题,优化颜色继承。
[1.2.0] - 2026-03-22
- 按钮位置与复制按钮并列(利用
.efa13877容器)。
[1.1.0] - 2026-03-22
- 支持自动折叠长代码(可配置行数阈值)。
[1.0.0] - 2026-03-22
- 初始版本:基本代码块折叠功能。
🙏 致谢
感谢 DeepSeek 提供的优秀对话平台,以及所有使用本脚本的用户。欢迎反馈建议或贡献代码,让体验更完善。