FIT2CLOUD

新特性

  • 支持在 UI Message 中实时传输工具调用入参,并在模型测试台中诊断工具入参流 by @LIlGG in #91

问题修复

  • 修复多工具调用续轮时推理上下文丢失的问题,并支持按模型配置推理历史回传 by @LIlGG in #88
  • 修复工具调用失败或参数无效时续传中断,以及原始错误原因被后续协议错误覆盖的问题 by @LIlGG in #92
  • 修复 Provider 协调器重复更新导致持续协调和客户端缓存反复失效的问题 by @ruibaby in #89
  • 修复编辑或删除模型后模型列表未完整刷新的问题 by @ruibaby in 8be783f

开发者相关

  • 统一模型参数定义目录,并通过 Provider Type API 暴露参数定义 by @ruibaby in #87
  • 完善 AI Foundation SDK 中英文开发文档,并新增面向 AI 编程助手的 SDK 查询 Skill by @LIlGG in #93

Full Changelog: v1.0.0-beta.5...v1.0.0-beta.6


Generated from v1.0.0-beta.6

发布于查看详情

软件中心 v1.0.0

这是 Software Manager for Halo 的首个稳定版本,为 Halo 提供独立、主题中立的软件内容管理、公开查询和安全下载能力。主题可以通过 Finder、Theme Router 或版本化 REST API 接入,插件本身不依赖任何特定主题。

版本亮点

  • 完整的软件领域模型:支持软件、版本、下载源、分类、标签和专题的创建与管理,并覆盖发布状态、排序、统计、SEO 及关联内容。
  • Console 管理界面:提供软件编辑器,以及分类、标签、专题、版本和下载源管理;下载源支持类型、优先级、健康状态和门禁配置。
  • 主题中立的公开集成:提供 softwareFinder、公共主题路由和 v1alpha1 REST API,公开 VO 与 Console/原始 Extension 分离,方便不同主题或客户端消费。
  • 安全下载授权:下载详情不直接暴露最终 URL、storageKey、提取码或密码等敏感字段;通过短期 download-grants 授权获取下载信息,并支持 Cloudflare Turnstile 验证。
  • 权限与安全边界:新增软件查看、软件管理和敏感下载配置等角色模板;下载目标执行 HTTP(S)/站内路径校验,验证码异常、Secret 缺失或目标不安全时按 fail-closed 处理,敏感响应使用 no-store。
  • 评论与可选 AI:将 SoftwareApp 注册为 Halo 评论资源;可选接入 AI Foundation,为软件摘要、详情和 SEO 提供 Console 编辑建议,不影响核心软件管理功能。
  • 开发者契约与工程化:提供主题 API、REST API 和 OpenAPI 文档,并配套 Java、Vue、公共 VO、Router、RBAC、下载安全和 AI 能力契约测试。

兼容性

  • Halo >= 2.25.0
  • Java 21(仅从源码构建插件时需要)
  • AI Foundation >= 1.0.0-SNAPSHOT 且 < 2.0.0(可选,仅用于 AI 编辑辅助)

安装

  1. 从 GitHub Releases 下载 software 插件 JAR。
  2. 在 Halo Console 的“插件”页面上传并启用。
  3. 在“软件”菜单中配置选项、分类、标签、专题、软件、版本和下载源。
  4. 如使用验证码下载,在 Halo 中创建保存 Turnstile Secret Key 的 Secret,再完成插件“下载安全”设置。
  5. 使用主题或其他客户端时,仅调用公开 Finder/Router/REST API,不要读取原始 Extension 或 Console API 中的敏感字段。

升级注意

  • 主题接入应使用 GET /download-options 和 POST /download-grants 获取下载授权,不应继续依赖详情接口中的最终下载 URL。
  • 公开详情中的下载源 URL 为空是预期行为;提取码、密码和存储键只在完成授权后返回,并且只应保存在当前下载流程的内存中。
  • v1alpha1 公共契约、getHome()/SoftwareHomeVo 和主题 Router 均属于跨项目接口,升级主题或自定义客户端时请同步查看 主题 API 文档 与 REST API 文档。
  • AI Foundation 缺失、禁用或未配置模型时,软件管理、公开 API、Finder 和主题路由仍应正常工作。

已知边界

  • 插件只负责软件数据、查询、授权和权限;网格/列表布局、颜色、动画等展示逻辑由主题负责。
  • 应用市场发布当前未启用,本版本通过 GitHub Release 分发。

许可证

GPL-3.0

发布于查看详情

1、增加明信片首页
2、修改文档说明
3、修改文档分享点赞位置,更符合阅读方式
4、增加登录信息显示
5、修复情侣时间地区问题

iShot_2026-07-29_12.25.13
iShot_2026-07-29_12.25.32
iShot_2026-07-29_12.25.49

发布于查看详情

重构

  • 朋友圈页面UI:改用时间轴布局样式流式加载列表,页面更加美观便捷,同日期同一作者的文章自动归入同一卡片

新增

  • 朋友圈黑名单:可在主题设置 → 朋友圈设置页 → 屏蔽列表 进行设置
  • 卡片悬浮效果:可在主题设置 → 样式设置页 → 卡片悬浮效果 打开或关闭,打开后部分卡片鼠标悬停时轻微上移并显示主题色阴影
  • 文章页支持与分享卡片:可在主题设置 → 文章设置页 → 启用文章操作栏 打开或关闭,打开后文章页面将显示支持与分享卡片,点赞+生成海报分享功能

优化

  • 按钮交互:部分按钮图标增加 hover 旋转动效
  • 瞬间动态卡片:瞬间页面动态卡片右上角增加引号装饰
  • 目录小组件:目录小组件条目增加 hover 位移动效,与其它小组件统一
  • 各页面卡片入场动画:各个页面卡片入场动画优化并统一
  • 随机访问优化:友情链接页面随机访问功能优化,改用官方链接管理插件API
  • 装备卡片点击逻辑优化装备库页面卡片点击跳转逻辑,现在点击卡片即可跳转

修复

  • 装备库页面每页数量不跟随插件设置问题
  • 加上了部分卡片缺失点击的内凹效果

其它

  • 移除了未生效的项目集的分页控件代码,现在项目集页面无分页功能
  • 清理冗余依赖及死代码
  • 移除了适配和体验并不好的卡片3D倾斜效果,使用用卡片悬浮效果代替
  • 更新README
  • 版本号提升至1.0.3

tips

  • 本次更新改动较多,建议更新完成后执行清除模版缓存,如遇页面显示异常可重启 Halo 服务
  • 如遇到主题使用问题或意见反馈欢迎前往issues
发布于查看详情

新特性

  • 爬虫记录、搜索流量和推送历史改用 SQLite 存储,升级时会自动迁移原有 Nitrite 数据

问题修复

  • 修复 Halo 部署在子路径时 IndexNow 密钥验证失败的问题
  • 修复 IndexNow 验证路由可能与 /robots.txt 等根路径冲突的问题
发布于查看详情

问题修复

  • 修复 Markdown 正文中 figure 图片存在额外左右间距且样式与段落图片不一致的问题

Full Changelog: v1.17.0...v1.17.1


Generated from v1.17.1

发布于查看详情

新特性

  • 为 ICP 和公安备案增加图标并改用官方查询链接,公安备案号会自动关联查询页面 by @mufengyian in #275
  • 支持自定义页脚版权信息,未配置时继续显示默认版权文案 by @ruibaby in #277

Full Changelog: v1.16.2...v1.17.0


Generated from v1.17.0

发布于查看详情

发布时间:2026-07-27

macOS 锁屏式登录

  • 将 Halo 本地登录重构为 macOS 锁屏式界面,用户名与密码分为连续两步;桌面、手机、明暗色和减少动态效果偏好均使用同一套响应式状态机。
  • 登录提供方继续由 Halo 动态输出,只显示真实 Logo;通行密钥、忘记密码和创建账户入口保持可用,不硬编码提供方或隐藏现有登录方式。
  • 保留 Halo 原始 POST /login、字段名、密码管理器语义、RSA formdata 加密和错误提示契约;非活动步骤使用 aria-hidden 与 inert 隔离,键盘焦点和返回流程同步完善。
  • 登录背景与按钮继续使用当前主题的壁纸、强调色和 Shell 明暗参数,没有写死测试账号、密码或第二套认证逻辑。

系统设置、桌面与通知可靠性

  • 新增共享主题配置客户端,为前端系统设置和默认桌面布局统一提供 15 秒截止时间、JSON/重定向校验、CSRF、ETag 条件写入、单页面写入队列和跨标签页独占锁,降低并发覆盖与假成功风险。
  • 设置保存期间产生的新编辑会重放到最新服务端基线;补齐颜色校验、壁纸预加载、未保存刷新/PJAX 离开确认、保存中关闭保护、移动端抽屉焦点循环和单选控件键盘操作。
  • 修复组件配置输入时焦点反复跳回关闭按钮;新增弹窗焦点恢复、Tab 循环和旧桌面布局自动修正后的持久化提示。
  • 天气组件按配置周期自动刷新并在销毁时释放定时器;组件渲染失败可重试,通知读取/写入增加超时、权限失效和服务端错误提示,失败操作不会提前破坏本地状态。
  • 修复桌面内容高度、浮动滚动条、窗口层级、移动端 Dock/设置空间和错误页对话框焦点等生命周期细节。

PJAX、归档、图库与内容应用

  • Full PJAX 与同窗口切换统一增加有界超时、导航所有权和失败恢复;网络失败时保留当前应用,避免提前销毁页面,并清除失败 popstate 遗留的窗口滚动恢复位置。
  • 归档首屏不再为完整站点同步构建全部文章树,完整年月目录改由公开内容 API 分页并发补齐;请求超时会保留 SSR 目录并显示可重试状态。
  • 瞬间瀑布流仅在分页请求确实被失败导航打断时提示重试;发布器在取消草稿、删除媒体或关闭失败流程时清理尚未发布的附件。
  • 图库分页拒绝重定向和缺少 Photos 应用根节点的错误 HTML,避免把登录页或错误页误判为“没有更多”;详情图片加载失败提供明确状态并保持缩放/拖拽边界稳定。
  • Docsme、豆瓣、作者、友链、文章目录和 Steam 页面继续补齐断连节点、非法响应、表单校验、图片失败、触控与减少动态效果等边界处理。

清理、兼容与供应链

  • 删除已经退出活动代码的旧朋友圈后台设置与 plugin-friends.recent 布局迁移残留;PluginLinks 继续按 2.2.1 官方友链、RSS 与权限契约运行。
  • 已到期的 Vite、Tailwind CSS 和 Iconify 最小发布时间临时例外全部撤销;7 天发布时间策略继续启用,当前精确版本例外为 0。
  • Halo 最低版本保持 >=2.25.0,本机按 Halo 2.25.4 验证;CI/CD 工作流未修改,公开 GitHub Release 后继续由官方 theme-cd.yaml@v4 完成打包、Release 资产和 Halo 应用市场发布。

验证

  • CI=true pnpm install --frozen-lockfile
  • pnpm run check
  • pnpm run audit:dependencies
  • pnpm run audit:plugins:strict
  • pnpm run build
  • RELEASE_TAG=v0.9.45 node scripts/verify-release-package.mjs dist/theme-sky-blog-3-0.9.45.zip
  • pnpm run verify:reload
  • SMOKE_BASE_URL=http://localhost:8090 pnpm run smoke:playwright
  • SMOKE_BASE_URL=http://localhost:8090 pnpm run verify:plugins:all
  • PERF_BASE_URL=http://localhost:8090 pnpm run verify:performance
  • SMOKE_BASE_URL=http://localhost:8090 pnpm run verify:pjax-lifecycle
  • 最终结果:24 个全站 Playwright 场景零跳过/零失败,10 页真实审计均为 ok;LCP 平均 540ms、最高 1112ms,CLS 最高 0.0056,TBT 平均与最高均为 0ms。
  • 24 个严格插件契约、13 个 Reload 路由、HTML/冷 PJAX 资源预算和 42 次 PJAX 生命周期全部通过;42 次切换中主文档请求与 Shell 核心 CSS 重载均为 0。
  • 依赖审计:14 个顶层依赖、31 条生产/156 条完整依赖许可证通过,生产与完整依赖图漏洞均为 0,最小发布时间精确例外为 0。
  • Docsme 代码块/KaTeX/Mermaid 与 Moments 代码块因当前站点缺少真实内容样本按既有规则跳过;其余核心页面、资源 fixture 与生命周期验证均通过。
  • 本地发布前包:261 个条目、616259 bytes,SHA-256 b67274dd539e166476f39fd2928c64e7bee9813c3bfb02b9de9f2136602255fb。

Generated from v0.9.45

发布于查看详情

详情请参阅更新日志(在 GitHub 上查看)。
Please refer to Changelog (view on GitHub) for details.

howiehz-higan-zh-hans.zip 为简体中文默认安装包,仅包含 .br。
howiehz-higan-zh-hans-tiny.zip 为简体中文轻量安装包,移除默认字体资源,默认 logo 资源将替换为 1x1 占位图,不包含预压缩文件,且不注入 Mermaid / instant.page 运行时。
howiehz-higan-zh-hans-full-precompressed.zip 为简体中文完整预压缩包,包含 .gz / .br / .zst。
howiehz-higan-en.zip is the English default package with .br only.
howiehz-higan-en-tiny.zip is the English tiny package that removes the default font assets, replaces the default logo asset with a 1x1 placeholder image, omits precompressed assets, and excludes Mermaid / instant.page runtime injection.
howiehz-higan-en-full-precompressed.zip is the English full precompressed package with .gz / .br / .zst.

发布于查看详情

halo-theme-cosolar v1.1.1

图标系统重构

图标库统一

  • 新增图标库切换选项:支持 Iconify(默认,开箱即用)和 iconfont(阿里巴巴,自定义图标)两种模式
  • 移除内置 iconfont 字体文件(src/assets/fonts/),改由用户按需自建 iconfont 项目并通过 CSS 地址引入
  • 导航栏、分类、标签等内置 SVG 图标不受图标库切换影响,保持独立渲染

社交图标配置升级

  • 新增 博主社交图标 数组配置,支持动态添加任意数量的社交链接
  • 每个图标项独立控制显隐(显示此图标 开关),无需删除即可临时隐藏
  • 统一通过图标库名称渲染(Iconify 填 mdi:github,iconfont 填 icon-github),颜色自动跟随文字色
  • 移除 SVG 文件上传方式,简化为仅图标名模式
  • 侧边栏博主卡片与页脚社交区域共用同一份配置,一次配置两处生效

社交链接精简

  • 移除掘金、微信公众号、CSDN、知乎等独立社交字段配置
  • 移除 GitHub、邮箱、RSS 独立字段,统一归入博主社交图标数组管理
  • 侧边栏与页脚均移除兜底显示逻辑,未配置则显示空

样式优化

导航栏

  • 修复导航栏图标与文字水平不居中问题(line-height 导致基线偏移)
  • 采用 flexbox 布局 + --svg-vertical-align: 0 实现几何中心对齐

页脚社交图标

  • 修复 Iconify 图标在圆形容器中偏小且不居中的问题
  • 增大图标尺寸至 20px,添加 inline-flex 居中对齐

侧边栏

  • 分类图标更新为书本样式 SVG
  • 标签图标更新为标签点样式 SVG
  • 社交图标容器恢复 32×32px、图标 22px、6px 圆角边框样式

图库改进

删除交互修复

  • 修复删除照片后页面未及时刷新的问题:删除成功后立即从 DOM 移除卡片并精确更新对应计数(总数、分组数、未分组数),不再整页重拉(后端读接口存在写入传播延迟,重拉会重新渲染已删照片)
  • 删除后若该页照片删空,自动显示空状态并隐藏分页器

分组导航优化

  • 将「不分组」选项移至分组列表之后(顶部筛选栏与侧边栏小组件均调整)
  • 未分组照片数量为 0 时,自动隐藏「不分组」选项

操作按钮权限开关

  • 后台「图库页设置」新增 显示操作按钮 开关(默认开启)
  • 上传、删除等图库操作按钮仅当 访客已登录且开启此开关 时才显示;关闭后所有访客(含登录用户)均看不到操作按钮

其他

  • 版本号升级至 1.1.1
  • 清理无用代码与冗余样式
发布于查看详情

问题修复

  • 修复关闭游客聊天功能后,AI 脑图同时消失的问题。
  • 修复上述配置导致 AI 搜索无法初始化的问题。
  • 解耦游客聊天、AI 搜索和 AI 脑图的前台资源加载与访问控制。
  • 关闭游客聊天时仅隐藏聊天入口;AI 搜索保持可用,AI 脑图仅由自身开关控制。

升级说明

  • 本次升级不涉及数据迁移。
  • 现有插件配置和索引数据不受影响。
  • 要求 Halo >=2.25.0。
  • 必须安装并启用 Halo AI Foundation。

验证

  • JavaScript 语法检查通过。
  • Gradle 完整测试与构建通过。
  • SHA-256:e86bb7895995b70a99f58c7206304ca6858e71abd93c3ab6861824ade0169ffa
发布于查看详情

✨ New Features / 新增功能

  • Settings: Added enablePublicPage toggle; when disabled, /schedule-calendar and /schedule-calendar/cards/{name} routes are released for theme handling / 后台设置:新增「启用前台公开页面」开关,关闭后释放路由交由当前激活的主题处理
  • Routing: Replaced @RestController with RouterFunction pattern via @Component + @Bean, enabling conditional route registration / 路由:从 @RestController 重构为 RouterFunction 模式(@Component + @Bean),实现条件路由注册

⚙️ Enhancements / 功能优化

  • Calendar Page: Refactored inline HTML from string concatenation to Java Text Block, added HtmlUtils.htmlEscape for page title / 日历页面:内联 HTML 从字符串拼接重构为 Java Text Block,页面标题增加 HTML 转义处理

🛠️ Bug Fixes / 问题修复

  • Routing: Public page routes are now gated behind enablePublicPage; previously @RestController unconditionally exposed all routes with no disable mechanism / 路由:公开页面路由现受 enablePublicPage 开关控制,此前 @RestController 无条件暴露全部路由

Generate from v3.4.0

发布于查看详情

🔧 chore(release): 同步更新插件版本号至1.0.6

✨ feat(software-page): 新增更新日志换行展示样式

  • 在 software-page.css 中新增 .changelog 样式
  • 使用 white-space: pre-line 保留更新日志中的换行显示
  • 未改动现有页面布局与交互样式
发布于查看详情

主要更新

  • 管理员前端系统设置重构为五分区 macOS 风格界面,覆盖外观、桌面与 Dock、小组件、菜单栏与控制中心、通知。
  • Dock、桌面小组件和主题外观参数改为实时联动预览;设置窗口切换分区时保持固定位置与稳定滚动状态。
  • 完善通知中心、小组件和移动端设置抽屉的视觉与交互细节。
  • 修复设置界面开启后 Header 下拉菜单无法选中的层级与事件穿透问题。
  • 新增完整 UI 与前端体验审计报告,并同步验证矩阵、项目进度和设计 QA 记录。

安全与兼容

  • Halo 版本要求保持为 >= 2.25.0,本轮基于 Halo 2.25.4 完成验证。
  • 更新 PostCSS,并升级主题打包链使用的 Archiver,消除本轮依赖审计发现的高危漏洞。
  • 为 Halo 主题打包 CLI 增加 Archiver 8 ESM 兼容补丁,正式主题包已通过供应链校验。

发布前验证

  • 冻结锁文件安装、完整 check、生产与完整依赖安全审计均通过,漏洞数为 0。
  • 24 个严格插件兼容契约、13 个 Reload 路由、全站 Playwright、10 个真实页面和 42 次 PJAX 生命周期验证通过。
  • 真实页面运行时错误为 0;LCP 平均 735.2 ms、最高 1052 ms,CLS 最高 0.0056,TBT 平均 2.5 ms、最高 25 ms。
  • GitHub CI 已通过:CI #30146574900。

本 Release 发布后,由仓库 CD 工作流生成并校验正式主题包,同时执行 Halo 应用市场发布。


Generated from v0.9.44

发布于查看详情

1.1.7

二次元少女风格的 Halo 2.x 博客主题。本次为功能新增与问题修复。

✨ 新增

  • 侧栏新增「每日一言」模块。支持三种来源:使用兼容API接口、完全离线的自定义语句列表、或「API 优先,请求失败时自动回退到自定义语句」。带「换一句」按钮,可随时手动刷新。

🐛 修复

  • 修复网站前台页面(首页、文章页等)无法显示后台设置的 favicon 的问题。根因是 templates/modules/head.html 中的 <halo:head /> 标签并非 Halo 真实支持的标签(Halo 实际只支持 <halo:footer />),属于历史误加的无效代码。由于它是自闭合写法,而 HTML5 规范不支持自定义标签自闭合,浏览器解析时会把 <head> 提前隐式关闭,导致 Halo 注入在 head 末尾的 favicon(以及理论上其他注入到 head 的内容)被错误地挤入 <body>,从而无法被浏览器识别。

✅ 适配

Halo 2.14.0 及以上版本。


完整说明见仓库 README。


Generated from v1.1.7

发布于查看详情

halo-theme-cosolar v1.1.0

一、移动端导航系统重构

导航抽屉优化

  • 子菜单改为手风琴折叠模式,仅展开当前选中的父级菜单
  • 新增半透明毛玻璃遮罩,点击遮罩或按 ESC 键关闭菜单
  • 父级菜单展开时箭头 180° 旋转,提供清晰的状态反馈
  • 顶级菜单以卡片样式呈现(带边框/阴影),子菜单以缩进列表 + 引导线区分层级
  • 菜单打开时锁定背景滚动(body.nav-open)
  • 窗口 resize 时自动关闭菜单,避免状态残留

导航选中状态修复

  • 修复外部链接(如 https://agentbook.com)导致正则匹配空路径,造成多个按钮同时高亮的问题
  • 将路径匹配条件从 linkPath != "/" 改为 linkPath.length > 1,避免空字符串误匹配

二、首页移动端优化

文章列表布局(仅列表视图,卡片视图不变)

  • 布局改为:标题独占一行 → 图片与(摘要、标签)并列 → 元信息行
  • 摘要可显示 3 行(原为 1 行)
  • 使用 CSS Grid 实现左右分栏,移动端自适应

轮播图优化

  • 移动端轮播高度缩减(768px: 200px,480px: 168px)
  • 新增主题设置项:移动端轮播图仅显示文章封面(默认关闭)
  • 仅封面模式下,优先显示文章自带的封面图(featured.spec.cover),无封面时回退到配置封面或渐变背景

移动端隐藏区域

  • 首页底部「统计信息」和「订阅更新」区块在移动端自动隐藏

三、标签页 / 分类页移动端适配

tag.html / category.html

  • 为文章列表添加 .article-list 容器和 .article-card-text 包装器
  • 使移动端 CSS Grid 布局正确生效(标题 → 图文并列 → 元信息)

四、资讯页(feeds.html)移动端适配

Hero 区域

  • 精简内边距和字号
  • 统计栏改为横向滚动,防止小屏溢出

频道导航重构

  • 移动端隐藏「我的频道」标题和「管理订阅源」按钮
  • 频道标签改为单行横向滚动,胶囊样式,隐藏数字计数
  • 防溢出修复:.feed-sidebar--left 加 min-width: 0; overflow: hidden
  • .feed-layout 在 1024px 断点加 min-width: 0

资讯列表

  • 紧凑卡片布局,来源与时间合并一行
  • 标题 + 摘要精简显示

五、友链页(links.html)移动端适配

Hero 区域

  • 768px 断点隐藏第三个装饰性统计项「∞ 无限可能」
  • 统计栏改为横向滚动,适配小屏

筛选 + 搜索工具栏

  • 筛选标签改为单行横向滚动,移动端隐藏标签内数字计数
  • 搜索框从工具栏拆出,独立全宽一行
  • 防溢出修复:.links-toolbar 加 min-width: 0; overflow: hidden

友链卡片

  • 移动端单列布局,紧凑间距
  • Logo 缩小至 36px(480px: 32px),描述限制 1 行
  • CTA 区域在 480px 隐藏装饰元素

六、全局防溢出修复

  • html 元素添加 overflow-x: hidden,作为防止横向滚动的安全网
  • 所有 CSS Grid 子项在移动端断点添加 min-width: 0,确保 overflow-x: auto 正确生效

升级须知

  1. 在 Halo 后台卸载当前主题
  2. 上传 halo-theme-cosolar.zip 并重新安装
  3. 清除 Thymeleaf 模板缓存( crucial — 否则模板变更不生效)
  4. 如需启用「移动端轮播图仅显示封面」,前往 主题设置 → 首页轮播 开启
发布于查看详情

halo-theme-cosolar v1.0.10

新增

  • 移动端轮播图仅显示封面:在「首页轮播」设置中新增 mobile_carousel_cover_only 开关(默认关闭)。启用后,移动端(≤768px)轮播图将隐藏标题、摘要、标签、按钮等文字内容,只展示封面图片;并优先使用文章自带的封面图,未设置时回退到主题配置封面或默认背景。全卡片可点击跳转对应文章。

优化

  • 移动端导航重构:子菜单改为手风琴折叠式,修复动画错位、无法展开子菜单、箭头无旋转等问题。新增毛玻璃遮罩层、背景滚动锁定、ESC 关闭、遮罩点击关闭、窗口缩放自动关闭、当前页子菜单自动展开等交互。顶层菜单为卡片样式,子菜单为缩进列表,层级更清晰。
  • 移动端文章列表布局:列表视图改为「标题占一行 → 图片与(摘要、标签)并列 → 元信息在底部」的网格布局,摘要支持显示 3 行。卡片视图保持不变。
  • 移动端轮播图精简:降低高度、内容全宽、简化信息、优化控件尺寸。
  • 移动端隐藏次要模块:自动隐藏统计信息和订阅更新区域,减少移动端信息过载。

修复

  • 导航栏多选 BUG:修复外部链接菜单项被错误标记为激活状态的问题。原因是外部链接去除协议和域名后 linkPath 变为空字符串,导致 currentPath.startsWith("") 永远返回 true。现已通过 linkPath.length > 1 条件排除空串和单字符路径的误匹配。

升级方法

  1. 后台「主题管理」卸载当前版本
  2. 上传 halo-theme-cosolar.zip 安装新版本
  3. 重新激活主题(清除 Thymeleaf 模板缓存)
  4. 如需启用移动端仅封面轮播:进入「首页轮播」设置,打开「移动端轮播图仅显示封面」开关
发布于查看详情

ShaneYu

🤖 AI 协作开发 — 本主题由 AI 辅助完成全部开发工作,包括架构设计、模板编写、样式开发、国际化、构建配置等。旨在为 Halo 主题开发提供一份完整的 AI 协作实践参考。

一款为开发者打造的现代博客主题,关于专注与极致的分享空间。

功能特性

  • 🌙 深色/浅色主题切换 - 支持自动切换和手动切换,可设置默认配色方案
  • 🎨 主题背景个性化 - 支持图片/视频壁纸作为主题背景,可分别设置亮色/暗色模式壁纸
  • 🪟 毛玻璃效果 - 壁纸模式下全站元素添加半透明磨砂效果
  • 📱 响应式设计 - 完美适配大屏幕、中等屏幕和移动端
  • 📊 文章数据统计 - 标签页面支持数据统计图表
  • 🔍 搜索功能 - 支持独立搜索页面和快捷键搜索(Ctrl+K)
  • 📤 分享功能 - 支持微信、微博、QQ空间分享
  • 🌐 多语言支持 - 内置简体中文、繁体中文、English、Español 四种语言
  • 🎯 SEO 友好 - 语义化 HTML 结构,支持自定义标题和描述
  • ⚡ 高性能 - 基于 Vite 构建,资源自动压缩和优化
  • 🔐 安全认证 - 支持 TOTP 两步验证登录
  • 🎨 自定义主色调 - 可自定义主题主色调,影响全站配色
  • 📝 社交链接 - 支持 GitHub、QQ、Email、微博、微信、知乎、CSDN、Gitee 等图标
  • 🎭 Iconify 图标 - 社交链接支持 Iconify 图标库,可自定义任意图标
  • 📌 侧边栏组件 - 博主展示、标签云、分类导航、近期更新、公众号二维码
  • 📖 阅读体验 - 文章详情页支持目录、阅读进度条、回到顶部
  • 🏷️ 分类/标签 - 完善的分类和标签系统,支持数据统计
  • 📅 岁月痕迹 - 按时间线展示文章归档
  • 👤 关于页面 - 独立的 About 页面模板,包含个人信息、联系方式、技能、项目、经历等模块
  • 💼 个人技能 - 技能熟练程度展示(精通/熟练/了解/入门),支持多语言翻译
  • 📁 我的项目 - 项目卡片展示,支持图标、描述、技术栈和链接
  • 📜 个人经历 - 时间线展示个人经历,日期与内容清晰对齐
  • 🏷️ 个人标签 - 关联文章标签的个人标签系统
  • 🔤 页面别名 - 支持为各页面配置自定义标题,支持四种语言

截图预览

亮色模式

iShot_2026-07-24_16.59.51

暗色模式

iShot_2026-07-24_17.00.09

页面展示

主题包含以下精心设计的页面模板:

模板 功能亮点
首页 最新文章列表 · 侧边栏组件(博主展示、标签云、分类导航、近期更新) · 分页导航
📖 文章详情 封面图展示 · 文章元信息(作者、发布时间、分类、标签、字数统计、阅读时间) · 文章目录(TOC) · 阅读进度条 · 回到顶部 · 上一篇/下一篇导航 · 社交分享
🗂️ 分类 分类列表展示 · 分类下文章列表 · 分类数据统计
🏷️ 标签 标签云展示 · 标签下文章列表 · 标签数据统计
📅 归档 岁月痕迹 · 按时间线展示文章归档 · 年月分组展示
👤 关于 个人信息展示 · 联系方式(社交链接) · 个人技能(含熟练度) · 我的项目卡片 · 个人经历时间线 · 支持 HTML 内容 · 多语言翻译
🔍 搜索 独立搜索页面(/search) · 实时搜索文章 · 搜索结果分页 · 快捷键搜索(Ctrl+K)
💬 瞬间 时间线展示瞬间动态 · 支持图片/视频/音频媒体 · 图片灯箱预览 · 点赞与评论互动 · 分页导航
🔐 登录 精美的登录界面 · 支持 TOTP 两步验证 · 社交登录集成 · 忘记密码入口
📧 找回密码 邮箱找回密码流程 · 发送重置链接
️ 错误页面 404 页面未找到 · 500 服务器错误 · 通用错误页面

安装

方式一:后台安装(推荐)

  1. 下载主题包 dist/halo-theme-ShaneYu.zip
  2. 登录 Halo 后台管理界面
  3. 进入 外观 -> 主题
  4. 点击 安装主题 按钮
  5. 上传下载的主题包
  6. 安装完成后点击 启用 按钮

方式二:直接上传

  1. 前往 Releases 下载最新版本的 .zip 文件
  2. 在 Halo 后台「外观 → 主题」中上传安装
  3. 启用主题并进入「主题设置」进行个性化配置

配置指南

主题设置位于 Halo 后台的 外观 -> 主题 -> 设置 中。

开发指南

详细的开发指南请查看 docs/开发指南.md,包含:

  • 环境准备与依赖安装
  • 模板开发(布局系统、Thymeleaf 语法)
  • 样式与脚本开发
  • 构建与打包流程
  • 部署到 Halo
  • Git 版本管理
  • 开发规范与注意事项

快速开始

# 安装依赖
pnpm install

# 开发模式
pnpm dev

# 构建打包
pnpm build

构建完成后,主题包位于 dist/halo-theme-ShaneYu.zip。

技术栈

技术 说明 版本
Halo 强大的开源建站系统 ≥ 2.20.0
Thymeleaf 服务端模板引擎(th:if、th:each、th:text 等) -
TypeScript 类型安全的 JavaScript 5.9.3
Vite (vite-plus) 下一代前端构建工具,通过 vite-plus 增强 latest
vite-plugin-halo-theme Halo 主题专用 Vite 插件,处理 HTML/CSS/JS 资源引用 1.0.3
theme-package-cli Halo 主题打包工具 1.0.1
CSS Variables 原生 CSS 变量,支持亮色/暗色主题切换 -
Iconify 统一图标框架,支持 20 万+ 开源图标 -
pnpm 快速、节省磁盘空间的包管理器 10.33.0

学习资源

常见问题

壁纸不显示?

  • 检查图片/视频链接是否有效
  • 确认文件格式是否支持(jpg/png/webp/mp4/webm/mov/avi/flv/3gp)
  • 清除浏览器缓存后重试

侧边栏不显示?

  • 在主题设置中确认"显示侧边栏"选项已开启
  • 检查浏览器控制台是否有错误

搜索功能不工作?

  • 搜索功能依赖 Halo 的公开 API,请确保文章已发布
  • 快捷键搜索需要按下 Ctrl+K(Mac 为 Cmd+K)

如何自定义图标?

  • 在社交链接设置中,填写 Iconify 图标名称(如 mdi:github)
  • 访问 Iconify 图标集 查找更多图标

License

GPL-3.0 license

发布于查看详情

新增

  • 适配项目集插件
  • 支持自定义字体(主题设置-样式-启用外部字体,当前仅支持全局替换)#1

优化

  • 统一各页面标题UI与间距样式
  • 自定义页面不再始终隐藏评论区,改为跟随 Halo 页面设置 #1

应该是没Bug吧

发布于查看详情

1.1.0 - 2026-07-23

这次更新不只是让访客切换主题,也把不同主题的页面模板和导航真正串联起来。站长无需再为了每套主题重复创建页面、创建菜单和逐项绑定,只需拖拽模板即可完成一套独立导航。

新增

  • 新增主题导航编排功能,为每套主题维护独立的一级、二级导航结构。
  • 自动识别 Halo 内置模板,以及主题声明并真实存在的自定义页面模板。
  • 自动关联当前主题与对应模板,集中展示模板名称、来源、访问路径和可用状态。
  • 支持把待选模板拖入导航结构,并通过拖拽调整一级导航、二级导航和显示顺序。
  • 保存编排时自动生成并复用缺少的页面与导航数据,无需提前在 Halo 后台创建页面或菜单。
  • 支持直接编辑导航名称和访问路径,可使用站内真实路径或自定义链接。
  • 已完成的导航编排可以直接作为主题菜单使用,并随访客当前选择的主题自动切换。
  • 新增前台主题适配接口,支持稳定挂载锚点、自定义切换按钮、CSS 变量、Shadow Parts 和 setAppearance()。

优化

  • 优化模板池与导航结构的双栏拖拽体验,拖入右侧后自动从待选区域移除。
  • 优化嵌套导航的层级提示、拖拽占位和排序反馈,让一级、二级关系更直观。
  • 优化前台切换入口样式,可继承主题按钮的颜色、尺寸、圆角、边框和阴影。
  • 优化主题切换入口在 React、SPA 和局部重渲染页面中的挂载稳定性。
  • 优化主题选择弹窗的打开过程,已有目录数据时不再重复请求和重建弹窗。
  • 保留访客当前真实访问路径进行主题切换,不修改 Halo 全局启用主题,也不影响其他访客。

修复

  • 修复页面切换或顶部导航重新渲染后,主题漫游入口偶尔消失的问题。
  • 修复主题适配颜色被插件内部默认变量覆盖的问题。
  • 修复点击主题切换按钮时弹窗短暂闪烁、入场动画重复执行的问题。
  • 修复未提前创建页面或菜单时,部分主题模板无法正常加入导航的问题。
  • 修复清空导航编排后旧数据仍被复用的问题。
  • 修复主题模板名称、访问路径与实际模板文件对应不准确的问题。
发布于查看详情

halo-theme-cosolar v1.0.9

新增功能

📸 图库(Photos)页面

  • 新增独立图库页 photos.html / photo.html,支持分组展示与灯箱查看。
  • 灯箱支持鼠标滚轮放大/缩小(0.5×–5×)及放大后拖拽查看;触摸屏支持双指捏合与滑动切换。

💬 瞬间(Moments)页面

  • 新增瞬间流页面 moments.html / moment.html。
  • 图片灯箱同样支持滚轮缩放、拖拽与滑动切换。
  • 点赞 / 分享功能:点赞调用 Halo tracker 接口,分享支持系统分享面板与原生复制链接。

image

发布于查看详情

首页滚动稳定性

  • 修正首页 Hero 区域与虚拟列表之间的可视范围计算。
  • 修复友链星球加载多页数据后,收到邀请、关系变化等实时事件时重新退回第一页的问题。

分页请求竞态修复

  • 为首页分页请求增加请求代次保护,较慢的旧请求不再覆盖较新的列表状态。

星际通讯首屏加载优化

  • 世界频道消息数据完成写入后即可进入界面,不再等待已读回执完成。
发布于查看详情

Full Changelog: v1.0.7...v1.0.8

feat: 新增公安备案号配置,重构分类页面为标签云样式

  1. 升级主题版本到v1.0.8
  2. 新增公安备案号配置项并在页脚展示
  3. 重构分类页面为标签云展示样式
  4. 调整页脚备案链接样式和移动端导航细节

Generated from v1.0.8

发布于查看详情

v1.0.8 热修复

  • 关闭 QQ 昵称查询接口的 Origin、Referer 和 Sec-Fetch-Site 来源校验,解决反向代理、HTTP/HTTPS 或跨域场景下返回 403 的问题。
  • QQ 昵称查询仍保留匿名访问频率限制和后端接口安全处理。

v1.0.7 热修复

  • 修复匿名访客获取 QQ 昵称时因缺少集合查询权限而返回 403 的问题。
  • QQ 昵称查询仍受同源校验、频率限制和后端安全策略保护。

v1.0.6 更新内容

新增功能

  • 新增评论图片灯箱,支持点击图片全屏预览,并可在插件设置中关闭。#2
  • 新增评论与回复锚点,可通过链接直接定位到指定评论。#3
  • AI 评论拦截现在会读取评论者网站的标题和描述,辅助识别广告及风险内容。#4
  • AI 提示词设置页顶部新增“获取最新角色设置”,可将当前版本内置的最新提示词覆盖到表单中,确认后再手动保存。
  • 邮件通知模板新增 authorAvatar 头像参数,默认管理员通知邮件同步展示评论者头像。#5
  • 支持为纯数字 QQ 邮箱自动获取 QQ 昵称;接口地址由管理员配置,头像继续使用 WeAvatar。#6
  • 表情包选择器新增悬浮预览,支持查看原图。#9

问题修复

  • 修复关闭“显示评论者设备信息”后仍然显示设备信息的问题。#1
  • 修复编辑器中表情尺寸过大的问题,并区分普通图片与表情的显示尺寸。#7
  • 修复评论内容无法正常换行的问题。#8
  • 优化评论编辑器、表情面板和弹层之间的交互与定位。

配置说明

  • QQ 昵称自动获取默认关闭,需要在“插件设置 → QQ 资料”中开启并配置包含 {qq} 占位符的接口地址。
  • QQ 昵称接口支持返回 nickname 或 name 字段;接口异常时会静默降级为手动填写,不影响评论提交。
  • 获取最新 AI 角色设置会覆盖表单中的三项提示词,但不会自动保存。
  • 评论者网站信息由插件后端安全获取,不需要额外的第三方元数据接口。

兼容性提示

  • #10 属于与 Halo 官方评论组件的样式冲突,不包含代码修复;使用本插件时需要关闭官方评论组件。

Full Changelog: 1.0.7...1.0.8


Generated from 1.0.8

发布于查看详情

更新内容

  • 适配评论组件 Next,最新评论支持跳转到具体评论与回复。
  • 修复最新评论中纯图片、表情包等无文字评论显示为空的问题。
  • 优化大屏布局,减少宽屏下内容过度居中的空白。

Generated from 1.6.6

发布于查看详情

v1.0.7 热修复

  • 修复匿名访客获取 QQ 昵称时因缺少集合查询权限而返回 403 的问题。
  • QQ 昵称查询仍受同源校验、频率限制和后端安全策略保护。

v1.0.6 更新内容

新增功能

  • 新增评论图片灯箱,支持点击图片全屏预览,并可在插件设置中关闭。#2
  • 新增评论与回复锚点,可通过链接直接定位到指定评论。#3
  • AI 评论拦截现在会读取评论者网站的标题和描述,辅助识别广告及风险内容。#4
  • AI 提示词设置页顶部新增“获取最新角色设置”,可将当前版本内置的最新提示词覆盖到表单中,确认后再手动保存。
  • 邮件通知模板新增 authorAvatar 头像参数,默认管理员通知邮件同步展示评论者头像。#5
  • 支持为纯数字 QQ 邮箱自动获取 QQ 昵称;接口地址由管理员配置,头像继续使用 WeAvatar。#6
  • 表情包选择器新增悬浮预览,支持查看原图。#9

问题修复

  • 修复关闭“显示评论者设备信息”后仍然显示设备信息的问题。#1
  • 修复编辑器中表情尺寸过大的问题,并区分普通图片与表情的显示尺寸。#7
  • 修复评论内容无法正常换行的问题。#8
  • 优化评论编辑器、表情面板和弹层之间的交互与定位。

配置说明

  • QQ 昵称自动获取默认关闭,需要在“插件设置 → QQ 资料”中开启并配置包含 {qq} 占位符的接口地址。
  • QQ 昵称接口支持返回 nickname 或 name 字段;接口异常时会静默降级为手动填写,不影响评论提交。
  • 获取最新 AI 角色设置会覆盖表单中的三项提示词,但不会自动保存。
  • 评论者网站信息由插件后端安全获取,不需要额外的第三方元数据接口。

兼容性提示

  • #10 属于与 Halo 官方评论组件的样式冲突,不包含代码修复;使用本插件时需要关闭官方评论组件。

Full Changelog: 1.0.6...1.0.7


Generated from 1.0.7

发布于查看详情

新增功能

  • 新增评论图片灯箱,支持点击图片全屏预览,并可在插件设置中关闭。#2
  • 新增评论与回复锚点,可通过链接直接定位到指定评论。#3
  • AI 评论拦截现在会读取评论者网站的标题和描述,辅助识别广告及风险内容。#4
  • AI 提示词设置页顶部新增“获取最新角色设置”,可将当前版本内置的最新提示词覆盖到表单中,确认后再手动保存。
  • 邮件通知模板新增 authorAvatar 头像参数,默认管理员通知邮件同步展示评论者头像。#5
  • 支持为纯数字 QQ 邮箱自动获取 QQ 昵称;接口地址由管理员配置,头像继续使用 WeAvatar。#6
  • 表情包选择器新增悬浮预览,支持查看原图。#9

问题修复

  • 修复关闭“显示评论者设备信息”后仍然显示设备信息的问题。#1
  • 修复编辑器中表情尺寸过大的问题,并区分普通图片与表情的显示尺寸。#7
  • 修复评论内容无法正常换行的问题。#8
  • 优化评论编辑器、表情面板和弹层之间的交互与定位。

配置说明

  • QQ 昵称自动获取默认关闭,需要在“插件设置 → QQ 资料”中开启并配置包含 {qq} 占位符的接口地址。
  • QQ 昵称接口支持返回 nickname 或 name 字段;接口异常时会静默降级为手动填写,不影响评论提交。
  • 获取最新 AI 角色设置会覆盖表单中的三项提示词,但不会自动保存。
  • 评论者网站信息由插件后端安全获取,不需要额外的第三方元数据接口。

兼容性提示

  • #10 属于与 Halo 官方评论组件的样式冲突,不包含代码修复;使用本插件时需要关闭官方评论组件。

Full Changelog: 1.0.5...1.0.6


Generated from 1.0.6

发布于查看详情

Full Changelog: v1.0.6...v1.0.7

chore: release v1.0.7 and optimize comment section

  1. 新增通用评论组件模板,抽离重复的评论逻辑
  2. 替换文章、独立页面的评论代码为通用组件
  3. 替换动态页的火箭图标为统一的朋友圈图标
  4. 添加完整的评论组件样式适配,兼容官方和星度评论组件
  5. 调整部分现有样式适配评论组件和移动端显示

Generated from v1.0.7

发布于查看详情

Full Changelog: v1.0.4...v1.0.5

chore: release v1.0.5 & major ui/ux improvements

  1. 重构Hero区块,移除冗余背景层与渐变遮罩,统一极简风格
  2. 新增分类封面缩略图展示,优化分类页面视觉效果
  3. 实现完整的二级下拉菜单,支持桌面hover与移动端折叠
  4. 添加PJAX页面过渡动画,优化页面切换体验
  5. 优化文字颜色对比度,符合WCAG AA accessibility标准
  6. 重构JS代码,拆分布局初始化与页面初始化逻辑,新增键盘导航支持
  7. 延迟加载音乐播放器相关资源,仅在配置了歌单时加载
  8. 为站内链接添加no-pjax标记,优化登录与管理链接跳转
  9. 重构导航激活逻辑,自动展开父级菜单匹配当前页面
  10. 移除多个模板文件中重复的Hero冗余代码

Generated from v1.0.5

发布于查看详情

新增

  • 增加 Halo 附件存储策略和附件分组选择能力,上传安装包时可使用指定存储策略和分组。
  • 增加软件、版本发布、安装包的专属分享链接 token 机制。
  • 增加前台展示配置项:
    • 是否展示全部软件列表页
    • 是否允许普通软件详情直达访问
  • 增加 /software/share/{token} 分享访问入口,可只展示指定软件、指定版本发布或指定安装包。
  • 增加后台“分享链接”管理页面,支持查看、筛选、复制、启停和删除分享链接。
  • 增加软件外部链接 externalLinks 字段,支持自定义链接名称和地址。

修改

  • 修改软件高级信息中的“官网地址”为可动态维护的外部链接列表。
  • 修改公开页面详情展示逻辑,优先遍历 externalLinks,并兼容历史 officialUrl。
  • 修改版本发布、编辑发布、添加安装包、移除版本等操作为实时保存,不再依赖最终点击保存才生效。
  • 修改分享链接管理接口路径,兼容已有软件查看/管理权限。
  • 修改权限模板,补充分享链接相关权限和公开分享访问权限。

优化

  • 优化历史数据兼容:返回给前端时会把旧字段 officialUrl 自动合并到 externalLinks 中。
  • 优化删除版本/安装包后的页面刷新逻辑,避免旧数据仍停留在页面。
  • 优化删除安装包时的附件清理逻辑,避免已移除版本仍被判断为占用导致附件未删除。
  • 优化分享链接删除后的列表即时刷新体验,无需手动刷新页面。
  • 优化 403 访问拒绝提示,避免同一个错误重复弹窗。
  • 优化权限设置页面显示,修复分享链接权限模块名乱码问题。

修复

  • 修复删除版本时下载日志、反馈记录解绑逻辑中可能因 contains(null) 触发空指针的问题。
  • 修复移除软件包后页面仍显示旧安装包的问题。
  • 修复开启“删除软件时删除附件”后,移除安装包未正确清理附件的问题。
  • 修复分享链接管理页接口 404 / 403 相关路径和权限兼容问题。
发布于查看详情

本版重点

  • 友链、RSS 朋友圈、收藏、稍后阅读、已读状态、留言板和添加友链助手已统一适配到官方 PluginLinks 2.2.1。
  • /links 完成微信桌面端式重构,补齐独立明暗配色、来源详情、三点操作菜单和手机端列表/详情响应式体验。
  • 访客使用无凭据前端识别并可回退到留言板;只有具备相应 Halo 权限的登录用户才调用官方识别、状态和 Link CRUD 接口。
  • 彻底移除旧 plugin-friends 与 link-submit 的主题兼容层;桌面朋友圈小组件改为 plugin-links.feed,并增加反向契约门禁。
  • 分类、标签、归档统一 Finder 层级、分页路由、元数据图标颜色和无骨架 PJAX;图库补齐稳定侧栏、胶片条、平滑切图、空闲隐藏及大图遮挡修复。
  • 修复 Docsme 卡片悬停残影、深色版本选择器配色和 Finder 首屏样式闪烁。

升级提醒

  • Halo 最低版本:>= 2.25.0;本版本在 Halo 2.25.4 完成发布前验证。
  • PluginLinks 契约与已测试版本:2.2.1。
  • 旧桌面布局如保存过 plugin-friends.recent,升级后需要从组件中心重新添加“朋友圈”小组件;新 ID 为 plugin-links.feed。
  • 本版本未修改仓库原有 CI/CD,发布资产与 Halo 应用市场同步继续由官方 theme-cd.yaml@v4 完成。

验证

  • 24 个严格插件契约、13 个 Reload 路由、24 个 Playwright 场景、10 页真实审计、HTML/冷 PJAX 资源预算与 42 次 PJAX 生命周期全部通过。
  • 生产与完整依赖图漏洞均为 0;14 个顶层依赖及 181 条完整依赖许可证记录通过。
  • 本地发布包:260 个条目、574234 bytes,SHA-256:e614ea119b543a3c49c2bc0d5d914e2efdb32500ff60641269ede81222f2a509。

完整变更与验证记录见仓库中的 docs/发布说明.md、docs/项目进度.md 和 docs/验证与审计矩阵.md。


Generated from v0.9.43

发布于查看详情

人机验证 — Halo 登录注册验证插件

为 Halo 博客的登录和注册页面添加人机验证,有效防止暴力破解和恶意登录。

功能特性

  • 多验证服务商支持 — 本地图形验证码 / 极验 Geetest / Cloudflare Turnstile
  • 零配置可用 — 默认启用本地图形验证码,开箱即用,无需任何第三方服务
  • 完全离线 — 本地图形验证码不依赖任何外部服务或网络请求
  • 智能验证码定位 — 自动识别注册页确认密码框位置,验证码始终插入正确位置
  • 防重复提交 — 提交前校验,验证码未通过则拦截并 Toast 提示
  • 验证码刷新 — 点击图片或按钮即可刷新本地验证码
  • 安全优先 — 验证码验证失败时拒绝登录(fail-closed),内置请求频率限制

安装

  1. 下载 plugin-captcha-x.x.x.jar
  2. 在 Halo 后台 -> 插件管理 -> 上传并安装
  3. 启用插件后进入人机验证设置,默认已启用本地图形验证码

配置

配置项 说明
验证服务商 local / geetest / cloudflare
启用人机验证 开关
极验 ID / Key Geetest 后台获取
Cloudflare Site Key / Secret Key Turnstile 后台获取
验证码长度 本地验证码字符数(默认 4)
图片宽度 / 高度 本地验证码尺寸(默认 130x48)

第三方服务说明

  • 本地图形验证码(默认):完全本地生成,无任何外部网络请求
  • 极验 Geetest:选择后前端加载 static.geetest.com 脚本,后端调用极验 API 验证
  • Cloudflare Turnstile:选择后前端加载 challenges.cloudflare.com 脚本

许可证

MIT © Beibing

支持


要求: Halo >= 2.20.0


功能展示:

  • f896609b00e3841420959f4d90078e90
  • 2ec8546d5ca077d22d1eb651db289d60
  • 4bb2c1712725873bd97fdc2d639c2679
  • 1b1b6992b3feb47fdd6450ba0a4cbc54
发布于查看详情

主题漫游

主题漫游是一个面向 Halo 2.25+ 的多主题访客切换插件。站长可以把已安装主题与对应菜单绑定后开放给访客;每位访客只改变自己的页面渲染,不会启用或停用 Halo 的全局主题,也不会影响其他访客。

告别一个站只能穿一套衣服的烦恼。今天宠这个,明天宠那个,让安装过的主题都能雨露均沾。

主要能力

  • 自动读取 Halo 中已经安装的主题和菜单,无需手工新增主题数据。
  • 每套主题都能绑定自己的菜单,并决定是否开放给访客。访客可以自由切换站长准备的多套主题,不再只能看到一种风格,也让安装的每套主题都有机会派上用场。

安装与使用

  1. 安装并启动插件。
  2. 在 Console 左侧进入“主题漫游”。
  3. 为每个主题选择对应菜单。
  4. 打开需要向访客展示的主题。
  5. 在“漫游配置”中设置记忆时间、开放范围、入口位置和切换动画。

如果没有任何主题处于“前台开放”状态,插件不会向站点页面注入入口。

主题接入

插件不要求主题适配,默认会自动注入完整切换入口。主题需要自定义位置时,可提供一个锚点:

<div data-theme-roaming-anchor></div>

使用主题自己的按钮打开面板:

<button type="button" data-theme-roaming-open>切换主题</button>

前台 JavaScript 接口为 window.ThemeRoaming,提供 open()、close()、toggle()、refresh()、select(themeName)、getState() 和 mount(anchor)。调用前应判断接口是否存在:

window.ThemeRoaming?.open();

开放主题目录:

GET /apis/roaming.serenity/v1alpha1/catalog

Thymeleaf 可通过 themeRoamingFinder.getCatalog() 获取当前主题和开放主题列表。

菜单绑定建议使用 themeRoamingMenuFinder。未安装插件时必须保留 Halo 原生 menuFinder 回退:

${themeRoamingMenuFinder != null
  ? themeRoamingMenuFinder.getForTheme(theme.metadata.name).menuItems
  : menuFinder.getPrimary().menuItems}

开发与构建

插件版本仅在 gradle.properties 的 pluginVersion 中维护,插件元数据和 JAR 文件名会在构建时自动同步。

.\gradlew clean build

构建包含 Console 前端、Java 编译和单元测试,产物位于 build/libs/。

兼容性

  • Halo:>= 2.25.0
  • Java:21

Halo 升级后建议重新执行完整构建,并验证首页、列表页、文章页、主题静态资源和菜单绑定。

源码与反馈

发布于查看详情

Full Changelog: v1.7.3...v1.7.4

feat(sentence-list): add batch selection and batch operation functions

  1. 新增批量选择 composable useBatchSelection 与配套工具函数
  2. 为句子列表添加行内复选框与批量操作工具栏
  3. 实现批量移动分类、发布、取消发布、删除功能
  4. 添加强大的并发控制与结果汇总逻辑
  5. 适配响应式布局与无障碍交互规范

Generated from v1.7.4

发布于查看详情
  • 🚀 新增前台切换主题模式的控制配置以及滚动条显/隐的配置;
  • ✨ 优化前台切换主题模式的按钮样式;
发布于查看详情

二次元少女风格的 Halo 2.x 博客主题。本次为文章页细节修复与移动端体验优化。

🐛 修复

  • 修复使用 ByteMD 等编辑器撰写的文章中,一级标题(H1)不会出现在文章目录(TOC)中的问题。
  • 修复 ByteMD 等编辑器编写的文章中,表格在列较多、内容为纯中文时可能被压缩到逐字换行显示、以及超宽表格在窄屏 / 移动端无法横向滚动的问题;表格现在按内容自然宽度撑开、单元格不换行,超出部分交由外层容器横向滚动。
  • 修复 ByteMD 等编辑器导出的任务列表(勾选框)与文字不在同一行、文字看起来偏下的问题。
  • 修复侧栏个人信息卡 QQ 图标因原始 SVG 路径贴左对齐导致的视觉偏移问题(同时修复分享栏「QQ 空间」图标)。
  • 修复视频 / 音频播放器中央播放键三角图标因容器内边距方向设置错误导致的居中偏移问题。

♻️ 优化

  • 重新设计文章目录(TOC)层级样式:一至四级标题采用阶梯缩进 + 嵌套竖线引导,颜色与竖线粗细随层级递减,当前所在项整行高亮,层级关系更直观。
  • 「移动端侧栏模块」设置默认移除「个人信息卡」与「文章目录」两项,并从可选列表中彻底移除(这两个模块更适合桌面端侧栏展示;文章目录后续如有需要可自行在桌面端左 / 右栏中开启)。
  • 清理标签页样式表中的历史死代码:移除模板中已不存在对应元素的 # 前缀样式、被后续版本完全覆盖的旧「标签云」候选样式与重复的关键帧动画定义。

✅ 适配

Halo 2.14.0 及以上版本。


完整说明见仓库 README。


Generated from v1.1.5

发布于查看详情

v0.9.41 仅用于发布检查且从未公开;v0.9.42 是本轮修复的首个公开版本,继续使用项目原有 CI/CD。

性能

  • Dock 与顶栏菜单图标仅接受站内路径、HTTP/HTTPS 地址,阻止 Base64/Data URI 再次把首页 HTML 推高到 MB 级。
  • Moments、Photos、Equipment 列表改用 Halo 缩略图与响应式 srcset/sizes;关键媒体优先加载,其余媒体延迟加载并在 PJAX 销毁时释放。
  • 收口搜索观察器、评论懒加载、浮动滚动条、定时器和拖拽状态的 PJAX 生命周期。
  • 新增 HTML 体积、插件资源、媒体、窗口、搜索、评论、滚动条和 PJAX 生命周期门禁。

依赖与供应链

  • 全部直接依赖升级并锁定到本轮最新稳定版;工具链升级到 Vite 8.1.5、Tailwind CSS 4.3.3,继续使用 Node 24 与 pnpm 10。
  • 生产与完整依赖图漏洞均为 0;许可证策略和第三方声明校验通过。
  • pnpm 开启严格引擎、单一 esbuild 构建脚本白名单、最小发布时间、信任策略与冻结锁文件约束。
  • 发布包新增许可证、第三方声明、版本一致性、路径穿越、重复/大小写冲突、敏感目录与 SHA-256 校验。
  • CI/CD 工作流保持原样:公开 Release 后由 Halo 官方 theme-cd.yaml@v4 自动打包、上传并同步应用市场。

兼容性

  • Halo 最低版本提高到 >=2.25.0。
  • 实际适配与运行验证面向当前最新稳定版 Halo 2.25.4;13 个 reload 路由、22 个 Playwright 场景、性能预算和 20 轮 PJAX 门禁均通过。
  • 插件上游基线、安装版本、主题契约版本与已测试版本分层记录,不以“已安装/页面 200”替代完整适配证据。

验证

  • Node 24 干净目录冻结安装、pnpm run check 与构建通过。
  • 许可证审计通过;生产和完整依赖图均为 0 条漏洞。
  • v0.9.42 本地发布包包含 266 个条目并通过完整性校验。
  • Halo 2.25.4 reload、Playwright、性能预算与 PJAX 生命周期门禁通过。

Generated from v0.9.42

发布于查看详情

Full Changelog: v1.7.2...v1.7.3

refactor: 重构分类计数逻辑,移除缓存一致性问题

  • 新增 CategoryCountService 实时计算分类句子统计,替代 Category.Status.sentenceCount 缓存
  • 移除 Category.Status 内部类和相关计数更新逻辑
  • 重构 SentenceReconciler,仅保留分类名归一化逻辑,不再维护缓存
  • 添加 UncategorizedCategoryInitializer 兜底创建未分类分类
  • 重构前端分类列表展示,使用实时计数接口
  • 优化相似度检查接口,返回结构化批量删除结果
  • 新增 SentenceReconciler 和 SimilarityCheckConsoleEndpoint 单元测试
  • 修复 AI 生成服务的参数校验和响应大小限制
  • 优化定时任务调度,避免阻塞主线程

Generated from v1.7.3

发布于查看详情

本次更新

  • 实体 QSL 卡申请页新增完整申请与寄送进度状态。
  • 支持显示可申请、申请未通过可重新申请、审核中、建卡中、建卡异常、待制卡、已制卡、已打包、已发卡和已签收。
  • 状态由实体卡申请、QSO 占用与关联卡片实时聚合,不新增重复持久化字段。
  • 公开查询接口新增 statusCode、statusText、statusTextEn,保留原兼容字段。
  • 前台新增中英双语状态标签和颜色区分。
  • 不公开申请备注、审核说明、内部错误、地址、邮箱等敏感信息。
  • 同步产品定义、API 合同、字段清单、结构化清单和项目说明。

验证

  • Gradle 完整构建与全部测试通过。
  • 插件热重载成功。
  • 本机运行态公开页面和 TEST 呼号查询验证通过,未提交测试申请。

Generated from v2.3.29

发布于查看详情

本次更新

  • 实体 QSL 申请页新增可视化卡片版本候选区。
  • 横版、竖版卡面均在正方形预览框中完整显示。
  • 卡面右侧展示版本名称与剩余可用数量。
  • 每条 QSO 支持独立选择对应卡片版本。
  • QSO 最右侧新增“申请此记录的卡片 / Request Card for This QSO”快捷按钮。
  • 完善选择、取消选择、待审核及已有卡片状态的交互联动。
  • 同步实体 QSL 开发约束、产品定义和项目结构化清单。

验证

  • Gradle 完整构建与测试通过。
  • 插件热重载成功。
  • Chrome 实际页面交互验证通过,未提交测试申请。

Generated from v2.3.28

发布于查看详情

经过多个版本迭代与系统性测试,存储工具箱进入稳定版本。本次发布包含引用替换核心链路的正确性大修与 Console UI 的全面改版。

🐛 问题修复

  • 已发布内容引用替换失效 (#18) - 修复 URL 替换只更新草稿快照(headSnapshot)、已发布版本(releaseSnapshot)仍指向旧地址导致前台显示旧图片的问题;存在未发布草稿时,草稿与已发布内容现在会各自独立替换,互不覆盖
  • 多图并发替换互相覆盖 (#18) - 新增引用替换串行化协调器,同一篇内容引用多张图片一次性批量处理时,替换任务按内容串行执行,不再出现部分图片替换丢失
  • 文档插件(Docsme)草稿支持 - 修复存在未发布草稿的文档扫描失败、替换遗漏的问题,草稿与已发布内容双快照均正确替换

✨ UI 全面改版

  • 对齐 Halo 后台设计规范 - 建立统一设计 token(主色、描边、圆角、动效均对齐官方),300+ 处硬编码色值全部收编,交互控件全面替换为官方组件(VButton/VModal/VEmpty/VAlert 等)
  • 现代化视觉 - 统计卡片图标化(语义色图标块)、卡片细边框 + hover 柔和阴影、统一微动效、胶囊式 tab 导航
  • 弹窗体系重构 - 全部手写弹窗迁移为 VModal,交互统一(标准头部 + × 关闭、ESC、确认类弹窗防误触)
  • 代码瘦身 - 抽取共享组件与样式层,清理约 2400 行重复/死代码

⚡ 功能增强

  • 批量处理防呆 - 勾选自动替换引用时增加「是否已执行引用扫描」二次确认,避免未扫描直接处理导致引用无法替换
  • 列表自动就绪 - 批量处理完成后附件列表自动刷新,采用与 Halo 官方一致的数据驱动补拉策略,删除/缩略图生成等异步操作完成后自动补齐显示
  • 页头快捷入口 - 新增「插件设置」快捷跳转按钮

📋 完整更新日志


Generated from v1.0.0

发布于查看详情

halo-theme-cosolar v1.0.7

发布日期:2026-07-19

概述

本次更新聚焦页脚区域的重构与功能增强,新增首页滚动加载模式,完善用户菜单,并提供了全新的主题配置手册。


新功能

🔥 页脚全面重构

  • 页脚主区域显隐开关:可通过后台设置 显示页脚主区域 控制品牌、统计与订阅区域的显示/隐藏,底部版权信息始终保留
  • 品牌区:可独立配置页脚 Logo(图片/文字)、名称、标语、站点简介,支持自定义 Logo 尺寸
  • 网站统计面板:实时展示访问量、点赞数、评论数、文章数、分类数、标签数,以及建站时间和博主所在地
  • 订阅表单:内置邮件订阅表单,支持对接第三方邮件订阅服务(如 Mailchimp),未配置时显示"功能待开发"提示气泡
  • 法律信息链接:支持配置隐私政策、使用条款、友情链接、关于我们四个导航链接,带图标分隔展示
  • 社交图标升级:社交链接展示为纯图标按钮(移除文字标签),新增微信公众号、RSS 订阅图标,交互更简洁美观
  • 背景图增强:支持页脚背景图片,亮色/深色模式分别配置,独立控制透明度,防止干扰内容阅读
  • 文字颜色自定义:亮色/深色模式可分别设置页脚文字与图标颜色,适配不同背景图

📜 首页滚动加载模式

  • 新增「首页加载方式」配置项,支持 分页(默认)和 滚动加载 两种模式
  • 滚动加载模式下,滚动到底部自动加载下一页文章(IntersectionObserver 实现,提前 400px 预加载)
  • 同时保留「查看更多文章」按钮作为兜底,保证无 JavaScript 场景可用
  • 客户端无刷新加载,轮播图在加载过程中始终保留,体验更流畅

🧭 用户菜单扩展

  • 用户下拉菜单新增「发布文章」入口,直接跳转编辑器
  • 新增「个人中心」入口,跳转至用户中心页面

⚙️ 设置项新增

  • 博主信息区新增 博主所在地、个人网站、建站时间 字段
  • 社交链接新增 微信公众号 字段
  • 页脚设置新增完整的配置表单(Logo、背景图、透明度、颜色、法律链接等 20+ 项)

修复

  • 修复页脚背景图 SpEL 模板中引号转义错误,确保背景图在页脚正常渲染
  • 修复「显示页脚博主信息」开关重构后不再生效的问题(已迁移至新的页脚主区域开关)

文档

  • 新增 主题配置手册,完整覆盖所有后台配置项,含截图说明与配置建议
  • 精简 README 使用教程章节,降低新用户上手门槛

技术细节

  • 版本:1.0.7(theme.yaml)
  • 兼容性:要求 Halo >= 2.20.0
  • 依赖:plugin-links(友情链接)、plugin-search-widget(搜索挂件)等
  • CSS 变更:页脚样式全面重写,新增 900+ 行 CSS,支持毛玻璃效果、统计网格、响应式布局
  • JS 变更:新增客户端翻页/滚动加载模块(index.ts),页脚订阅提示气泡(main.ts)
  • 模板变更:layout.html 页脚部分重写,pagination.html 翻页组件重构,index.html 首页加载逻辑拆分

升级说明

  1. 更新主题文件后,请进入后台 → 主题 → 设置,重新保存页脚相关配置以生效
  2. 如使用自定义 CSS/JS 覆盖了页脚样式,请检查兼容性
  3. 新增的「首页加载方式」默认为分页,如需体验滚动加载,请在主题设置中切换

Snipaste_2026-07-19_17-13-12

发布于查看详情

修复

  • 修复头像无法显示的问题:头像存储策略设为初春图床时,用户上传头像后图床能正常上传,但个人中心头像加载不出来。
  • 修复同步时偶发请求超时:同步页面和本地环境有时会报「请求超时」或「请求失败」,后台日志显示 null。
发布于查看详情

更新内容

像素风主题体验

  • 重构主题 Logo 与视觉识别,收敛为适合博客阅读的像素点风格。
  • 按需加载 Figlet 字体,减少非必要资源开销。
  • 清理未引用的图片、截图和冗余文档,保持发布包精简。

移动端与页面交互

  • 优化移动端首页信息密度,减少大面积空白。
  • 完善分类、标签、归档、搜索等页面的移动端布局与终端式交互。
  • 重构前端原生运行时,改善页面导航、状态恢复、无障碍提示和交互稳定性。
  • 强化鉴权网关,降低登录状态切换与受保护页面访问异常。

插件兼容与工程质量

  • 完善 Halo 插件兼容契约与版本证据,明确适配边界。
  • 升级并锁定依赖,补充运行时、DOM、边界场景和回归测试。
  • 测试覆盖率达到既定质量门槛,并将完整检查纳入 CI。
  • 发布包改为可复现构建,增加单一产物、SHA-256 完整性与不可变 Release 校验。

升级提示

升级后请在 Halo 控制台执行一次主题“重载”,然后对博客前台进行无缓存刷新,以确保新模板和静态资源全部生效。


Generated from v1.2.11

发布于查看详情

halo-theme-cosolar v1.0.6

✨ 新增

  • 用户菜单与登录态体验优化
  • 用户菜单下拉框:登录后鼠标悬停用户图标,弹出毛玻璃风格的下拉菜单。
    • 显示当前用户昵称
    • 「控制台」入口(带齿轮图标,跳转 /console)
    • 「退出登录」入口(带退出图标,跳转 /logout)

🐛 修复

  • 修复用户下拉菜单不显示的问题:普通主题模板中登录态判断原使用了错误的变量,现改用 Halo 标准的 #authentication + contributorFinder.getContributor(...) 方式正确获取当前用户,下拉框可正常渲染。
  • 修改1.0.5产生的BUG

💄 优化

  • 登录态用户图标仅显示主题色,移除背景填充,更简洁。
  • 下拉框升级为毛玻璃(磨砂)效果:backdrop-filter 模糊 + 半透明背景与边框,浮层更有层次。
  • 菜单项悬停态细化:浅主题色背景 + 轻微位移,新增分隔线与退出项的危险色区分。

⚙️ 注意

  • 需要安装 plugin-links 链接管理插件,用于管理友情链接、检查链接状态,并将链接站点的 RSS / Atom 动态聚合到 Halo Console 中。
  • 开启RSS功能

Snipaste_2026-07-18_20-07-02

发布于查看详情

halo-theme-cosolar v1.0.5

本次更新大幅扩展了主题的交互页面能力,新增登录/注册/登出、友情链接、RSS 资讯三大模块,并对侧边栏配置与模板健壮性做了增强。

✨ 新增功能

1. 登录 / 注册 / 登出页面(全新网关页)

  • 青绿美学的左右分栏布局:左侧品牌展示区(Logo、标语、动态装饰),右侧表单卡片。
  • 支持本地账号登录、其他登录方式(formAuthProviders)、社交登录,含「记住我」「忘记密码」入口。
  • 新增注册页与退出确认页,复用同一套分栏布局与样式。
  • 登录页专属设置项(设置 → 登录页面):
    • 左侧品牌区占比(20–60%)
    • 遮罩层开关、遮罩渐变主色与透明度(明暗双模各自可配)
  • 主题色防闪烁脚本,避免明暗切换时白屏闪烁。
  • 新增资源:src/login.html、signup.html、logout.html、login_local.html、gateway_fragments/{login,logout,signup}.html、src/css/login.css、public/assets/images/login_default.png。

2. 友情链接页面(全新页面)

  • Hero 双栏 + 友链/分组/无限可能统计栏。
  • 分组筛选 + 实时搜索(前端筛选,不整页跳转)。
  • 友链卡片展示 Logo、在线/离线/检测中、已回链/未回链 徽章。
  • 「申请友链」CTA(mailto)、底部评论组件。
  • 配套交互脚本:src/js/links.ts。

3. RSS 资讯页面(全新自定义页面模板)

  • 三栏布局:左频道导航、中资讯流、右统计面板(资讯概览 / 活跃频道 / 抓取状态)。
  • 支持按订阅源/分组筛选、分页「加载更多」。
  • 依赖友情链接插件的 RSS 功能,未启用时给出友好引导提示。
  • 已在 theme.yaml 注册为自定义页面模板 feeds,后台可选「RSS 资讯」页面类型。
  • 配套脚本:src/js/feeds.ts。

🔧 侧边栏配置增强

  • 友情链接、订阅资讯模块新增展示数量设置项(sidebar_links_count / sidebar_feeds_count)。
  • 侧边栏模块顺序改为 array 列表配置,后台可拖拽排序、删除隐藏、添加恢复,取代原先逐个填写数字的方式。

🐛 模板健壮性修复

  • layout.html / categories.html / category.html / post-card.html 等多处将 ${x} 判空改为 ${x != null and !#strings.isEmpty(x)},避免空字符串误渲染。
  • Logo 尺寸配置支持独立宽高。
  • favicon 增加空值判断。

🎨 样式

  • 主要涵盖登录页、友链页、资讯页样式及整体视觉优化。

Snipaste_2026-07-18_12-48-29

Snipaste_2026-07-18_12-38-22

发布于查看详情

详情请参阅更新日志(在 GitHub 上查看)。
Please refer to Changelog (view on GitHub) for details.

howiehz-higan-zh-hans.zip 为简体中文默认安装包,仅包含 .br。
howiehz-higan-zh-hans-tiny.zip 为简体中文轻量安装包,移除默认字体资源,默认 logo 资源将替换为 1x1 占位图,不包含预压缩文件,且不注入 Mermaid / instant.page 运行时。
howiehz-higan-zh-hans-full-precompressed.zip 为简体中文完整预压缩包,包含 .gz / .br / .zst。
howiehz-higan-en.zip is the English default package with .br only.
howiehz-higan-en-tiny.zip is the English tiny package that removes the default font assets, replaces the default logo asset with a 1x1 placeholder image, omits precompressed assets, and excludes Mermaid / instant.page runtime injection.
howiehz-higan-en-full-precompressed.zip is the English full precompressed package with .gz / .br / .zst.

发布于查看详情

Full Changelog: v1.7.1...v1.7.2

feat(hitokoto): 优化页面体验与可访问性

  • 添加移动端主题色元标签与颜色方案支持
  • 预连接Google Fonts加速字体加载
  • 移除旧樱花点击动画,重构为融入飘落系统的点击特效
  • 实现系统减少动效适配,符合WCAG规范
  • 为引用容器添加无障碍属性
  • 为提交模态框添加焦点陷阱与焦点恢复逻辑
  • 修复樱花飘落逻辑,统一从顶部生成花瓣
  • 为触摸取消事件添加鼠标状态重置逻辑

Generated from v1.7.2

发布于查看详情

更新内容

  • 后台本台卡片版本新增‘仅支持实体 QSL 通联卡’开关。
  • 开关开启后,实体 QSL 卡申请、普通通联和线下换卡仍可使用该版本。
  • 线上换卡页面继续展示受限版本,但不可选择并显示限制原因。
  • 线上换卡提交接口新增服务端校验,阻止绕过前端选择受限版本。
  • 修正实体 QSL 卡申请错误排除 active=false 卡片版本的问题。
  • 公开卡片版本接口新增 qsoOnly(是否仅限实体 QSL 通联卡)字段。
  • 同步产品定义、API 合同、结构化清单及实体卡申请约束文档。

验证

  • Gradle 完整构建与全部测试通过。
  • 前端类型检查和构建通过。
  • 插件热重载成功。
  • 已使用 TEST 呼号和 202605 版本完成实体卡申请运行验证。

Generated from v2.3.27

发布于查看详情

Full Changelog: v1.7.0...v1.7.1

style: add multiple animations and noise overlay effects

  • 新增textShimmer、glowBreathe、countPop三种CSS动画
  • 为背景光晕添加呼吸动画效果
  • 添加胶片噪点纹理叠加层及对应SVG滤镜
  • 为引用文本添加流光渐变动画
  • 优化逐字动画延迟逻辑,添加渐进加速效果
  • 点赞计数新增弹出动画并优化渲染逻辑

Generated from v1.7.1

发布于查看详情

Full Changelog: v1.6.2...v1.7.0

feat: 添加模板配置与主题切换功能

  1. 新增模板配置类与配置获取接口
  2. 增加后台模板设置项,支持主题、花瓣动画、首次提示配置
  3. 实现明暗主题自适应切换,支持跟随系统与用户自定义偏好
  4. 新增花瓣飘落动画开关与首次操作提示开关
  5. 优化页面样式,适配明暗主题切换动效

Generated from v1.7.0

发布于查看详情

功能优化

  • AI Foundation 改为可选依赖,未安装或未启用时仍可启动 AI Assistant,并保留编辑器与 RAG 管理能力。
  • RAG 应用配置统一使用嵌套的聊天模型结构,移除旧的扁平字段兼容。

问题修复

  • 修复 AI Foundation 不可用提示内容及应用市场跳转路径。
发布于查看详情

更新内容

依赖与构建安全

  • 将源码构建基线收口为 Node.js >=24.18.0 <25 和 pnpm 10.34.5。
  • 升级并固定 Vite 8.1.5、Tailwind CSS 4.3.3、DaisyUI 5.6.18、TypeScript 6.0.3、Alpine.js 3.15.12、Swup 4.9.2 等核心依赖。
  • 移除已无必要的 Autoprefixer 和冗余开发依赖,收紧高风险传递依赖版本;最终安全审计未发现已知漏洞。
  • 新增源码、配置、格式、插件契约、依赖审计、完整构建和生成产物一致性门禁。
  • 固化 19 个构建入口、5 个版本化 chunk、静态资源引用和缓存版本检查,禁止旧 chunk、Sourcemap 与未登记产物进入主题包。
  • 加固 GitHub Quality Gate 与主题 CD,统一 Node、pnpm 版本来源并固定外部工作流引用。

PJAX 与页面生命周期

  • 修复 PJAX 导航后主样式、字体和全局网格背景重复加载的问题。
  • 修复 swup:page:view 重复触发、页面 body 状态漂移和插件运行时 class 被覆盖的问题。
  • 收口 GitHub 热力图、图片懒加载、动画、预加载器、Observer、Timer 和 RAF 的离页清理,避免重复进入后的实例泄漏。
  • 改进缓存图片、失败图片、前进、后退、重复进入和快速连续导航的处理。
  • 修复离页后桌面二级菜单、移动端抽屉和移动子菜单仍保持打开的问题。
  • 补齐 Swup HeadPlugin 同步新 Head 资源后外部脚本不会自动执行的缺口;只重放尚未执行的脚本,并按完整 URL 和版本去重。
  • 修复首页 Thymeleaf 条件类被格式化器破坏后造成流式响应中断的问题,并加入静态契约门禁。
  • 修复 Steam 页面空图片地址请求,并统一各布局的全局背景挂载位置。

插件适配

  • 适配 Contact Form 1.6.4 的 21 个主题变量及普通、单表单、自动加载三类宿主,补齐明暗主题和占位符样式。
  • 继续保持 PluginLinks 2.0.0、Friends 1.4.6、Link Submit 1.0.7 组合的 PJAX 弹窗、资源去重和失败降级兼容。
  • 改进图库、LightGallery、Docsme、Steam、朋友圈、瞬间等页面在 PJAX 重入后的资源和生命周期管理。
  • AI Assistant 2.2.4 的既有摘要小部件已完成无模型安全烟测,覆盖首次 PJAX 注入、明暗模式、390px 移动端及前进/后退;临时配置已精确恢复,未调用模型。
  • 插件契约继续区分“实现版本、运行测试版本和当前安装版本”,不以安装成功代替完整业务兼容结论。

验证结果

  • 在 Halo Pro 2.25.4 主实例完成 Theme Reload、页面缓存刷新和真实浏览器复验。
  • 基础插件页面检查 12/12、深度页面/API 与 Bangumi 边界检查 36/36。
  • 真实浏览器已覆盖首页、瞬间、Links 申请弹窗、图库灯箱、Docsme、Steam、朋友圈、文章、作者页,以及返回、前进、重复进入、主题切换和移动端抽屉。
  • 快速连续导航实测为 visit:start=2、visit:abort=1、page:view=1、visit:end=1,最终页面和资源实例正确收敛。
  • 27 个主题插件契约对应插件均处于 STARTED,严格版本门禁通过;主实例另有 18 个矩阵外插件,继续按能力边界单列,不自动标记兼容。
  • 开发者模式开启时,首页到瞬间的真实 PJAX 导航产生 23 条 [SkyDebug:*] 日志;关闭并恢复配置、清缓存、硬刷新后,同一路径为 0 条。
  • Node.js 24.18.0 + pnpm 10.34.5 完整构建通过,生成 19 个入口、5 个 2.2.34 chunk 和主题安装包。

兼容说明

  • Halo 要求:2.23.0 及以上版本。
  • 源码构建环境:Node.js >=24.18.0 <25、pnpm 10.34.5。
  • 同时使用朋友圈或友链提交时,PluginLinks 继续固定为 2.0.0;2.1.0~2.2.1 存在已确认的跨插件类加载冲突。
  • Contact Form 1.6.4 已完成主题变量、宿主和资源适配,但当前站点没有真实表单样本,UI、校验、上传与提交尚未执行。
  • AI Assistant 2.2.4 仅验证已有摘要小部件,不包含模型生成、RAG 或编辑器 AI。
  • 本次不宣称所有已安装插件的全部业务流程均已验证。

Generated from v2.2.34

发布于查看详情

更新内容

  • 新增独立的实体 QSL 卡申请页面 /qsl_card,支持按呼号查询 QSO、逐条选择卡片版本及个人地址或卡片局收件。
  • 公开页面采用中英双语展示,卡片局候选按去向国、名称、邮编和地址显示。
  • 新增实体卡申请与 QSO 占用持久化模型,阻止待审核申请或已有卡片的 QSO 重复提交。
  • 新增后台实体卡申请审核,审核通过后立即自动创建全部卡片,并记录逐条 QSO 与卡片编号映射。
  • 新增审核邮件通知、RBAC 权限、导入导出、迁移状态及启动恢复支持。
  • 完善公开接口校验、限流、安全测试和开发约束文档。

Generated from v2.3.26

发布于查看详情

更新内容

主题运行时与页面体验

  • 统一开发者模式与 SkyDebug 日志门禁;关闭开发者模式时不再输出主题诊断日志,并过滤敏感字段。
  • 收口 PJAX 页面挂载、清理、脚本重放和未知路由降级,修复重复实例与返回页面后功能失效。
  • 改进通用页面、正文、导航、分享、错误页和维护页的响应式展示与失败降级。
  • 修复微信分享二维码 SVG 命名空间,并重构本地文档目录。

插件适配

  • Links 2.0.0、Friends 1.4.6、Link Submit 1.0.7:修复分组、申请弹窗、PJAX 重入与失败降级;明确 Links 2.1.0~2.2.1 组合的类加载冲突边界。
  • Moments 1.16.1、LightGallery 1.2.1:修复单图跳转、多图灯箱、表情选择器和 PJAX 清理。
  • Photos 2.1.2:修复无限加载与动态灯箱;20→40→46 张加载及 46 个详情路由验证通过。
  • Douban 1.2.5:修复非法查询归一、筛选历史、空态和边界处理。
  • Bangumi 1.4.1:适配稳定版,数值越界返回 404、文本参数自动回退,真页 PJAX 验证通过。
  • Shiki 1.4.1:修复嵌套代码块;26 个真实代码块的两轮 PJAX、折叠和明暗切换验证通过。
  • 改进 Categories、Steam、Docsme、Equipment 等页面的请求取消、重试、空态与失败降级。

验证与发布

  • 新增 27 个主题插件契约、安装版本检查及只读页面/API 冒烟检查。
  • 标准检查 12/12、完整深度检查 36/36。
  • Node 24 + pnpm 10 完整构建通过,生成 19 个入口、62 个模块。
  • 更新主题版本及静态资源缓存版本到 2.2.33。

兼容说明

  • Halo 要求:2.23.0 及以上版本。
  • Contact Form 1.6.4 与 AI Assistant 2.2.4 高于现有主题契约;当前没有已知主题故障,但因缺少真实业务样本,暂不标记为完整测试通过。
  • 本版本的主题包、GitHub Release 资产及 Halo 应用市场提交由官方持续交付工作流自动处理。

Generated from v2.2.33

发布于查看详情

1.1.3

二次元少女风格的 Halo 2.x 博客主题。本次为移动端体验升级与细节优化。

✨ 新增

  • 移动端导航改为「右侧抽屉」:包含个人信息卡(头像 / 签名 / 位置 / 文章分类标签统计 / 社交链接)、搜索框(实时结果)、导航菜单(带图标,子菜单可折叠展开)、登录模块(可展开控制台 / 个人中心 / 退出登录)。
  • 移动端顶栏精简:搜索框与登录头像收入抽屉,仅保留 Logo、明暗切换与菜单按钮。
  • 新增「移动端侧栏模块」设置:可单独配置手机端侧栏显示哪些模块及其顺序。
  • 新增「侧栏友链-显示数量」设置:限制侧栏友链模块展示的数量(0 表示全部)。

♻️ 优化

  • 留言墙发布栏在窄屏桌面下输入框更宽松。
  • 清理样式中被覆盖的冗余规则。

✅ 适配

Halo 2.14.0 及以上版本。


完整说明见仓库 README。


Generated from v1.1.3

发布于查看详情

升级提示

  • 本版本要求 Halo >= 2.25.0。
  • 内容主题设置已完成重构,不再提供 Light、Dark、WeChat、Ant Design 等内置内容主题。
  • 浅色与深色模式现在分别通过“自定义 CSS 地址 + 正文容器 class”配置内容样式。
  • 如果旧版本正在使用内置内容主题,升级后请前往「文档设置」重新配置自定义 CSS;未配置 CSS 或加载失败时,阅读页会使用基础回退样式。
  • 自定义 CSS 地址仅支持 HTTPS 地址或以 / 开头的站内绝对路径。
  • 升级前建议通过「文档设置」导出当前设置和文档快照,并备份 Halo 数据。

新功能

明暗模式独立渲染配置

  • 浅色与深色模式可分别配置:
    • 自定义 Markdown CSS 地址
    • 正文容器 class
    • highlight.js 代码高亮主题
  • 优先识别 Halo 当前主题状态。
  • Halo 使用 auto 或未提供明确主题状态时,自动跟随浏览器的 prefers-color-scheme。
  • 主题变化后无需重新生成正文 HTML,即可切换内容 CSS、正文 class 和代码主题。
  • 增强对常见主题 class、data 属性和本地存储主题状态的兼容。

RaTeX 数学公式渲染

  • 新增对 $...$ 行内公式和 $$...$$ 块级公式的渲染支持。
  • 使用 RaTeX WASM + Canvas 在浏览器端渲染公式。
  • Canvas 背景保持透明,公式颜色自动跟随正文实际颜色。
  • 明暗主题切换后自动重新绘制公式颜色。
  • RaTeX 初始化或单个公式渲染失败时,自动回退到 Vditor 数学公式渲染。
  • RaTeX、WASM、字体及相关资源均由插件本地提供,无需依赖外部 CDN。

Markdown 渲染增强

新增或完善以下前台渲染选项:

  • 代码块行号
  • 中英文与数字之间自动空格
  • 裸 URL 自动链接
  • Markdown 脚注
  • ==文字== Mark 标记
  • 常见技术术语大小写修正
  • 正文顶层段落首行缩进
  • Mermaid、Graphviz、ECharts、Markmap 等图表代码块渲染

以上设置仅作用于前台文档阅读页,不会改变后台 Vditor 编辑器的行为。

改进

  • 优化文档设置页的渲染配置布局,使用浅色 / 深色标签分别管理对应设置。
  • 移除效果不稳定的内置内容主题选择,统一改为自定义 CSS 配置。
  • 自定义 CSS 留空或加载失败时保留可读的基础回退样式。
  • 优化主题切换过程中的代码主题和公式颜色刷新逻辑。
  • 修复快速连续切换明暗主题时,旧的延迟刷新可能覆盖当前公式颜色的问题。
  • 调整文档设置页与文档编辑页的自定义代码输入框布局。
  • 规范插件 YAML 配置值格式。
  • 更新文档设置页截图及相关使用文档。

构建与发布

  • 构建流程新增 RaTeX 静态资源处理任务。
  • Vditor、RaTeX、WASM 和数学字体资源会随插件 JAR 一并打包。
  • 新增静态资源反向代理配置,确保前台渲染资源可正常访问。
  • 完善自动发布流程,支持发布至 Halo 应用市场。

兼容性

  • Halo:>= 2.25.0
  • Java:21+
  • 从 v1.1.0 升级时,原有文档库、文档内容、自定义代码、布局配置和代码主题配置均可继续使用。
  • 旧的内置内容主题名称不再生效;已有自定义 CSS 地址与正文 class 会继续保留。

Generated from v1.2.1

发布于查看详情

升级提示

  • 本版本要求 Halo >= 2.25.0。
  • 内容主题设置已完成重构,不再提供 Light、Dark、WeChat、Ant Design 等内置内容主题。
  • 浅色与深色模式现在分别通过“自定义 CSS 地址 + 正文容器 class”配置内容样式。
  • 如果旧版本正在使用内置内容主题,升级后请前往「文档设置」重新配置自定义 CSS;未配置 CSS 或加载失败时,阅读页会使用基础回退样式。
  • 自定义 CSS 地址仅支持 HTTPS 地址或以 / 开头的站内绝对路径。
  • 升级前建议通过「文档设置」导出当前设置和文档快照,并备份 Halo 数据。

新功能

明暗模式独立渲染配置

  • 浅色与深色模式可分别配置:
    • 自定义 Markdown CSS 地址
    • 正文容器 class
    • highlight.js 代码高亮主题
  • 优先识别 Halo 当前主题状态。
  • Halo 使用 auto 或未提供明确主题状态时,自动跟随浏览器的 prefers-color-scheme。
  • 主题变化后无需重新生成正文 HTML,即可切换内容 CSS、正文 class 和代码主题。
  • 增强对常见主题 class、data 属性和本地存储主题状态的兼容。

RaTeX 数学公式渲染

  • 新增对 $...$ 行内公式和 $$...$$ 块级公式的渲染支持。
  • 使用 RaTeX WASM + Canvas 在浏览器端渲染公式。
  • Canvas 背景保持透明,公式颜色自动跟随正文实际颜色。
  • 明暗主题切换后自动重新绘制公式颜色。
  • RaTeX 初始化或单个公式渲染失败时,自动回退到 Vditor 数学公式渲染。
  • RaTeX、WASM、字体及相关资源均由插件本地提供,无需依赖外部 CDN。

Markdown 渲染增强

新增或完善以下前台渲染选项:

  • 代码块行号
  • 中英文与数字之间自动空格
  • 裸 URL 自动链接
  • Markdown 脚注
  • ==文字== Mark 标记
  • 常见技术术语大小写修正
  • 正文顶层段落首行缩进
  • Mermaid、Graphviz、ECharts、Markmap 等图表代码块渲染

以上设置仅作用于前台文档阅读页,不会改变后台 Vditor 编辑器的行为。

改进

  • 优化文档设置页的渲染配置布局,使用浅色 / 深色标签分别管理对应设置。
  • 移除效果不稳定的内置内容主题选择,统一改为自定义 CSS 配置。
  • 自定义 CSS 留空或加载失败时保留可读的基础回退样式。
  • 优化主题切换过程中的代码主题和公式颜色刷新逻辑。
  • 修复快速连续切换明暗主题时,旧的延迟刷新可能覆盖当前公式颜色的问题。
  • 调整文档设置页与文档编辑页的自定义代码输入框布局。
  • 规范插件 YAML 配置值格式。
  • 更新文档设置页截图及相关使用文档。

构建与发布

  • 构建流程新增 RaTeX 静态资源处理任务。
  • Vditor、RaTeX、WASM 和数学字体资源会随插件 JAR 一并打包。
  • 新增静态资源反向代理配置,确保前台渲染资源可正常访问。
  • 完善自动发布流程,支持发布至 Halo 应用市场。

兼容性

  • Halo:>= 2.25.0
  • Java:21+
  • 从 v1.1.0 升级时,原有文档库、文档内容、自定义代码、布局配置和代码主题配置均可继续使用。
  • 旧的内置内容主题名称不再生效;已有自定义 CSS 地址与正文 class 会继续保留。

Generated from v1.2.0

发布于查看详情

资料更新

  • 友链星球开始消费完整站点资料更新事件,命中对应 siteId 或历史 URL 后立即更新卡片,并在后台重新读取 Hub 权威快照。

UI优化

  • 将“启用主星实时播报”开关移入“前台显示”卡片,排列在“显示前台挂件”下方。
  • 两个开关继续使用各自独立的配置字段和保存逻辑,仅收敛界面层级,不改变既有功能行为。

Bug修复

  • 修复本地残留的链接创建接口。

数据搬家(旧Bug)

  • 修复“友链搬家”入口,以 AstraHub 服务端快照为唯一权威数据源,完整重建当前站点的 Halo Link 与 LinkGroup。站点搬迁/数据丢失可一键重载,找回互联站点。

资料同步(旧Bug)

  • 站点名称、站点 URL、星链节点名、站点简介、头像和 RSS 地址现已纳入同一份完整资料更新事件。
发布于查看详情

feat(theme): 增强内容处理功能

  • 添加 content-enhancements.ts 文件实现富文本内容增强功能
  • 替换原有的内容处理函数为统一的富文本增强系统
  • 添加自定义页面模板说明,包括留言页等新功能
  • 重构图片灯箱、表格包装、列布局等内容处理逻辑
  • 优化资源加载和页面初始化流程

fix(theme): 修复文章目录标题异常

Full Changelog: 1.0.0-beta9...1.0.0-beta10


Generated from 1.0.0-beta10

发布于查看详情

Full Changelog: v1.6.1...v1.6.2

feat: 新增句子维度统计功能与管理页面

  1. 更新CategoryViewRecord的sentenceName字段注释,说明其用于按句子维度统计
  2. 为浏览量记录逻辑新增sentenceName上报,支持按句子聚合统计
  3. 新增今日句子维度浏览/点赞详情的后端API与响应结构体
  4. 前端概览页面新增可点击统计卡片,添加详情弹窗展示句子维度数据

Generated from v1.6.2

发布于查看详情

友链邀请与本地建链

  • 邀请列表改为直接读取权威聚合接口,统一收件箱、发件箱和状态筛选,避免本地缓存状态不一致。
  • 对方同意邀请后,WebSocket 事件会通知邀请方,插件自动创建或复用本地 Halo Link,并完成回执。
  • 邀请事件统一携带方向、双方站点资料和处理状态,前端红点、列表卡片与实时事件使用同一份数据。

星图库实时更新

  • 扩充星图库 WebSocket 事件解析,统一识别事件中的来源站点、目标站点及受影响站点集合。

星链资讯

  • 优化资讯来源的增量加载状态,组件卸载后不再继续写入过期响应。
发布于查看详情

新特性

  • 支持在 Provider 和 Model 级别配置模型参数映射,并统一适配不同供应商的推理模式、最大输出 Token 等常用参数 by @LIlGG in #86

功能优化

  • 优化模型列表筛选,支持通过 URL 保留搜索和筛选状态 by @ruibaby in #82
  • 优化 AI 模型选择器的分组、禁用状态和响应式显示 by @ruibaby in #84
  • 优化模型测试台的头部、参数面板和操作区布局,并修复模型初始化选中问题 by @ruibaby in #83 and #85

开发者相关

  • 模型请求改用类型安全的公共参数并移除 providerOptions,使用该字段的插件需迁移至标准请求字段和参数映射配置 by @LIlGG in #86

Full Changelog: v1.0.0-beta.4...v1.0.0-beta.5


Generated from v1.0.0-beta.5

发布于查看详情
页
条 / 页