惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
Jina AI
Jina AI
S
SegmentFault 最新的问题
博客园 - 【当耐特】
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
The Cloudflare Blog
MyScale Blog
MyScale Blog
F
Full Disclosure
T
Tailwind CSS Blog
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
P
Privacy & Cybersecurity Law Blog
H
Help Net Security
A
Arctic Wolf
T
Tor Project blog
WordPress大学
WordPress大学
Cisco Talos Blog
Cisco Talos Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Project Zero
Project Zero
V2EX - 技术
V2EX - 技术
C
CERT Recently Published Vulnerability Notes
L
Lohrmann on Cybersecurity
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
S
Securelist
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
PCI Perspectives
PCI Perspectives
雷峰网
雷峰网
J
Java Code Geeks
G
GRAHAM CLULEY
D
DataBreaches.Net
C
CXSECURITY Database RSS Feed - CXSecurity.com
Attack and Defense Labs
Attack and Defense Labs
美团技术团队
Security Archives - TechRepublic
Security Archives - TechRepublic
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
Docker
Cloudbric
Cloudbric
L
LangChain Blog

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽 片刻 - Jdeal | Life is like a Design.
代码增强插件 — PluginCodeEnhance 发布
吴蛋蛋 · 2026-06-11 · via BlogFinder

刚转 Halo 过来时,很新鲜,试了很多主题和插件,折腾起来蛮爽的。

在这个过程中也渐渐发觉,有些功能像是击中了某些爽点,感觉非常棒。其中就有代码折叠、长图折叠——这些功能让文章整体的排版更舒服,阅读体验提升很明显。

但问题是,当时这些功能只是某些主题集成了,换了个主题就没了。而官方的代码高亮插件并没有带这些功能。我不想被主题绑架,索性自己弄了一个插件,把喜欢的功能都塞进去。

以下是代码增强插件 — PluginCodeEnhanc 的介绍,欢迎大家使用并反馈。

代码增强插件 — PluginCodeEnhance发布
代码增强插件 — PluginCodeEnhance发布

为什么需要这个插件

作为一个经常分享技术文章的博主,代码展示和图片排版一直是我非常在意的点。在使用 Halo 的过程中,我发现:

  1. 代码过长问题 :一个配置文件贴出来,页面被撑得老长,读者得不断滚动

  2. 图片过大问题 :高清截图直接展开,占据大量屏幕空间,页面显得很乱

  3. 主题绑定问题 :很多实用功能只在特定主题里有,换个主题就全丢了

我不想为了几个功能被锁死在某个主题上,于是决定做一个独立的插件,把这些问题一次性解决。

插件做了什么

V1.1.0 版本扩展模板匹配范围,支持 Moments 和 Docsme 插件页面适用范围:当前仅支持文章(post)和页面(page)模板,Moments / Docsme 等插件页面暂不支持。

这个插件围绕 "让代码和图片展示更舒服" 这个目标,做了几件事:

代码高亮(自动检测 Shiki,避免冲突)

基于 Highlight.js 11.11.1,支持 14 种高亮主题(7 个亮色 + 7 个暗色),包括:

  • 亮色: GitHub Light、Atom One Light、Solarized Light、VS Light、Tomorrow、Ascetic、Foundation

  • 暗色: GitHub Dark、Atom One Dark、VS 2015 Dark、Monokai、Solarized Dark、Obsidian、Dracula

暗色模式跟随 Halo 主题自动切换,配色无缝衔接。

智能代码折叠

长代码块超过设定行数自动折叠,展开 / 收起一键切换。页面不再被某段配置撑得臃肿,还可以滑动查看,想看细节时再展开。

特点:

  • 可自定义折叠阈值(默认 20 行)

  • 展开 / 收起状态记忆

  • 折叠按钮跟随浮动,方便操作

长图折叠

图片太高?自动收起,减少页面跳动和加载压力。

超过指定高度(默认 400px)的图片会自动折叠:

  • 保持页面整洁

  • 点击展开查看完整图片

  • 支持触摸操作,移动端友好

行号显示

为代码块添加行号,方便引用和定位。讨论代码时直接说 "看第 15 行",不用数。

标题栏

代码块顶部显示语言标识、复制按钮和折叠按钮,一目了然。

安装方法

方法一:手动安装

  1. 下载最新版本的插件 JAR 文件

  2. 登录 Halo 管理后台

  3. 进入「插件管理」→「安装插件」

  4. 选择下载的 JAR 文件上传安装

  5. 安装完成后启用插件

方法二:构建安装

# 克隆仓库
git clone https://github.com/NoEggEgg/plugin-code-enhance.git
cd plugin-code-enhance

# 构建插件
gradle build -x test

# 构建产物位于 build/libs/plugin-code-enhance-1.0.0.jar

配置选项

插件安装后,可在 Halo 管理后台进行配置:

配置项

说明

默认值

enableCodeHighlight

是否启用代码高亮

true

hljsTheme

亮色主题

github.min.css

hljsDarkTheme

暗色主题

github-dark.min.css

enableCodeFold

是否启用代码折叠

true

codeFoldLine

代码折叠阈值(行数)

20

enableImgFold

是否启用长图折叠

true

imgFoldHeight

图片折叠阈值(像素)

400

所有功能都可以单独开关,阈值也能按需调整。

使用效果

会自动显示:

  • 顶部标题栏(显示语言名称 "Java")

  • 复制按钮(一键复制代码)

  • 折叠按钮(收起 / 展开代码块)

  • 行号显示

  • 语法高亮

长图和超长代码块会自动折叠,页面更清爽。

长图折叠预览
长图折叠预览
代码折叠预览
代码折叠预览

一点开发感受

这个插件的开发过程中,AI 帮了不少忙。从 Highlight.js 的初始化时机、到 IntersectionObserver 的懒加载实现、再到暗色主题的 CSS 变量切换,AI 帮我快速验证了技术方案,跳过了大量查文档的时间。

但架构决策、边界 case 处理、不同主题下的兼容性测试、移动端按钮尺寸调整——这些从 1 到可用的打磨,还是得自己来。

另外,感谢 Handsome 大神的关键指导,0.01刀指导费已经记账。

版本更新

V1.1.2
  • 更新静态资源引用为压缩版本 (code-enhance.min.css/js)

  • 删除未压缩的源文件 (code-enhance.css/js)

V1.1.1
  • 强化 XSS 防护:hljs 高亮流程使用 textContent 提取代码,未高亮场景下行号使用 escapeHtml() 转义

  • 修复异步竞态:Highlight.init() 异步加载时延迟启动 IntersectionObserver,避免 doHighlight 清空已装饰的行号

  • 代码审查优化:notContentTemplate 检查顺序调优,删除冗余方法,预计算选择器字符串

  • 测试增强:新增 5 个测试用例,覆盖默认值、插件变量兜底路径、注入内容断言

V1.1.0
  • 动态加载 highlight.min.js,仅在检测到代码块时引入资源

  • 扩展模板匹配范围,支持 Moments 和 Docsme 插件页面

  • 重构高亮逻辑,使用 hljs API 处理文本以防止 XSS

  • 移除静态脚本标签,改为前端按需加载

  • 优化触摸事件监听,添加 passive: true 提升滚动性能

  • 改进代码块标题栏 DOM 构建,确保语言文本安全插入

  • 调整折叠按钮样式为 sticky 定位

V1.0.0
  • 初始版本发布,支持代码高亮、折叠、长图折叠等功能

项目地址

https://github.com/NoEggEgg/plugin-code-enhance