FIT2CLOUD

重要说明

本版本仍属于 QSL 2.x 数据模型版本,数据格式与 1.x 旧版本不兼容。升级前请先完整备份旧版本导出数据和 Halo 数据目录。

更新内容

  • 新增旧版本一键迁移能力,可在新版本安装后将旧模型中的收卡关联、线下换卡关联聚合到新数据模型。
  • 新增迁移预检与执行接口,并补充导入导出页面入口。
  • 迁移过程会清理旧版误写入卡片记录的本台卡片占位数据,以及旧版自动收卡临时卡片。
  • 补充迁移服务测试、接口鉴权测试、RBAC 权限与文档说明。

已验证

  • 已在本地 Halo 2.23.2 Docker 环境中完成 1.1.3 导入旧数据、升级 2.0.6、执行迁移的流程验证。
  • 已执行 ./gradlew.bat test 并通过。

Generated from v2.0.6

发布于查看详情

重要:破坏性更新

本版本为 QSL 2.0 数据模型重构版本,数据格式与 1.x 旧版本不兼容。升级前必须先备份旧版本导出数据;升级后需要使用转换脚本将旧导出包转换为 2.0 数据格式,再重新导入。不要直接把旧版本导出包导入到 2.0 环境。

升级前必须执行

  1. 在旧版本中完整导出并保存备份包。
  2. 建议另存一份原始备份,避免转换失败后无法回退。
  3. 使用仓库中的 tools/convert_legacy_export_to_qsl2.py 将旧导出包转换为 2.0 数据包。
  4. 在全新或已清理的数据环境中导入转换后的数据包。
  5. 导入后核对总览、统计报表、收卡记录、线下换卡记录和线上签收状态。

主要变化

  • 发卡记录、收卡事实、线下换卡活动卡拆分为独立模型,减少多业务场景共用同一字段导致的耦合。
  • 新增 ReceiveRecord,收卡编号以收卡记录为准,不再通过重复创建卡片来表达收卡事实。
  • 新增 OfflineExchangeCard,线下换卡卡片与地址管理解耦。
  • 线上换卡“送达确认”调整为“签收确认”,用于记录对方是否签收我方发出的卡片。
  • 统计报表口径重构:只统计正式 C{序号} 且呼号非空的卡片,并修正已发、待发、已收统计口径。
  • 审计查询按业务场景分 tab 展示,卡片记录和收卡记录分别查询。
  • 在线打印工具新增补打眼球卡片能力,并优化部分拉取队列状态提示。
  • 导入导出格式新增 receive-recordoffline-exchange-card 数据集。

验证

  • ./gradlew.bat test 通过。
  • python -m pytest tools/CardPrint/tests tools/test_convert_legacy_export_to_qsl2.py 通过,55 项测试通过。

兼容性说明

这是破坏性版本。旧版数据需要提前备份并转换后重新导入;旧版导出格式、旧版收卡字段聚合方式和旧版线下换卡记录组织方式不再作为 2.0 的直接导入格式。


Generated from v2.0.4

发布于查看详情

后台美化插件 v2.1.6

本版本主要修复后台插件页面、网关页面和设置页中的若干显示问题,提升不同主题下的视觉一致性。

更新内容

  • 修复图库页面在暗色主题下顶部分类工具栏出现白色背景的问题。
  • 修复部分第三方插件页面顶部工具栏背景色与当前主题不一致的问题。
  • 修复登录、注册等网关页面在部分情况下没有加载美化样式的问题。
  • 增加对主题自定义登录页、注册页结构的兼容支持。
  • 优化“启用网关页面美化”设置项说明。
  • 修复插件设置页下拉框点击后出现蓝色外框的问题。
  • 优化 FormKit 下拉选择框的聚焦样式,使其与当前后台主题更一致。
发布于查看详情

更新内容

  • 新增外部日历订阅管理,支持添加 Google Calendar 等工具导出的公开 iCal 地址,并可启用、停用、编辑、删除和手动刷新订阅缓存。
  • 前台公开页面、后台周历和编辑器日程卡片支持展示外部日历事项。
  • 新增公开 iCal 订阅地址 /schedule-calendar.ics,用于导出本地事项,并明确不包含外部日历订阅数据。
  • 本地事项支持启用和停用状态,备份恢复会保留并同步该状态。
  • 插件设置与备份恢复流程优化,支持统计本地事项和外部日历订阅的新增、更新、删除数量。
  • 优化公开链接生成,前台页面和 iCal 订阅链接使用 Halo 外部访问地址。
  • 优化外部日历订阅缓存加载与手动刷新,减少每次访问时的远端订阅请求开销。
  • 清理临时诊断接口、无效样式和过期内部配置,补齐公开 API 权限声明。

Generate from v3.0.0

发布于查看详情

What's Changed

新功能

  • 支持全屏布局
  • 新增代码块文本颜色变量
  • 新增 link 样式变量

样式

  • 优化移动端导航栏样式 in #10
  • 增大默认行高
  • 移除子菜单的下划线

SEO

  • 修复主页文章标题与站点标题重复使用 h1 的问题

Full Changelog: 2.2.1...2.3.0


Generated from 2.3.0

发布于查看详情

详情请参阅更新日志在 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.

发布于查看详情

新特性

  • 重构 Console UI/UX,全面优化管理界面体验 by @ruibaby in #120
  • 添加公开 API,支持通过 API 查询链接和分组 by @chengzhongxue in #119

功能优化

  • 迁移至 Halo 2.22 索引和查询 API by @ruibaby in #118
  • 懒加载 /links 页面变量并添加分组过滤支持 by @ruibaby in f5a99b7

问题修复

  • 修复 roleTemplate 中 RBAC 子资源 URL 配置错误 by @ruibaby in 304ab4e
  • 修复匿名角色 RBAC 子资源名称配置 by @ruibaby in 13fcdd8
  • 为链接详情获取添加 SSRF 防护,无效 URL 返回 400 by @ruibaby in ee87768

Full Changelog: v1.7.2...v2.0.0-beta.1


Generated from v2.0.0-beta.1

发布于查看详情

更新内容

  • 新增“导入BH6SYX卡片广场数据”菜单,支持上传 .xls/.xlsx 表格并自动识别表头行。
  • 导入时按“状态”仅保留“对方已寄出,待我签收”和“待双方寄出”的记录,直接创建线上换卡场景卡片记录。
  • 导入清单支持批量设置默认卡片版本,也支持逐行选择卡片版本;导入结果围绕本站卡片编号展示。
  • “交换ID”和“对方备注”不写入数据;“对方备注”仅在导入清单预览显示,后续流程统一围绕卡片记录编号处理。
  • 同步补充后端 API、RBAC 权限模板、结构化项目文档与导入校验测试。
  • 修复 GitHub Actions 中 Gradle Wrapper 执行权限,确保 release 后 CD 可自动构建插件包。
  • 插件版本递增到 1.1.3。

安装包

  • plugin-qsl-management-1.1.3.jar(由 GitHub Actions 在本 release 发布后自动构建并上传)

Generate from v1.1.3

发布于查看详情

🎉 简介

很高兴宣布 plugin-bark v1.0.0 正式发布!这是一个专为 Halo 博客系统设计的通知推送插件,能够通过 Bark 应用将博客的重要事件实时推送到您的 iOS 设备。

✨ 核心功能

📬 实时通知推送

  • 新评论提醒:当博客收到新评论时,立即推送通知到 iOS 设备
  • 用户注册提醒:当有新用户注册时,及时通知管理员

🔗 深度链接支持

  • 评论通知可直接跳转到对应的文章/页面

⚙️ 灵活配置

  • 可选择接收的通知类型(新评论/新用户注册)
  • 支持自定义 Bark 服务器地址(可自建以保护隐私)

Generate from v1.0.0

发布于查看详情

feat(widget): 添加会员签到小部件功能

  • 实现了浮动和内联两种显示模式的签到小部件
  • 添加了可拖拽定位的浮动窗口支持
  • 集成了签到状态查询和签到操作API
  • 实现了用户认证和权限检查功能
  • 添加了积分和余额奖励显示
  • 更新了依赖版本号到最新发布版
  • 修复了角色模板中的重复路径配置问题
发布于查看详情

更新内容

  • 新增 Photos 插件详情页适配:/photos/{name}。
  • 图库详情页采用 macOS Photos 风格窗口,支持邻近照片序列、滚轮缩放、拖拽平移、详情浮层和评论抽屉。
  • 优化 Photos PJAX 切换、桌面 Dock 可见性、标题栏控件统一性和移动端密度。
  • 完善 SEO/PJAX head 同步与官方 SEO 字段兼容。
  • 同步主题版本与构建资产到 0.9.30。

验证

  • pnpm run build-only
  • pnpm run verify:reload
  • SMOKE_BASE_URL=${HALO_BASE_URL:-http://localhost:8090} pnpm run smoke:playwright

Generated from v0.9.30

发布于查看详情

v2.2.19

发布时间:2026-05-13

本版本包含 v2.2.18 之后的所有提交,重点是插件适配闭环、Docsme 免费版支持、Photos/PJAX 修复、Douban 页面接入和验证脚本增强。

插件适配

  • 修复 PJAX 后 lightgallery 插件脚本重放问题,避免图片灯箱在页面切换后失效。
  • 适配 Photos 详情页 PJAX 访问与返回流程,补齐详情页布局和相邻图片探索体验。
  • 支持 Docsme 免费版 1.5.0,同时保留专业版 1.6.0 兼容说明。
  • 改进 Docsme 目录页脚本链路和 0 篇文档项目禁用态,避免无内容项目生成不可用入口。
  • 改进 Links 提交兼容性;当 link-submit 接口不可用时,友链申请弹窗切换到评论留言兜底。
  • 补充 Moments POST 媒体渲染契约,避免只支持 PHOTO/VIDEO/AUDIO
  • 新增 Douban 豆瓣记录页面适配,支持海报网格、类型筛选、题材筛选、分页、加载态、空态和错误态。
  • Douban 页面按 plugin-douban v1.2.5 公开 API 渲染,避免触发插件路由懒加载变量在空筛选参数下的 NPE。
  • 修复 Douban 题材接口返回字符串数组时筛选按钮文本为空的问题。
  • 补充 Douban 图片加载失败占位;真实封面代理仍通过 plugin-doubanisProxy / proxyHost 配置处理。

验证与文档

  • 更新 Photos、Docsme、Search Widget、Alist、Douban 等插件适配说明。
  • 记录当前浏览器验收结果,包括 Docsme、Search Widget、Shiki、Comment Widget、lightgallery、暗色切换和移动端基础布局。
  • 明确 Alist 存储当前标记为不可用,不作为 Moments 前端发布上传后端。
  • 明确 Search Widget 本地旧索引 404 属于搜索插件索引数据问题,不属于主题模板缺口。
  • 增强插件深度验证,覆盖 Docsme 目录脚本链路和 Douban 真实题材接口。
  • 更新插件适配方案,记录 Douban、Alist、Search Widget、Docsme、Moments 等当前兼容边界。

提交范围

  • 4152a1a fix: replay lightgallery plugin scripts after pjax
  • 588d69c feat: adapt photos detail for pjax
  • 7aadf44 docs: update photos and docsme guidance
  • 71c496b fix: adapt docsme free version support
  • 9ea5edf fix: improve docsme and link submit compatibility
  • 0d6a724 chore: document plugin verification gaps
  • e33cd17 docs: record plugin browser verification
  • 9a5d90b docs: mark alist storage unsupported
  • 6aa231c docs: record search widget verification
  • 0152911 feat: adapt douban page
  • f39adf9 test: strengthen plugin verification
  • ae82d30 chore: release v2.2.19
  • 3a2625c docs: expand v2.2.19 release notes
  • 8e680cb docs: remove release note file

验证

  • pnpm lint
  • pnpm build-only
  • pnpm verify:plugins
  • pnpm verify:plugins:deep

Generated from v2.2.19

发布于查看详情

📋 更新日志 (Changelog)

🆕 版本 2.2.1 (2026-05-13)

Tools工具箱插件-同步至微信公众号1.png
Tools工具箱插件-同步至微信公众号2.png
Tools工具箱插件-同步至微信公众号3.png

✨ 新增功能

微信公众号文章同步增强

功能 说明
📝 同步预览 同步前可预览渲染效果,确认内容无误
🔍 同步检查 自动检查内容完整性和格式规范
📊 同步记录 完整记录每次同步的状态和详情
⚠️ 错误处理 完善的错误提示和异常处理机制

内容渲染优化

功能 说明
🖼️ 图片处理 自动处理封面图和正文图片的上传与压缩
🎨 文章主题 支持自定义文章主题样式
✏️ Markdown 编辑器 内置 Markdown 编辑器,支持实时编辑
👤 预览用户 支持指定预览用户查看效果

用户体验优化

功能 说明
🔧 封面预检查 上传封面图前自动检查尺寸和格式
📱 草稿创建 支持在微信公众号创建草稿
📤 文章发布 支持将草稿发布为正式文章

📦 历史版本

🚀 版本 2.2.0 (2026-05-09)

📱 微信公众号同步

💡 一键将 Halo 博客内容同步到微信公众号,告别重复排版的烦恼

功能 说明
📝 文章同步 支持将博客文章直接同步到微信公众号草稿箱
👀 实时预览 同步前可预览文章在微信中的显示效果
🖼️ 封面选择 新增可视化封面图选择器,支持从媒体库挑选封面
✏️ 参数配置 可自定义标题、作者、摘要、封面、原文链接等信息
📊 同步记录 完整的同步历史记录查询和管理
⚠️ 封面预检 自动检测封面尺寸和格式,避免同步失败

使用场景: 写完博客后,无需手动复制粘贴到微信后台,直接在 Halo 中完成同步操作。


🖼️ 图片代理与随机图

💡 解决图片防盗链问题,提供丰富的随机图片源

功能 说明
🔄 图片代理 代理公网图片资源,绕过防盗链限制
🎲 随机图片 支持多种随机图片类型,丰富内容展示
🔍 类型检测 自动识别图片内容类型
🛡️ 安全防护 防止内网地址访问,保障安全
⏱️ 超时保护 请求超时和响应大小限制
🔁 重试机制 智能重试,提升稳定性

应用场景: 文章配图、头像占位、随机封面等。


💬 评论系统增强

🔔 微信通知功能

💡 评论有新动态?微信实时提醒你!

功能 说明
📲 模板消息 支持微信公众号模板消息通知
📬 订阅消息 支持微信订阅消息推送
👤 用户绑定 评论用户与微信账号绑定
🚫 自评过滤 智能检测自己评论,避免无效通知
⚙️ 灵活配置 可自定义模板 ID 和字段映射

工作流程:

用户评论 → 管理员审批 → 微信通知博主 → 及时互动

🪟 弹窗系统

📢 智能弹窗管理

💡 灵活的弹窗配置,提升用户互动体验

功能 说明
🎨 多样式模板 内置 5 种弹窗样式(默认、Cookie、铃铛、模态框、卡片)
🎯 智能匹配 支持通配符和路径参数匹配规则
💉 动态注入 自动注入脚本和样式
⚙️ 丰富配置 完整的弹窗配置选项

内置模板样式:

样式 适用场景
🔵 默认样式 通用通知
🍪 Cookie 样式 Cookie 同意提示
🔔 铃铛样式 消息提醒
📋 模态框样式 重要公告
🃏 卡片样式 活动推广

👥 会员中心

🎫 会员体系支持

💡 打造专属会员中心,提升用户粘性

功能 说明
🔐 登录状态识别 智能识别用户登录状态
⬆️ 升级引导 已登录用户显示升级会员入口
🏠 会员中心 完整的会员中心页面支持

🔧 系统优化

📦 依赖更新

项目 更新内容
🎨 Halo UI 升级到 2.24.0 版本
🧹 代码清理 移除无效文件,优化项目结构

📚 文档完善

文档 说明
📖 使用文档 添加插件使用指南
🔌 开发文档 添加开发对接文档

🎯 快速上手指南

微信公众号同步(v2.2.1 增强版)

  1. 进入文章编辑页面
  2. 点击「同步到微信」按钮
  3. 配置同步参数(标题、封面等)
  4. 同步前检查: 系统自动检查内容完整性和格式规范
  5. 预览渲染效果: 确认文章在微信中的显示效果
  6. 确认同步 → 系统记录同步状态

Markdown 编辑器使用

  1. 在文章编辑页面切换到 Markdown 模式
  2. 实时编辑 Markdown 内容
  3. 系统自动渲染为微信兼容格式
  4. 支持图片、代码块、表格等丰富格式

随机图片使用

![随机图片](/apis/image/random)

弹窗配置

  1. 进入插件设置页面
  2. 选择弹窗样式模板
  3. 配置显示规则和内容
  4. 保存并预览效果
发布于查看详情

中文

新增

  • 首页文章标题支持显示 置顶 标识。
  • 右侧 文章榜标签榜 标题补充 icon。
  • 首页分页模式支持更轻量的局部翻页体验,减少整页刷新带来的闪动。

优化

  • 首页文章列表调整为更符合论坛场景的展示逻辑:置顶文章优先展示,非置顶文章优先按最后回复时间排序。
  • 右侧 最新文章 保持按发布时间排序,不受回复排序影响。
  • 首页 分页模式无限瀑布流模式 的实现拆分,避免两套逻辑互相干扰。
  • 修复首页无限瀑布流在部分情况下只显示首屏文章、不继续加载的问题。
  • 修复首页分页、刷新、点击 Logo 返回首页时的首屏样式闪动问题。
  • 优化置顶标识与标题文字之间的间距,整体观感更紧凑。
  • 首页、分类页、标签页的文章卡片样式与交互细节进一步统一。

修复

  • 修复置顶文章在首页瀑布流/分页场景下可能失效的问题。
  • 修复测试回复后帖子不能正确提升到前列的问题。
  • 修复分页模式下翻页瞬间右侧侧边栏消失、主列放大、链接样式短暂异常的问题。
  • 修复 文章榜标签榜 icon 显示不稳定的问题。

English

Added

  • Added a Pinned badge before pinned post titles on the homepage.
  • Added icons to the Post Rank and Tag Rank sidebar section headers.
  • Added a lighter partial page transition for homepage pagination to reduce full-page flicker.

Improved

  • Refined homepage post ordering for a more forum-like experience: pinned posts are shown first, and non-pinned posts are prioritized by latest reply activity.
  • Kept the Latest Posts sidebar section sorted by publish time only.
  • Split homepage paged mode and infinite waterfall mode into separate implementations to avoid logic conflicts.
  • Fixed cases where infinite waterfall stopped after the first screen and failed to continue loading.
  • Reduced first-load, refresh, and homepage-return visual flicker on the homepage.
  • Tightened the spacing between the pinned badge and post title text.
  • Further unified post card behavior and styling across home, category, and tag views.

Fixed

  • Fixed pinned posts not being respected correctly in some homepage paged and waterfall scenarios.
  • Fixed replied posts not moving forward correctly after new comments in testing.
  • Fixed pagination flicker where the sidebar briefly disappeared, the main column stretched, and link styles temporarily fell back to browser defaults.
  • Fixed unstable icon display for Post Rank and Tag Rank.

Generated from v0.0.2

发布于查看详情

✨ 改进 / 优化

  • 响应式设计 - 为所有 UI 页面添加响应式布局适配
  • 分页组件替换 - 使用 VPagination 组件替换自定义分页逻辑(@AR-26710 in #14)

🐛 问题修复

  • 修复上传大文件时导致 OutOfMemoryError 的问题,通过前置 Content-Length检查防止大文件读入内存 (#17)
  • 修复 VPagination 集成问题并完善分页组件替换

❤️ 贡献者

感谢 @AR-26710 对本项目的贡献!

📋 完整更新日志


Generated from v0.3.3

发布于查看详情

更新内容

  • 修复构建依赖配置,将 Halo 平台依赖从失效的快照版本切换到正式版本,恢复持续集成环境下的依赖解析。
  • 修复 Gradle 9.4 与 pnpm 安装任务的兼容问题,避免前端依赖目录状态跟踪导致构建失败。

Generate from v2.8.0

发布于查看详情

当前版本对配置文件进行了优化处理,更新主题后请点击 主题 - 重载主题配置,使最新的主题配置生效。

新增特性

问题修复

功能优化

New Contributors

Full Changelog: https://github.com/LIlGG/halo-theme-sakura/compare/v2.4.3...v2.5.0

发布于查看详情

v2.2.18 更新说明

修复

  • 修复 PJAX 切换页面后 lightgallery.js 灯箱插件未重新初始化的问题。
  • 支持从任意页面进入引用 lightgallery 插件的页面后自动恢复灯箱绑定。
  • 修复 PJAX 下在线统计组件重复请求导致 429 Too Many Requests 的问题。

优化

  • 统一通过 PJAX 页面生命周期触发灯箱恢复逻辑。
  • 自动解析 lightgallery 插件注入脚本中的图片区域选择器,减少对固定页面的硬编码。
  • 更新静态构建产物版本引用到 2.2.18。

Generated from v2.2.18

发布于查看详情

v2.2.17 更新说明

感谢 @xiaocaiye5201314 提交 PR:#28,带来了默认主题跟随系统与 Windows 构建路径兼容相关改进。

新增

  • 默认主题支持“跟随系统”选项。
  • 主题切换支持浅色、深色、跟随系统三态循环。

修复

  • 修复 Windows 环境下路径分隔符导致部分页面 JS 构建异常的问题。
  • 修复跟随系统主题在部分浏览器中的监听兼容性问题。
  • 优化 PJAX 切页后主题状态保持逻辑。

优化

  • 优化导航栏主题按钮、移动端菜单、搜索入口和用户菜单的可访问性细节。
  • 保留并刷新 Halo 标准静态构建产物,确保主题资源完整输出。

Generated from v2.2.17

发布于查看详情

更新日志

新增

  • 分享二维码生成本地化:集成 ZXing,创建/更新卡片后生成 PNG,写入 spec.shareQrcodeBase64 / spec.shareQrcodeMimeType 并持久化;控制台列表与「查看二维码」通过管理端接口读取 Data URL不再依赖第三方二维码 HTTP 接口。
  • 链接类型落地页:优化样式

优化

  • 索引与回填ExtensionSchemeRegistryspec.cardKind / spec.visitedAt 等注册索引;启动时 WechatShareVisitCardKindBackfill 对历史无 cardKind 的访问记录按 SID 回填,保证筛选与展示一致。
  • 设置保存 UXPUT /settings 成功后 setTimeout + location.reload,使 Console 子应用与 experimentalIpLookupEnabled 等开关立即反映到 useVisitIpLookup 与列表请求。
  • 落地页工程化WechatSharePageRenderer 抽离 SharePageCopy / SharePageConstants / SharePageSvgSnippets;固定文案与微信脚本提示统一 HtmlEscapes / ObjectMapper 输出;StringBuilder 预设容量
  • 控制台:插件设置 移除「二维码上游接口」(扩展旧字段仅兼容,服务端不再读取)。

修复

  • 筛选一致性:历史访问 spec.cardKind 为空时,列表展示曾与索引/查询不一致导致非 link 类型筛选异常;回填 + 查询归一化后与 WechatShareCardKind.normalize 对齐。
  • 文件类型落地页fp-hint 补全 </p>,消除无效 HTML。
  • 二维码配置WechatShareSettingsService.normalizeSpec 不再写入默认第三方 qrcodeApiBase;移除 QrUpstreamGuard 及仅服务 HTTP 上游的遗留逻辑。
  • 微信 JSSDK 签名 URL 对齐外部访问地址;分享图补全绝对地址

发布于查看详情

更新日志

新增

  • 分享二维码生成本地化:集成 ZXing,创建/更新卡片后生成 PNG,写入 spec.shareQrcodeBase64 / spec.shareQrcodeMimeType 并持久化;控制台列表与「查看二维码」通过管理端接口读取 Data URL不再依赖第三方二维码 HTTP 接口。
  • 链接类型落地页:优化样式

优化

  • 索引与回填ExtensionSchemeRegistryspec.cardKind / spec.visitedAt 等注册索引;启动时 WechatShareVisitCardKindBackfill 对历史无 cardKind 的访问记录按 SID 回填,保证筛选与展示一致。
  • 设置保存 UXPUT /settings 成功后 setTimeout + location.reload,使 Console 子应用与 experimentalIpLookupEnabled 等开关立即反映到 useVisitIpLookup 与列表请求。
  • 落地页工程化WechatSharePageRenderer 抽离 SharePageCopy / SharePageConstants / SharePageSvgSnippets;固定文案与微信脚本提示统一 HtmlEscapes / ObjectMapper 输出;StringBuilder 预设容量
  • 控制台:插件设置 移除「二维码上游接口」(扩展旧字段仅兼容,服务端不再读取)。

修复

  • 筛选一致性:历史访问 spec.cardKind 为空时,列表展示曾与索引/查询不一致导致非 link 类型筛选异常;回填 + 查询归一化后与 WechatShareCardKind.normalize 对齐。
  • 文件类型落地页fp-hint 补全 </p>,消除无效 HTML。
  • 二维码配置WechatShareSettingsService.normalizeSpec 不再写入默认第三方 qrcodeApiBase;移除 QrUpstreamGuard 及仅服务 HTTP 上游的遗留逻辑。

发布于查看详情

新增

  • 添加 types 接口
    /apis/api.douban.moony.la/v1alpha1/doubanmovies/-/types
[
  {
    "doubanCount": 8,
    "key": "movie",
    "name": "电影"
  }
]
发布于查看详情

新增

  • 提供公共 API

分组 /apis/api.equipment.kunkunyu.com/v1alpha1/equipmentgroups

列表 /apis/api.equipment.kunkunyu.com/v1alpha1/equipments

发布于查看详情

新特性

  • 适配图库插件 2.0 版本,支持瀑布流布局和详情页面

功能优化

  • 头像中的登录状态按钮改为异步判断,防止页面缓存之后导致状态不正确
  • 适配链接、图库、瞬间的标题名称设置
发布于查看详情

新增

  • 数据看板:控制台新增「数据看板」页签,支持访问概览、近七日趋势、访问量排行与访问明细。
  • 实验性功能IP 归属查询:默认关闭可在插件设置中开启;查询结果写入访问记录扩展并持久化,访问明细列表与详情展示「IP / 归属」格式。

优化

  • 索引与回填ExtensionSchemeRegistryspec.cardKind / spec.visitedAt 等注册索引;启动时 WechatShareVisitCardKindBackfill 对历史无 cardKind 记录按 SID 回填空值,保证筛选与展示一致。
  • 设置保存 UXPUT /settings 成功后 setTimeout + location.reload,保证 Console 子应用与 experimentalIpLookupEnabled 等开关立即反映到 useVisitIpLookup 与列表请求。

修复

  • 筛选一致性:历史访问 spec.cardKind 为空时,列表展示曾从卡片反推类型,但索引/查询与持久化不一致导致「非 link 无数据」;回填 + 查询归一化后行为与 WechatShareCardKind.normalize 对齐。
发布于查看详情

详情请参阅更新日志在 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.

发布于查看详情

详情请参阅更新日志在 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.

发布于查看详情

详情请参阅更新日志在 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.

发布于查看详情

新特性

功能优化

  • 优化管理页面布局 by @ruibaby in #76
  • 使用 Halo 2.22 提供的新索引 API,提升性能和稳定性 by @ruibaby in #75

文档

新版本主题开发文档和 REST API 文档可查阅:https://github.com/halo-sigs/plugin-photos/tree/main/dev

Full Changelog: v1.6.1...v2.0.0


Generate from v2.0.0

发布于查看详情

详情请参阅更新日志在 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.

发布于查看详情

版本更新说明

优化

  • 前台链接类型页面样式优化;
  • 控制台插件配置样式优化。

修复

  • 控制台插件配置报错无法保存信息问题;
  • 控制台插件的卡片列表switch无法使用问题;
  • 控制台插件内新增卡片后在无刷新页面情况下无法继续新增卡片选择附件问题;
  • 前台无报错场景下出现警告卡片问题。
发布于查看详情

版本更新说明 🎉

功能特性

  • 多类型分享卡片:除「链接卡片」外,新增 图片 / 音频 / 视频 / 文件 卡片类型;各类型独立落地页版式(封面、介绍、媒体区、相关说明等),数据仍按 SID 存 Halo 扩展资源
  • 控制台编辑体验:新建/编辑时可选卡片类型;表单字段按类型联动;侧栏 实时预览 与访客落地页结构、样式对齐(含图片卡 in-* 相关说明等)
  • 分享策略:链接类分享仍指向 /go?sid= 直达跳转;图片/音频/视频/文件等二次分享仍回流 /share?sid=(与前台 hint 逻辑一致)
  • 分享卡片管理:列表、复制分享链接、二维码预览;插件配置(公众号 AppId / AppSecret、换票与 wx.config 签名、公开路径前缀、二维码上游接口等)延续并适配多类型

站点前台

  • 分享页…/share?sid=…):按卡片类型输出对应页面;微信内 JSSDK 注入,更新 朋友圈 / 会话 分享数据
  • 跳转页…/go?sid=…):302 跳转至卡片配置的落地 URL(http/https

改进与可靠性

  • 二维码拉取安全:对上游 URL 做主机与网络侧约束,不跟随 HTTP 重定向,降低误配被滥用风险
  • 微信换票可观测与熔断:换票失败结构化日志(不含密钥);连续失败短时熔断;解析微信 errcode 便于排查
  • HTML 文本转义:访客提示与落地页统一封装,降低 XSS 风险

环境要求

  • Halo ≥ 2.23.0
发布于查看详情

Navidrome Player for Halo v6.0.0

版本大更新,更新了如下功能:

新增“歌曲列表模式”:可选 滚动列表 或 翻页列表。
新增“列表显示歌曲数”:可在 Halo 后台配置,范围目前是 3-12。
压缩了歌曲行高和间距,让同样高度下能显示更多歌曲。
新增“播放信息布局”:可选歌名/歌手 分行 或 合并一行。合并模式下会把歌名和歌手放到同一行,节省上方播放区高度。
窄屏时会自动压缩图标大小、间距,必要时分成多行,避免按钮被挤没。
在侧边空间不足时,支持把展开面板放到播放器上方。
增加/完善“公网服务地址”和“容器/内网服务地址”的双模式。只填内网地址时,音频和封面走 Halo 代理转发。
支持 navidrome:4533 这类地址自动补成 http://navidrome:4533。
新增通过键盘方向键控制播放进度功能。按下 ← (左方向键) 或 → (右方向键) 可将播放进度后退或前进 5 秒。如果同时按住 Shift 键,调整幅度将扩大至 15 秒。


Generated from v6.0.0

发布于查看详情

✨ 新功能

群聊 @提及功能

在群聊和频道中新增完整的 @提及功能,支持 @指定成员和 @全体成员。

@某人

  • 在群聊/频道输入框中输入 @ 即可弹出成员选择器
  • 支持按用户名、昵称、群昵称模糊搜索
  • 支持键盘上下键选择、回车确认、Esc 关闭
  • @用户名 作为整体 Token 显示(蓝色背景),退格键整体删除
  • 被 @的用户在消息中看到高亮显示

@全体成员

  • 群主和管理员可在成员选择器中选择"全体成员"
  • 管理员每日 @全体成员 次数有配额限制(默认 10 次/天,可在插件设置中调整)
  • 群主无次数限制
  • 支持群组级别禁止 @全体成员(NO_AT_ALL 限制)

消息通知

  • 被 @提及时,消息气泡有蓝色边框高亮
  • 会话列表显示 [有人@我][@全体成员] 标签
  • 进入聊天时自动滚动到最近一条 @自己的消息
  • 免打扰模式下,被 @提及的消息仍然正常推送

后台配置

  • 新增「@提及功能配置」设置组
  • 可配置管理员每日 @全体成员 次数限制
  • 可配置 @全体成员 触发关键词(默认"全体成员")
  • 配额每日零点(UTC+8)自动重置

🔧 优化

  • 优化群组消息分发流程,@提及通知异步发送,不阻塞消息分发
  • 免打扰模式下消息仍通过 WebSocket 推送(保持实时性),前端控制通知显示
  • 新增 Mention API 端点,自动生成 TypeScript API 客户端

🐛 修复

  • 修复 MentionNotificationServiceImplChatWebSocketService 的循环依赖问题
  • 修复 MentionEndpoint.enrichMemberVO 中 Reactor map 返回 null 导致的 NPE
  • 修复 MentionInput 占位符与输入内容重叠的问题
  • 修复消息中 non-breaking space 导致的消息去重匹配失败(发送后显示两条)
发布于查看详情

首个版本发布 🎉

功能特性

  • 分享卡片管理(新增、编辑、删除;标题 / 摘要 / 封面 / 跳转链接,独立 SID 与扩展存储)
  • 控制台列表(复制分享链接、二维码预览)
  • 插件配置(公众号 AppId / AppSecretwx.config 所需换票与签名、公开路径前缀二维码生成服务 等)
  • 站点前台 分享页…/share?sid=…,微信内 JSSDK 注入,更新朋友圈 / 会话分享数据)
  • 站点前台 跳转页…/go?sid=…302 跳转到卡片配置的落地 URL)
  • 要求 Halo ≥ 2.23.0

Generate from v1.0.0

发布于查看详情

Full Changelog: v1.1.3...v1.1.4

feat: 概览页表格支持复制 metadataName

  • 分类详情表格新增 metadataName 列,文本可选中复制
  • 复制之后直接粘贴到插件设置页即可设置默认返回的句子

Generated from v1.1.4

发布于查看详情

新特性

功能优化

  • 优化管理页面布局 by @ruibaby in #76
  • 使用 Halo 2.22 提供的新索引 API,提升性能和稳定性 by @ruibaby in #75

Full Changelog: v1.6.1...v2.0.0-beta.1


Generated from v2.0.0-beta.1

发布于查看详情

Changed:

  • 阅读进度上报主通道从 HTTP POST 改为 WebSocket 消息,默认上报间隔改为 1 秒
  • 接口限流配置支持小数秒,最低可设置为 0.1 秒
  • 阅读进度计算改为优先基于文章正文容器,找不到正文时回退到整页滚动百分比
  • 阅读进度身份模型重构为服务端分配 token、全量广播列表,客户端本地按 token 排除自己
  • 将 WebSocket 下行消息机制改为每会话一个持续发送队列
  • 自定义阅读进度脚本改回定时 GET 拉取,并同步更新了 README 说明

Fixed:

  • 修复阅读进度同步中将自己的阅读进度错误渲染为其他读者的问题
  • 修复 WebSocket 成为主通道后,GET 轮询阅读进度无法排除自己的问题
  • 修复阅读进度已写入内存但 WebSocket 客户端收不到 progress 广播的问题
  • 修复高频并发下 WebSocket 消息投递可能失败或丢失的问题,并增加前端原始消息调试事件
发布于查看详情

Halorum v0.0.1

初始发布版本。

主要内容

  • 完成 Typecho_Theme_JJ 视觉风格到 Halo 主题的移植与重构。
  • 使用 Astro 构建 Halo 模板产物。
  • 支持论坛式首页、分页 / 无限加载、右侧信息栏和主题设置。
  • 适配文章页、评论区、用户中心入口和通知入口。
  • 优化打包脚本,排除本地开发目录,生成可直接上传到 Halo 后台的主题包。

安装

下载本 Release 中的 Halorum.zip,在 Halo 后台主题管理中上传并启用。


Generate from v0.0.1

发布于查看详情

Full Changelog: v1.1.1...v1.1.2

feat: 支持多分类默认配置和点赞缓存自动清理

  • 默认分类改为多行文本输入,支持多个分类 ID 作为默认筛选条件
  • 随机接口和 Finder 均支持多分类 in 查询
  • 新增点赞缓存定时清理任务,每 6 小时自动清除过期记录
  • 点赞冷却时间从设置中动态读取,不再硬编码

Generated from v1.1.2

发布于查看详情

详情请参阅更新日志在 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.

发布于查看详情

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

howiehz-higan-zh-hans.zip 为简体中文默认安装包,仅包含 .br
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-full-precompressed.zip is the English full precompressed package with .gz / .br / .zst.

发布于查看详情

v1.0.3 — 标题写得像自家馆子,备份写得像成年人抽屉

这一版主打三件事,用人话讲就是:

👉 前台终于知道自己在叫什么
👉 后台能打包带走全家档口数据(导出 / 覆盖导入,ZIP 里还带说明书那种)
👉 控制台界面顺手捋了捋


新增 / 强化

前台:标题三件套

后台 插件设置 → 基础设置 里,可以给前台配上:

  • 站点标题(浏览器标签 document.title 那一套)
  • 顶栏主标题
  • 顶栏副标题

👉 全家馆子顶栏不再默认「谜之占位符」,改成你家招牌也行、改成「今晚吃火锅」也行(只要你家掌柜同意)。

配置走 DishesSettings,前台模板与控制台表单对齐;细节实现详见仓库内对应改动。

后台数据备份(导出 / 覆盖导入)

控制台 插件设置 → 数据备份

  • 导出:ZIP,内含 manifest.json;可选是否带上点餐记录。
  • 导入覆盖式——会先清空当前 订单 + 菜品 + 分类,再按备份重建。
    👉 不是「增量合并」,是「整抽屉倒空再摆回去」,点导入前请默念三遍备份。

备份里的菜品图:只备份 image_url(路径或完整地址),不把图片文件塞进 ZIP
迁站或换域名时,记得附件还在、外链还能打开,否则导入成功也可能「看得见菜名、看不见菜脸」。


🛠 调整与修复(挑重点说)

备份这条链路,是真的跟 WebFlux 打过一架

Halo 2 这条线是响应式的,导入上传按 FilePart 等方式处理,避免 multipart 绑定翻车;业务异常也会尽量回到 ok: false 的 JSON,而不是糊你一屏 500。

清空数据时的「玄学索引滞后」

覆盖导入前要清空扩展数据;若列表索引还没反应过来,可能出现「菜删光了、分类还在那儿发呆」这类剧情。
这一版在清空逻辑里加了 等待索引跟上 + 必要时重建扩展索引 等处理,尽量做到 第一次点就靠谱,而不是「第一次失败、第二次换报错、第三次突然成功」的三幕剧。

(若你曾在导入时见过类似连续剧,恭喜你 —— 你现在看到的是导演剪辑修复版。)

控制台插件 UI(Vue)

  • 例如:菜品列表缩略图统一尺寸、裁切更顺眼。

⚠️ 备份提醒(很重要)

👉 覆盖式导入会删除现有订单、菜品、分类,执行前请确认你真的不需要当前数据,或已经另外导出备份。
👉 ZIP 不含图片文件,只有路径;跨环境恢复请自备图片可达性(站内附件或外链)。
👉 若导入仍异常,优先带 响应 JSON / Halo 日志片段 开 issue,比截图玄学好排查得多。


致谢

感谢「为什么导入要三次才成功」「清空一半算清空吗」这类灵魂拷问 —— 它们直接变成了这一版的清空与索引逻辑。

继续欢迎吐槽;若有问题,尽量附上 Network 响应体 + 相关日志,治愈概率会指数上升。


Full Changelog: v1.0.2...v1.0.3

(具体文件级差异以 Git 对比为准,此处为面向人类的 Release 叙事版。)

发布于查看详情

Changed:

  • 阅读进度同步由轮询改为 WebSocket 实时推送,延迟降低至 <50ms
  • WebSocket 广播消息格式升级为 JSON,统一在线人数与进度推送协议
  • 加强客户端 IP 提取逻辑,防止伪造 X-Forwarded-For 绕过限流
  • 前端移除进度拉取的 setInterval,改为事件驱动

Fixed:

  • 修复 WebSocket 注册时的 TOCTOU 竞态条件(session 会话与 URI 绑定)
  • 修复 IP 伪造漏洞,限流器不再无条件信任代理头
  • 修复阅读进度内存无界增长风险
  • 修复 WebSocket 会话关闭后 sessionUriMap 未清理的内存泄漏

Added:

  • 新增阅读进度 WebSocket 广播机制,同页面其他用户实时看到进度标记
  • 新增服务端方法 broadcastReadingProgressupdateReadingProgressAndBroadcast
  • 新增前端 WebSocket JSON 消息处理器 installWsMessageHandler
  • 新增 WebSocket 消息类型 progresscount 的结构化定义
发布于查看详情

🚀 重大更新

完全重构为 Astro 框架theme-astro-starter - 主题从传统 Halo 模板迁移至 Astro 6 + Svelte 5 + Tailwind CSS 4 技术栈,带来更好的开发体验和性能。

✨ 新增功能

  • Admonition 支持 - 文章内支持提示框(note、tip、warning、danger 等)
> [!NOTE]
> 这是一个提示框

> [!TIP]
> 这是一个技巧提示

> [!IMPORTANT]
> 这是重要信息

> [!WARNING]
> 这是警告信息

> [!CAUTION]
> 这是注意信息
  • 侧边栏小部件配置 - 支持自定义 HTML 小部件
  • 社交媒体图标自定义 - 侧边栏个人资料支持自定义图标
  • 网站备案信息 - 新增 ICP 备案号配置
  • 适配瞬间模板/moments
  • 适配图库模板/photos
  • 新增文章目录

🐛 问题修复

  • 修复暗亮色切换闪烁问题
  • 修复 swup 导致的文章文章阅读数不增加问题
  • 修复功能下拉菜单卡死问题

🔧 技术改进

  • 适配 Tailwind CSS 4 语法
  • 模块结构重构,代码更清晰
  • 样式文件拆分优化
  • 代码格式化统一

⚠️ 破坏性变更

  • 配置方式有较大变化,建议重新配置主题设置

此次重构大量代码由 Codex gpt5.5 编写。有问题可以直接 issue

v2.0.2

  • 移除旧配置文件默认数据
  • 更新版本号

Generated from v2.0.2

发布于查看详情

🚀 重大更新

完全重构为 Astro 框架theme-astro-starter - 主题从传统 Halo 模板迁移至 Astro 6 + Svelte 5 + Tailwind CSS 4 技术栈,带来更好的开发体验和性能。

✨ 新增功能

  • Admonition 支持 - 文章内支持提示框(note、tip、warning、danger 等)
> [!NOTE]
> 这是一个提示框

> [!TIP]
> 这是一个技巧提示

> [!IMPORTANT]
> 这是重要信息

> [!WARNING]
> 这是警告信息

> [!CAUTION]
> 这是注意信息
  • 侧边栏小部件配置 - 支持自定义 HTML 小部件
  • 社交媒体图标自定义 - 侧边栏个人资料支持自定义图标
  • 网站备案信息 - 新增 ICP 备案号配置
  • 适配瞬间模板/moments
  • 适配图库模板/photos
  • 新增文章目录

🐛 问题修复

  • 修复暗亮色切换闪烁问题
  • 修复 swup 导致的文章文章阅读数不增加问题
  • 修复功能下拉菜单卡死问题

🔧 技术改进

  • 适配 Tailwind CSS 4 语法
  • 模块结构重构,代码更清晰
  • 样式文件拆分优化
  • 代码格式化统一

⚠️ 破坏性变更

  • 配置方式有较大变化,建议重新配置主题设置

此次重构大量代码由 Codex gpt5.5 编写。有问题可以直接 issue

v2.0.1

  • 移除旧配置文件默认数据

Generated from v2.0.1

发布于查看详情

🚀 重大更新

完全重构为 Astro 框架theme-astro-starter - 主题从传统 Halo 模板迁移至 Astro 6 + Svelte 5 + Tailwind CSS 4 技术栈,带来更好的开发体验和性能。

✨ 新增功能

  • Admonition 支持 - 文章内支持提示框(note、tip、warning、danger 等)
> [!NOTE]
> 这是一个提示框

> [!TIP]
> 这是一个技巧提示

> [!IMPORTANT]
> 这是重要信息

> [!WARNING]
> 这是警告信息

> [!CAUTION]
> 这是注意信息
  • 侧边栏小部件配置 - 支持自定义 HTML 小部件
  • 社交媒体图标自定义 - 侧边栏个人资料支持自定义图标
  • 网站备案信息 - 新增 ICP 备案号配置
  • 适配瞬间模板/moments
  • 适配图库模板/photos
  • 新增文章目录

🐛 问题修复

  • 修复暗亮色切换闪烁问题
  • 修复 swup 导致的文章文章阅读数不增加问题
  • 修复功能下拉菜单卡死问题

🔧 技术改进

  • 适配 Tailwind CSS 4 语法
  • 模块结构重构,代码更清晰
  • 样式文件拆分优化
  • 代码格式化统一

⚠️ 破坏性变更

  • 配置方式有较大变化,建议重新配置主题设置

此次重构大量代码由 Codex gpt5.5 编写。有问题可以直接 issue


Generated from v2.0.0

发布于查看详情

✨ 新功能

  • 适配装备插件:新增 equipments.html 模板,支持装备分组导航与卡片展示;
  • 新增顶部菜单位置配置:支持 左侧 / 居中 / 右侧 三种布局,可在主题设置中自由切换;
  • 新增主题模式配置:支持 跟随系统 / 亮色 / 暗色 三种模式,并提供完整的暗色模式适配,暗色下文章内联颜色会自动优化为可读配色;

🛠 优化

  • 优化手机端菜单抽屉的打开/关闭效果,动画更顺滑,滚动隔离更彻底(抽屉打开时仅抽屉内部可滚动);
发布于查看详情

功能优化

  • 支持在超链接卡片中使用相对路径的站内链接,系统会自动将其解析为绝对 URL 后获取页面元数据。 by @ruibaby in #39

问题修复

  • 修复 WebClient 请求超时异常被错误转换为 500 服务器错误的问题,超时现在会返回 400 并记录为 WARN 级别。同时优化了前端卡片组件,当接口请求失败时会显示原链接而不是错误信息。 by @ruibaby in #38

Full Changelog: v1.8.1...v1.9.0


Generated from v1.9.0

发布于查看详情

轻言(Hitokoto Hub)是一款 Halo 2.x 插件,为你的网站注入“一句话”的灵动与温度。支持创建、管理海量句子,按分类归档,并提供随机获取、关键词搜索、点赞互动等丰富的开放接口。

✨ 功能特性

  • 句子管理:创建、编辑、删除句子,支持 JSON/Excel 批量导入
  • 分类归档:自定义分类,侧边栏导航,实时统计各分类句子数量
  • 随机获取:基于索引分页优化,6000 条数据秒级响应
  • 模糊搜索:支持关键词搜索句子内容
  • 点赞互动:开放点赞/取消点赞接口,支持 IP 冷却机制
  • 主题集成:提供 Finder API,可在 Halo 主题模板中直接调用
  • 数据看板:后台概览页面,展示句子总数、分类分布、发布状态统计
  • 权限控制:基于 Halo RBAC 角色模板,公开 API 和后台管理权限分离

📥 安装方式

  1. 下载 hitokoto-hub-1.0.0.jar
  2. 在 Halo 后台“插件”管理中上传并启用
  3. 左侧菜单会出现“轻言”入口

🔗 公开 API

接口 方法 说明
/sentence/random GET 随机获取句子,支持 categoryNamelimit 参数
/sentence/like GET 点赞/取消点赞,参数 actionname
/category/list GET 获取分类列表

注意:本版本起,公开 API 前缀从 api.hitokotohub.puresky.top 更新为 public.api.hitokotohub.puresky.top,请参考文档更新调用地址。

📖 文档

https://www.puresky.top/docs

🖼️ 截图

轻言数据概览 轻言数据管理
轻言数据批量导入 轻言单条数据创建
轻言默认模板

🙏 致谢

  • Halo — 强大易用的开源建站工具

Generate from v1.0.0

发布于查看详情

问题修复

  • 修复 AI 总结可能导致无法删除文章的问题
  • 修复 AiHubMix 的模型列表
  • 修复 RAG 关闭后仍调用向量模型生成索引的问题
发布于查看详情

功能优化

  • 搜索流量支持识别 Google 广告来源
  • 文章页 Canonical 标签支持参数形式(?p=)的文章路由
  • 优化搜索流量、爬虫记录的数据稳定性
发布于查看详情

更新内容

  • 完善文章详情页 Markdown 内容样式,支持标题、列表、引用、代码块、表格等常见语法展示。
  • 优化图片注释样式,使用小号灰色文字并贴近图片下方。
  • 更新 README 展示图,使用新的 demo.png 作为主题预览。

完整变更v1.0.1...v1.0.2

Full Changelog: v1.0.1...v1.0.2


Generated from v1.0.2

发布于查看详情

Navidrome Player for Halo v4.7.3

为 Halo 博客集成 Navidrome(Subsonic API)前台音乐播放器,支持悬浮播放、歌单切换与前台连续听歌。

功能特性

支持 Navidrome / Subsonic API 歌单拉取
支持悬浮气泡播放器与展开面板
支持多个歌单切换
支持播放进度、音量、位置等前端持久化
支持 off / plugin / theme-compatible 三种 PJAX 策略
支持前台匿名访问播放列表接口

安装方式

下载本 Release 附件中的插件 JAR
在 Halo 后台进入“插件”
上传并安装该 JAR
在插件设置中填写 Navidrome 服务器地址、账号、密码和歌单信息

兼容性

Halo >= 2.24.0
Java target 21

仓库

Repo: https://github.com/queenyn/halo-plugin-navidrome-player
Issues: https://github.com/queenyn/halo-plugin-navidrome-player/issues

发布于查看详情
条 / 页