作者:Akagi_Zen
适用于 Halo 2.25.0 及以上版本。插件为 Halo 默认富文本编辑器增加一个 GitHub Contributions 风格的全站创作活跃日历块。
- 统计文章和独立页面的有效新增字数、修改字数、首次发布和更新发布
- 汇总所有后台作者的每日活跃度,分数越高,日期方块颜色越深
- 鼠标悬停或键盘聚焦日期时,显示当天总分、作者分数和创作明细
- 同一作者同一天的多篇内容自动合并统计
- 支持当前年份和往年切换,可配置显示 1–10 年
- 支持自定义组件标题、主题颜色和作者明细开关
- 支持手机端横向滑动并自动适配深色主题
- 可从编辑器顶部绿色“+”工具箱直接插入
- 支持
/活跃日历、/创作活跃快捷插入 - 插件设置页可调整评分权重和四档颜色阈值
- 前台数据由服务端安全嵌入,不要求访客登录或请求受保护接口
每日活跃分 =
新增有效字数 × 1
+ 修改有效字数 × 0.5
+ 首次发布内容 × 800
+ 更新已发布内容 × 200
自动保存不会被当成独立活跃行为。插件比较相邻内容快照,只累计真实发生变化的字数。
默认颜色等级:
| 活跃分 | 颜色等级 |
|---|---|
| 0 | 灰色 |
| 1–199 | 浅绿色 |
| 200–599 | 较浅绿色 |
| 600–1499 | 中绿色 |
| 1500 及以上 | 深绿色 |
- 在 Halo 后台进入“插件”,上传构建产生的 JAR 并启用。
- 使用 Halo 默认富文本编辑器打开文章或独立页面。
- 点击编辑器顶部绿色“+”,选择“全站创作活跃日历”;也可以在空白行输入
/后搜索“活跃日历”。 - 插入后设置标题、主题颜色、显示年份数量和作者明细开关。
- 保存或发布文章。
插件启用时会读取现有内容作为历史统计基线。安装后的编辑和发布活动会持续记录;安装前无法从 Halo 数据中恢复的详细编辑过程不会倒推补算。
环境要求:JDK 21、Node.js 24+、pnpm 10。项目已包含 Gradle Wrapper,正常构建不需要单独安装 Gradle。
./gradlew buildWindows:
.\gradlew.bat build构建完成后,安装包位于:
build/libs/plugin-activity-calendar-*.jar
./gradlew haloServer该命令会启动 Halo 开发环境并加载插件。详细要求以 Halo 官方插件开发文档为准。
插件只统计 Halo 站点内的文章、独立页面、内容快照和作者信息,不加载第三方前端资源。公开页面使用服务端嵌入的只读汇总数据,管理端诊断接口仍受 Halo 权限系统保护。
MIT