📝 1,205 字 + 163 词
⏱️ 约 5 分钟
CHANGELOG
2026-06-27
新增
- 博客置顶功能 — 文章 front matter 支持
sticky: true,置顶文章优先显示并带有琥珀色左边框 + 📌 置顶 徽章
- CHANGELOG 独立页面 — 更新日志从博客系统中分离,拥有独立路由
/changelog、独立构建脚本、SEO 预渲染、TOC 目录导航
- CHANGELOG 入口 — 页脚和博客列表页新增
📋 更新日志 链接
修复
- 标题 ID 去重 — build-posts 和 build-changelog 的 Markdown 渲染器自动为同名标题追加
-2/-3 后缀,修复 TOC 重复高亮和锚点跳转失效
2026-06-25
新增
- 主页服务快捷入口 — 毛玻璃卡片链接到子域名服务:Alist 云盘、Cloudreve 网盘、LibreTV、MC RCON 面板
- 封禁系统增强 — 封禁支持时长选择(1/3/7/30天/永久)+ 原因填写,封禁/解封自动推送通知
- 封禁用户只读权限 — 被封用户可登录浏览,但评论/聊天/修改资料等写操作被拦截
- 通知详情弹窗 — 点击通知弹出详情窗口,支持查看完整内容和跳转链接
- 博客管理日期分组 —
/admin 按日期画分隔线,每天标题行显示文章计数
- 博客管理排序 — 支持按时间/作者排序,下拉框切换
修复
- admin 保存文章时清除 body 残留
--- 导致编译异常
- 后台构建改为异步非阻塞,API 先响应再构建,无需等待
- 交换
/posts 和 dist 静态中间件顺序,修复博客更新不生效
- 添加 SIGTERM/SIGINT 优雅退出,解决 8080 端口占用导致重启失败
2026-06-19
新增
- SEO 搜索引擎优化 — 完整SEO方案,支持百度/Google等搜索引擎收录
- 爬虫预渲染 —
scripts/build-seo.mjs 为爬虫生成完整HTML页面(含OG/Twitter Card/JSON-LD结构化数据),Vite构建时自动执行
- 爬虫检测中间件 —
server.js 检测Baiduspider/Googlebot等User-Agent,自动返回预渲染页面;人类用户保持SPA体验不变
- 动态Meta标签 —
@unhead/vue + src/composables/useSEOMeta.ts 实现每个页面独立的<title>/<meta>/OG标签
- sitemap.xml — 自动生成,包含首页、博客列表、时间线、全部文章URL
- robots.txt — 允许全部但禁止
/api/、/login、/admin、/chatbox等非内容页面
npm run build:seo — 独立SEO构建脚本,可单独运行
修复
index.html viewport移除user-scalable=no/maximum-scale=1.0(可访问性)
@unhead/vue head实例未注册导致Vue应用无法挂载
部署
- 服务器切换为pm2生产模式(
node server.js,不再使用npm run dev)
2026-06-18
新增
- 管理员博客管理系统 —
/admin Web端Markdown编辑器,支持分屏实时预览、新建/编辑/删除文章,仅管理员和服主可访问
- 文章作者署名 — 博客文章自动记录作者UID,
index.json包含author字段,博客列表支持按作者筛选
/api/health 健康检查端点 — 返回Redis连接状态、进程uptime和内存使用
scripts/publish.mjs — 本地发布脚本:npm run publish 一键构建+同步到服务器
修复
- Redis
REDIS_PING_INTERVAL 变量名冲突导致服务启动失败
- 访问无效博客slug时显示空白页+可评论(改为显示"文章不存在"错误)
- 评论API验证文章存在性,防止对不存在的文章提交评论
- 博客构建脚本增量模式下构建产物索引正确更新
重构
- 环境变量集中管理 — 所有IP、端口、域名、Cookie安全配置、TTL迁移到
.env
- Redis连接稳定性 — TCP keepalive + 应用层PING心跳 + 永不放弃的重连策略,穿透NAT空闲超时
- 博客增量构建 — 仅编译新增/修改过的
.md文件,启动速度大幅提升
- Vite代理配置 —
BACKEND_URL环境变量统一管理所有代理目标
部署
- 站点从校园网(192.168.193.42)迁移至云服务器(38.95.74.105)
- 配置nginx反向代理 + Let's Encrypt SSL证书
- 一级域名重定向至www,HTTP强制跳转HTTPS
- Redis数据完整迁移(用户/评论/通知/会话)
2026-06-17
修复
- 博客构建后图片路径修正为
/posts/res/绝对路径(SPA中相对路径会相对于/blog/:slug解析)
新增
- 评论回复通知添加评论锚点定位(
#cmt-xxx)
- 系统通知脚本支持
link参数
2026-06-15
新增
- WebSocket多房间聊天系统 — 房间列表/创建/删除/踢人,Origin白名单,AES-256-GCM端到端加密
- 站内通知系统 — @提及通知、评论回复通知、系统通知,通知已读/未读状态管理
- 聊天室安全加固 — 非HTTPS非localhost时降级明文发送并提示用户
npm stop 脚本 — 一键停止前后端服务
修复
- 移动设备隐藏nav的Cherry Lanterns logo
- 加密提示固定顶部不随消息滚动
- 旧房间缺少密钥兼容 — 服务端自动补发
- 聊天室消息区自动聚焦最新消息
样式
- 聊天室全屏沉浸式布局,PC/移动端统一无边角
- 博客导航添加📝图标
2026-06-14
新增
- 用户注册邮箱验证码(Geeksend SMTP)
- 用户组权限系统(缓冲池/普通/管理员/服主)
- 博客评论系统(嵌套回复、分页加载)
- 聊天室管理API
修复
- 默认发件邮箱改为
noreply@cherrylanterns.cn
更早
- Vue 3 + Vite + TailwindCSS v4 + TypeScript 项目初始化
- Express 5 + Redis 后端
- 用户注册/登录/资料管理
- 博客Markdown构建管道(marked + front-matter)
- 博客列表/时间线/文章详情页面
- 响应式导航栏、暗色模式、粒子动画背景