DeepSeek 代码块折叠

Created at 7 days ago
Updated at 6 days ago
代码块折叠按钮,支持自定义自动折叠阈值和预览行数(双菜单配置)
Total Installs
37
Today's New
+2
User Rating
5.0 / 5.0 (1)
Current Version
1.15.0
Script Details

DeepSeek 代码块折叠增强脚本

为 DeepSeek 对话页面添加代码块折叠功能,支持自定义自动折叠阈值和预览行数,并提供优雅的配置界面。按钮风格与官方复制按钮一致,完美适配深浅主题。

✨ 主要特性

  • 代码块折叠/展开:在代码块顶部(与复制、下载按钮并列)添加折叠按钮,点击即可隐藏或显示代码内容。
  • 自动折叠阈值:可设置代码块行数阈值,超过该行数的代码块在页面加载时自动折叠。
  • 预览行数:折叠时可选显示前 N 行(例如显示前 5 行),其余内容隐藏,既节省空间又保留上下文。
  • 双菜单配置:通过脚本猫菜单(Tampermonkey / ScriptCat)可随时调整自动折叠阈值预览行数,无需修改代码。
  • 优雅的交互
    • 配置弹窗使用自定义模态框,风格与 DeepSeek 页面一致。
    • 保存设置后显示底部居中 Toast 提示,自动淡出并刷新页面。
  • 视觉完美适配
    • 使用内嵌 SVG 图标(chevron-up/down),尺寸 20×20,颜色继承主题文字颜色。
    • 按钮样式(圆角、间距、字体)与官方复制按钮完全一致,深浅主题下均清晰可辨。

📦 安装方法

  1. 确保您的浏览器已安装 TampermonkeyScriptCat 等用户脚本管理器。
  2. 添加本脚本。
  3. 访问 chat.deepseek.com,刷新页面即可生效。

脚本仅在 chat.deepseek.comwww.deepseek.comdeepseek.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_registerMenuCommandGM_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 提供的优秀对话平台,以及所有使用本脚本的用户。欢迎反馈建议或贡献代码,让体验更完善。