「拾光·暗室」主题开源
「拾光·暗室」是本站正在使用的 Halo 主题,今天正式开源。
一句话说它是什么:一座会呼吸的暗室 —— 粒子星屑、随机极光、星座导航,把博客做成一个值得探索的光之档案馆。

版本 0.8.2 · MIT 许可 · 作者 LinShu
环境要求:Halo >= 2.26.0
问题反馈:nostos@agent.qq.com
特性总览
1. 光球开门(Light Orb)
首页进场是一枚呼吸的光球,四周环绕虚线轨道与呼吸光环。轻触光球,暗室之门开启,页面内容随之显影。光球色相每次加载从七种色相中随机抽取,每一扇门颜色都不相同。

2. 暗室视觉(Dark Room Visual)
三层暗底:深空底色 + 大面积强调色 radial 光晕 + 噪点纹理
粒子星屑:全屏 canvas 星点随视差缓慢漂浮
光标光晕:光标位置跟随一圈柔和光晕(
--bx/--by变量驱动)强调色随机轮换:每次加载从 7 种色相随机取一,全站按钮、链接、高亮统一跟随
所有颜色均走 CSS 变量(
--accent/--bg/--surface等),不写死任何色值

3. 内容三匣子(Shards)
首页右侧悬浮三只倾斜的「匣子」,分别通往文章、瞬间、图库,带滚动视差(data-speed 差速漂移)。匣子对应板块可通过后台开关显隐,未启用对应插件时匣子自动消失。

4. 首页文章区(Home Posts)
满宽自适应(不做 max-width 收窄,随视口等比缩放),支持 1 / 2 / 4 列布局(后台可配)。文章卡片带封面、分类徽章、摘要与日期,滚动进入视口时逐张显影(reveal 动画)。另支持按分类 slug 配置的「分类专栏」区块,数据全部实时取自 Finder。

5. 星座导航(Constellation Dock)
右下角常驻一枚呼吸光点(指南针),点开后后台菜单的每个导航项化作一枚星点,彼此用星线连成星座。每个星点带独立色相(菜单项 data-c 属性决定),悬停点亮连线。星图展开时同时出现音效开关与暗室搜索入口。

星图特写(六枚星点连成星座、悬停点亮):

6. 暗室搜索(Darkroom Search)
自建搜索弹窗(不依赖插件前台样式),打开后焦点自动落入输入框,回车即搜、Esc 关闭,支持关键词高亮与命中统计。面向用户的文案走 i18n,经 data-* 属性注入 JS。

7. 站点看板(Site Dashboard)
后台可开关的站点统计弹窗:文章 / 分类 / 标签 / 图库 / 瞬间数量、分类与标签一览、板块快捷入口,全部数据实时取自 Finder,无任何写死数字。

8. 归档时间轴(Archives Timeline)
按年月排开的纵向时间轴,带分类筛选与月份筛选(筛选条 chip 化),每条记录显影入场。

9. 分类与标签(Categories & Tags)
分类页与标签页沿用暗室语言:筛选 chip、卡片 hover 光晕、逐项显影。


10. 文章页与目录(Post & TOC)
文章页右侧悬浮 TOC 目录(后台可开关),自动按 h2-h4 分级、滚动高亮当前小节、点击平滑跳转;支持 Shiki 代码高亮与评论组件。

11. 图库(Photos)
瀑布流相册,带相册分组筛选,点开任意一张进入灯箱放大(配合 lightgallery.js)。未上传图片前显示暗室空态。

12. 瞬间(Moments)
动态流「瞬间」:时间轴卡片、媒体九宫格、点开看完整内容并可直接评论。

13. 友链(Links)
分组友链卡片墙(logo、名称、描述、徽章),数据为空时显示「暗室空位」空态。

14. 404 光走丢了(Error Page)
「这束光走丢了,飘进了暗室之外」,配合散落的碎片与碎光字样,一键回暗室。

15. 移动端适配(Mobile)
断点式响应布局:光球、匣子、文章区、看板在窄屏全部重排,无横向滚动。


16. 全动态不写死(Fully Dynamic)
主题的硬性设计准则:
文案:全部走 i18n(
zh_CN/default双语言文件)或后台主题设置,模板零裸文案数据:一律从 Finder(
postFinder/categoryFinder/tagFinder/menuFinder/pluginFinder等)实时取,无静态列表链接与资源:
@{}路由表达式 +#theme.assets(),不写死绝对路径颜色:全部 CSS 变量,强调色随机轮换、全站统一跟随
环境要求
Halo >= 2.26.0(主题实现了 2.26 引入的「页面布局契约」
templates/layout.html,插件前台页面也能复用暗室外壳)
安装
方式一:Halo 后台 → 主题 → 安装 → 上传 zip。必须保证 theme.yaml 位于 zip 根目录,否则 Halo 无法识别主题。
方式二:将本仓库 clone 到 Halo 工作目录的 themes/shiguang-darkroom/,然后在后台启用。
注意(从 Gitee 下载 ZIP 时):Gitee 的「下载 ZIP」会把内容包进一层
theme-shiguang-darkroom-master/目录,theme.yaml不在根目录,不能直接上传。需先解压,进入该目录后对其内部内容重新打包:
>
> unzip theme-shiguang-darkroom-master.zip</blockquote> <blockquote>cd theme-shiguang-darkroom-master</blockquote> <blockquote>zip -r ../shiguang-darkroom-install.zip . -x "*.DS_Store"</blockquote> <blockquote>
> 或直接使用 Release 附件里的安装包,下载即用(根目录即
theme.yaml):
https://gitee.com/lin-0227/theme-shiguang-darkroom/releases/download/v0.8.1/shiguang-darkroom-0.8.1.zip
推荐插件
主题已声明推荐应用,启用后对应板块才会显示:
链接管理(app-hfbQg)
图库管理(app-BmQJW)
瞬间(app-SnwWD)
Shiki 代码高亮(app-kzloktzn)
lightgallery.js 灯箱(app-OoggD)
主题设置
后台 → 主题 → 设置,共三组:
基础设置:首页主 / 副标题、页脚版权与署名、建站日期、各板块显隐开关、精选条数、文章目录(TOC)、站点看板
内容文案:首页上部标识、各板块标题 / 导语 / 按钮文字、留白标语
首页文章区:列数(1 / 2 / 4)、展示的分类 slug、每类展示篇数
所有文案均可配置;页脚版权与页脚署名支持 HTML 链接等任意内容。
许可
MIT
主题的持续更新与开发记录发布在本专栏。遇到问题、有建议,或者想让我把某个地方改成你喜欢的样子,都欢迎写信给我:nostos@agent.qq.com
评论