FIT2CLOUD
代码折叠增强 的图标

代码折叠增强

1,417
749

自动折叠长代码块和长图片,高度可以自行配置

2.1.1
子青雨 发布于

2.1.1

最新
>=2.20.0

🐛 体验修复版:折叠不再挡代码,打印不再裁长行

  • 折叠按钮不再遮挡末行代码:折叠态底部增加留白,按钮落在代码区下方;主题自带的代码块容器也统一按代码区裁剪
  • 恢复折叠态渐隐遮罩:代码块与长图折叠时,底部渐隐提示下方还有内容。遮罩与留白的颜色按代码区真实背景合成,切换暗色 / 浅色主题后自动重算,不再出现异色横条
  • 展开 / 收起动画双向生效:此前收起是瞬间跳变,现在两个方向都有平滑过渡
  • 打印 / 导出 PDF 长代码行自动折行:长行不再被横向裁掉,按钮与装饰层自动隐藏
  • 长图折叠更完整:页面加载完成后重新评估尺寸尚未撑高的长图;已加载的长图照常折叠,同时不会提前加载全页图片
  • 收起后阅读位置稳定:长代码块收起时自动补偿滚动,读者不会被顶到别处
  • 主题样式还原更彻底:移除插件容器时,被临时调整的主题滚动样式会正确还原

升级无需任何配置,刷新页面即生效。

资源下载

  • plugin-codeenhance-2.1.1.jar
2.1.0
子青雨 发布于
>=2.20.0

🔧 体验增强 + 兼容性维护:适配 Halo 2.27、与 Shiki 折叠共存

  • 新增:展开状态记忆——读者展开过的代码块,刷新页面或站内跳转返回后保持展开。状态只存在浏览器 localStorage(按页面路径 + 代码块序号),不上传服务端;可在后台「记住代码块展开状态」中关闭
  • 新增:打印自动展开——@media print 下强制展开所有折叠的代码块与长图并隐藏按钮。此前打印/导出 PDF 只能得到前几行
  • 新增:剩余行数提示——折叠态按钮显示「展开 · N 行」,便于判断是否值得展开;同步更新 aria-label
  • 适配 Halo 2.27:构建基线同步至 Halo 2.27,已在 2.25.x 与 2.27.x 实机验证兼容
  • 与官方 Shiki 插件折叠共存:识别 Shiki 的 [!code fold:start] 折叠控件(类名 .fold-tail-control / .fold-start),命中则跳过该代码块,避免出现两套折叠控件;Shiki 已启用但无折叠标记的代码块仍照常自动折叠
  • 修复:部分主题下文章正文被裁剪、无法滚动(重要):旧版为让折叠按钮吸底,会把阻断 sticky 的祖先元素 overflow 改为 clip,对 overflow: hidden 视觉等价,但会废掉 overflow: auto / scroll 真实滚动容器的滚动能力,导致正文被裁剪、内容不可达。现已识别真实滚动容器并完全跳过改写

资源下载

  • plugin-codeenhance-2.1.0.jar
2.0.3
子青雨 发布于
>=2.20.0

feat: 重构按钮定位并增强健壮性

  • 重构按钮定位策略,折叠态锚定容器底部,展开态粘视口底部
  • 修复 sticky 阻断问题,支持 overflow:clip 修复及旧浏览器降级
  • 增加后端兜底注入与配置校验,移除模板类型过滤
  • 兼容非 PJAX 动态加载,使用 MutationObserver 兜底重扫
  • 优化图片懒加载检测与折叠逻辑,完善暗色主题适配

资源下载

  • plugin-codeenhance-2.0.3.jar
2.0.2
子青雨 发布于
>=2.20.0

修复:长图折叠功能多项缺陷

  • 包裹容器居中:长图折叠容器与主题图片保持一致居中,不再错位偏左
  • 折叠态渐变遮罩:折叠时图片底部新增渐变遮罩,提示下方仍有内容
  • sticky 失效降级:若主题导致 sticky 失效,自动降级为 absolute 定位
  • 折叠判断与展开动画优化:折叠判定由图片原始像素高度改为页面实际渲染高度,修复窄列中图片被 CSS 缩放后仍被包裹、折叠态与原图无差异的问题

资源下载

  • plugin-codeenhance-2.0.2.jar
2.0.1
子青雨 发布于
>=2.20.0

🐛 修复:插件 CSS 不再覆盖主题代码块样式

  • 修复 CSS 冲突:移除了 .ce-pre 中多余的重置样式(background: transparent、padding: 0、border: 0 等),主题的代码块背景色、内边距、滚动条等样式完整保留
  • 修复静态资源 404:重新创建被误删的 reverseProxy.yaml,修正资源路径去掉多余 /static/ 层级,CSS/JS 文件恢复正常加载
  • 移除无用数据:前端配置不再注入未使用的 pluginName 字段
  • 内存整洁:pjax 切换时正确释放旧 IntersectionObserver 实例
  • 文档修正:README 后端代码示例对齐实际实现

资源下载

  • plugin-codeenhance-2.0.1.jar
2.0.0
子青雨 发布于
>=2.20.0

v2.0.0 (2026-06-29)

🎉 重大精简:移除所有非核心功能,专注折叠体验

  • 移除代码高亮:不再依赖 Highlight.js,文件大小减少 97%
  • 移除行号显示:简化代码块结构
  • 移除复制按钮:如需复制功能,可使用浏览器自带复制或主题自带功能
  • 移除语言名称显示:简化界面
  • 移除标题栏:不再显示 macOS 风格红绿灯按钮
  • 新增懒加载图片兼容:支持 data-src、data-original、data-lazy 等常见懒加载属性
  • 新增展开态 sticky 按钮:长代码时展开按钮固定在视口底部
  • 新增横向滚动支持:超长代码行自动横向滚动
  • 新增无障碍支持:aria-label、aria-expanded、:focus-visible
  • 性能优化:JS 从 ~600 行重构为 ~270 行(-55%),CSS 从 ~800 行重构为 ~220 行(-72%)
  • 浏览器兼容性提升:Chrome 57+、Firefox 52+、Safari 10.1+
  • 默认启用功能:代码折叠和长图折叠默认开启(之前默认关闭)

升级说明:

  • 从 v1.x 升级到 v2.0.0 会自动丢失高亮、行号、复制按钮等功能
  • 如果依赖这些功能,请勿升级
  • 如果只需要折叠功能,v2.0.0 性能更优,体验更好

资源下载

  • plugin-codeenhance-2.0.0.jar
1.1.6
子青雨 发布于
>=2.20.0
  • 设为最新版本

资源下载

  • plugin-code-enhance-1.1.6.jar
1.1.6
子青雨 发布于
>=2.20.0
  • 代码审查修复:基于全面代码审查,修复以下问题
  • 语法高亮保留:新增 splitHtmlLines() 方法,行号显示时完整保留 hljs 语法高亮结构,修复行号导致高亮失效的问题
  • Shiki 冲突检测:恢复 Shiki 高亮插件检测逻辑,当检测到 Shiki 存在时自动跳过高亮处理,避免双重样式冲突
  • 初始化合并:统一 observeCodeBlocks() 和 observeImages() 调用,移除重复的模块 init() 调用,提升性能
  • 未使用变量清理:删除 pendingInit 未使用变量
  • CSS :has() 兼容:使用 @supports 特性查询,并为不支持 :has() 的浏览器提供 CSS fallback
  • JSDoc 完善:为所有关键函数添加完整的 JSDoc 注释,提升代码可维护性
  • 错误日志:添加复制按钮失败的错误日志输出

资源下载

  • plugin-code-enhance-1.1.6.jar
1.1.5
子青雨 发布于
>=2.20.0
  • 开关独立:所有功能开关默认关闭,未启用的功能不再加载任何资源
  • 主题兼容:通过 CSS 变量统一管理配色,修复部分主题下代码文字不可读的问题
  • 移动端修复:移除 touchstart 绑定,避免点击双触发;底部折叠按钮严格依据状态显隐
  • 代码重构:applyThemeColors 改为数据驱动(BASE_COLORS),processCode 拆分为 ensureWrapper/addHeader 子方法
  • 观察者优化:observeCodeBlocks 仅在启用高亮或代码折叠时观察代码块,避免仅启用长图折叠时误装饰代码
  • 配置增强:亮色/暗色主题选择器均提供完整 14 种主题选项,支持反向配色
  • 日志清理:移除所有 console.log 调试日志,保留 console.warn 错误日志

资源下载

  • plugin-code-enhance-1.1.5.jar
1.1.4
子青雨 发布于
>=2.20.0
  • 资源统一:统一 CSS 文件名为 code-enhance.css(不存在 .min.css 版本)
  • 开关独立修复:修复未开启代码高亮只开启其他选项时,前台仍加载代码高亮资源的问题
  • 条件注入优化:根据各功能开关条件性注入资源,避免加载未启用的功能模块

资源下载

  • plugin-code-enhance-1.1.4.jar
1.1.3
子青雨 发布于
>=2.20.0
  • 配置项重命名:enableCodeHighlight 重命名为 enableHighlight,语义更简洁
  • 代码重构:重构头部处理器,抽取 injectResources、buildProperties、appendHljsResources、appendConfig、appendBaseResources 等方法,优化模板资源注入逻辑
  • 功能检查简化:新增 hasAnyFeatureEnabled() 方法,简化全功能禁用时的跳过判断
  • 模板匹配优化:抽取 hasContentVariable() 方法,简化内容模板判断逻辑
  • Logo 本地化:插件 Logo 路径从外链改为本地静态资源 static/images/dan.svg
  • 类注释完善:补充 CodeEnhanceHeadProcessor 类注释文档
  • 错误日志增强:onErrorResume 改为记录完整异常堆栈

资源下载

  • plugin-code-enhance-1.1.3.jar
1.1.2
子青雨 发布于
>=2.20.0
  • 更新静态资源引用为压缩版本 (code-enhance.min.css/js)
  • 删除未压缩的源文件 (code-enhance.css/js)

资源下载

  • plugin-code-enhance-1.1.2.jar
1.1.1
子青雨 发布于
>=2.20.0
  • 强化 XSS 防护:hljs 高亮流程使用 textContent 提取代码,未高亮场景下行号使用 escapeHtml() 转义
  • 修复异步竞态:Highlight.init() 异步加载时延迟启动 IntersectionObserver,避免 doHighlight 清空已装饰的行号
  • 代码审查优化:notContentTemplate 检查顺序调优,删除冗余方法,预计算选择器字符串

资源下载

  • plugin-code-enhance-1.1.1.jar
1.1.0
子青雨 发布于
>=2.20.0

动态加载 highlight.min.js,仅在检测到代码块时引入资源
扩展模板匹配范围,支持 Moments 和 Docsme 插件页面
重构高亮逻辑,使用 hljs API 处理文本以防止 XSS
移除静态脚本标签,改为前端按需加载
优化触摸事件监听,添加 passive: true 提升滚动性能
改进代码块标题栏 DOM 构建,确保语言文本安全插入
调整折叠按钮样式为 sticky 定位

资源下载

  • plugin-code-enhance-1.1.0.jar
1.0.0
子青雨 发布于
>=2.20.0

提供代码高亮、代码折叠、长图折叠、行号显示和标题栏等功能

资源下载

  • plugin-code-enhance-1.0.0.jar