Files
Serendipity edbf78f236 feat: 初始化 Halo 暗色模式插件
- Halo Plugin 后端(Java/Gradle),含 DarkModePlugin 主类和测试
- Vue 3 + TypeScript 前端 UI,包含主题切换组件和设置页面
- 暗色模式 CSS 变量和覆盖样式(布局/编辑器/表单/滚动条等)
- 设计文档和调查文档
- Halo 插件/主题开发 Agent Skills

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-06 21:03:00 +08:00

3.4 KiB

Theme API Changelog

Read the official changelog before using version-sensitive theme APIs or raising spec.requires.

Official docs:

High-impact changes:

Halo version Change Skill reference
2.25.0 select options support icon and description; remote selects support requestOption.iconField and descriptionField structure-and-config.md
2.25.0 Theme root may include screenshot.png, screenshot.jpeg, screenshot.jpg, or screenshot.webp; Halo exposes the first readable image as Theme.status.screenshot structure-and-config.md
2.25.0 #halo.matchVersion(constraint) supports conditional rendering for newer Halo-only fragments global-variables.md
2.25.0 postFinder.cursorByCategory(postName) returns previous/next posts in the current post's primary category finder-apis.md
2.24.1 postFinder.random(maxSize) returns random published posts finder-apis.md
2.23.0 iconify supports optional sizing config structure-and-config.md
2.22.8 toggle FormKit input added structure-and-config.md
2.22.2 switch FormKit input added structure-and-config.md
2.22.0 array FormKit input added and preferred over repeater; attachment was expanded and the older picker is attachmentInput structure-and-config.md
2.22.0 postFinder.cursor(postName) return shape changed: no current; previous/next are ListedPostVo finder-apis.md

Prefer #halo.matchVersion() for small optional fragments that require a newer Halo version. Raise spec.requires when the whole theme depends on the newer capability.