feat: 初始化 Halo 暗色模式插件

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-08-06 21:03:00 +08:00
commit edbf78f236
115 changed files with 14745 additions and 0 deletions
@@ -0,0 +1,29 @@
# Plugin API Changelog
Read the official changelog before using version-sensitive plugin APIs,
upgrading Halo dependencies, or raising `spec.requires`.
Official docs:
- Plugin API changelog: https://raw.githubusercontent.com/halo-dev/docs/refs/heads/main/docs/developer-guide/plugin/api-changelog.md
- Form schema: https://raw.githubusercontent.com/halo-dev/docs/refs/heads/main/docs/developer-guide/form-schema.md
High-impact changes:
| Halo version | Change | Skill reference |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- |
| 2.25.0 | `select` options support `icon` and `description`; remote selects support `requestOption.iconField` and `descriptionField` | [ui-forms.md](ui-forms.md) |
| 2.25.0 | Plugin UI can register custom FormKit inputs through `definePlugin({ formkit: { inputs } })` | [ui-entry.md](ui-entry.md), [ui-forms.md](ui-forms.md) |
| 2.25.0 | `secret` FormKit input supports `descriptionPreset` | [ui-forms.md](ui-forms.md) |
| 2.23.0 | Spring Boot 4 upgrade can break plugins using Spring APIs; upgrade the Halo platform dependency and `spec.requires` together | [devtools.md](devtools.md), [plugin-manifest.md](plugin-manifest.md) |
| 2.23.0 | `iconify` supports optional `sizing` config | [ui-forms.md](ui-forms.md) |
| 2.22.8 | `toggle` FormKit input added | [ui-forms.md](ui-forms.md) |
| 2.22.5 | SpringDoc update can break OpenAPI documentation generation; upgrade the Halo platform dependency and `spec.requires` together | [server-api.md](server-api.md), [devtools.md](devtools.md) |
| 2.22.2 | `switch` FormKit input added | [ui-forms.md](ui-forms.md) |
| 2.22.0 | Custom model index/query APIs changed: use `IndexSpecs.single/multi`, `Queries`, and newer `ExtensionClient` query helpers | [server-extension.md](server-extension.md) |
| 2.22.0 | `@halo-dev/console-shared` was renamed to `@halo-dev/ui-shared` | [ui-shared.md](ui-shared.md) |
| 2.22.0 | Attachment selector extension results need `mediaType` on `AttachmentLike` | [ui-extension-points.md](ui-extension-points.md) |
When a feature requires a newer Halo runtime, update dependency versions and
`plugin.yaml` `spec.requires` together. Do not raise `spec.requires` for an
optional UI enhancement unless the plugin cannot run without it.