本文所有命令均在 Git Bash(hexo 目录右键 → Git Bash Here)中执行,CMD/PowerShell 语法不同,请勿混用

hexo Butterfly主题 5.7 相册系统备份相册系统文件

一、5 个文件是做什么的

文件名 角色 说明 必选
server.js 主服务入口 相册服务:博客 + 相册 + 照片一体,含密码锁定 ✅ 必需
_album_gen.js 页面生成器 扫描媒体目录 → 生成 source/相册/ 静态页 + 复制封面 ✅ 必需
_gen_thumbs.js 缩略图生成器 大图生成 1600px 压缩图到 G:\_thumbs\,加快加载 🔶 可选
_protected.json 密码配置 全局密码 + 单个相册密码,格式见下文”修改密码” 按需
_covers.json 封面配置 { "相册名": "封面文件名.jpg" },视频封面写 "video:视频名.mp4" 按需

二、重装博客后怎么用

步骤 操作 执行内容 备注
① 放置文件 5 个文件复制到新 hexo 博客根目录 与 source、_config.yml 同级
② 安装依赖 npm install sharp 缩略图用,不用可跳过
③ 菜单配置 _config.butterfly.yml 的 menu 加一行:相册: /相册/ || fas fa-images || 是主题分隔符,直接粘贴
④ 生成相册页 node _album_gen.js 扫描媒体目录生成页面
⑤ 构建 hexo clean && hexo g
⑥ 启动 node server.js 4000 端口可自定义
⑦ 访问 http://localhost:4000/ → 点「相册」 → 输入密码 先全局密码,进相册再输相册密码

三、媒体目录

项目 内容
默认路径 G:\(G 盘根目录,每个文件夹 = 一个相册)
换路径生成 MEDIA_ROOT='D:\照片' node _album_gen.js
换路径启动 MEDIA_ROOT='D:\照片' node server.js 4000

四、主题要求

项目 要求
主题 必须用 Butterfly 主题(或支持 {% gallery %} / {% galleryGroup %} 标签的主题)

五、修改密码

配置项 说明
"__全局密码__" 整个相册入口的密码
"相册名" 单个相册的密码(可多个)
修改位置 编辑 _protected.json

六、密码输错锁定

配置项 默认值 说明
MAX_ATTEMPTS 5 连续输错次数
LOCK_HOURS 72 锁定小时数
修改位置 server.js 顶部 —
解锁 锁定后输入正确密码会解锁进入 —
误锁解锁 删除 server.js 同目录 _lock.json 再重启服务 —

七、视频封面

项目 内容
需要 ffmpeg:winget install ffmpeg
不装影响 不影响照片,只是视频封面不自动生成(视频仍可播放)