v2.10.104(最新)
防恶意刷流量:公开只读接口此前完全没有限流,可能被脚本狂刷打爆自己的 Cloudflare 配额。
🛡️ 安全加固
- 公开只读接口全局频控(兜底层):“/api/posts
、/api/search、/api/popular、/api/comments、/api/stats等现在统一在业务路由之前过一道计数器——搜索 60 次/分、普通读 240 次/分、全量总闸 600 次/分,超限返回429并带Retry-After`- 风险不是数据泄露,而是打自己的配额:Workers 免费版 10 万次/天、D1 500 万行读取/天,刷满了当天全站打不开
- fail-open:KV 未绑定或抖动时一律放行,绝不让计数器故障挡住正常访客
- 只信任 CDN 注入的
CF-Connecting-IP,不读客户端可控的X-Forwarded-For(否则改一个头就能绕过所有按 IP 的限流) - 只拦读接口,写接口豁免(写有各自的业务级限流,避免误伤正常用户)
- 深翻页封顶:
GET /api/posts的page参数上限 200 页,避免持续付出 OFFSET 代价去打 D1 配额
这层是兜底,不是主力。主力是 Cloudflare 平台层(WAF Rate Limiting Rules + Bot Fight Mode)——那层在 Worker 之前拦截,连 Workers 配额都不消耗。
📝 文档与测试
smoke-test.js181 → 182 例(新增:真实连打 700 次请求验证 429、按 IP 隔离、fail-open、写接口豁免)
v2.10.101 ~ v2.10.103
汇总 v2.10.101 ~ v2.10.103 的变更。
✨ 新功能
v2.10.102(2026-10-12)— 后台「设置 → 功能开关」新增音乐播放器:关闭后前台不再初始化播放器界面与音频请求;开关保存到 D1site_settings.features.musicPlayer,默认开启
🔧 修复与优化
v2.10.101(2026-10-12)— 修复早期从 WordPress 导入的老文章正文里混着原始 HTML( 实体、<!--more-->注释、<embed>Flash 播放器)的问题:客户端接管重绘时这些标记不再被当成字面文字直接显示,服务端与客户端渲染结果一致v2.10.103(2026-10-13)— 背景动画默认关闭:不再自动开启,用户可在顶栏一键开启且选择会被记住;?bg=1、prefers-reduced-motion等原有行为不变
v2.10.87 是空号:该版本号从未落到代码里(app.js 的版本号长期停留在 2.10.83,直到 v2.10.98 才修正),也没有对应提交,因此没有变更记录。📝 文档与测试
smoke-test.js178 → 181 例(新增:老文章原始 HTML 渲染、音乐播放器后台开关、背景动画默认关闭)- 主仓库
docs/与本站同步到 v2.10.103(中英双语)
v2.10.66 ~ v2.10.100
本节补齐 v2.10.63 → v2.10.100 的变更(v2.10.64 / v2.10.65 为导航交互打磨,无独立条目)。
🔧 变更
v2.10.66(2026-10-07)— 统一下拉箭头风格v2.10.67(2026-10-07)— 顶栏「发现」选中样式对齐优化:箭头改为绝对定位收进右侧内边距,按钮不再比同级菜单宽出一截,选中下划线只覆盖文字宽度,不再显得偏右v2.10.68(2026-10-07)— 修正「发现」下拉菜单项的选中样式:下拉项不再继承顶栏下划线,改为左对齐列表,选中项使用左侧强调条 + 浅色高亮v2.10.69(2026-10-07)— 后台导航编辑器支持自定义二级下拉:任意一级项都能挂子菜单,子菜单可用层级按钮标记为「发现」二级;导航支持拖拽自由排序v2.10.70(2026-10-07)— 下拉风格全局统一:内置「发现」与后台自定义的一级下拉共用同一套箭头定位、大小、颜色与展开态规则,以后在后台新增任何带二级的导航都会自动与「发现」保持一致v2.10.71(2026-10-07)— 展开态配色统一:自定义下拉展开时主链接文字与箭头一起变为强调色(此前只有箭头变色),桌面顶栏与手机侧栏同步生效v2.10.72(2026-10-07)— 紧急修复:修正 index.html 中 app.min.js 脚本地址多出的反斜杠,导致线上主脚本 404、页面永久停在「加载中」;同时首屏渲染抛错时不再卡死加载动画(改为显示错误与返回首页),「发现」下拉无内容时不再渲染空菜单v2.10.73(2026-10-07)— 修正「发现」字号偏小:下拉触发按钮上的 font 简写会把字号重置为 16px(其他导航 18.5px),改为只继承字体族;侧栏导航同步继承字体族v2.10.74(2026-10-07)— 后台导航支持取消「发现」二级:内置标签 / 分类 / 历史 / 系列 / 热门可一键移出一级导航,支持放入 / 移出 / 默认三态切换v2.10.75(2026-10-07)— 后台导航新增「取消发现二级」:内置的标签 / 分类 / 历史 / 系列 / 热门也能一键移出「发现」下拉、回到一级导航,再点一次可放回;支持放入 / 移出 / 默认三态v2.10.76(2026-10-07)— 后台导航编辑器输入框宽度统一:一级行与二级子行改用固定列网格对齐,徽标不再挤占输入框宽度,子级不再左缩进v2.10.77(2026-10-07)— 自定义分类:分类导航下可自由添加二级分类(软件 / 系统 / 服务器…),文章可从下拉选择分类,点击分类按 ?category= 过滤出与首页一致的文章列表;「发现」下拉内支持嵌套展开子分类v2.10.78(2026-10-07)— 后台导航编辑器强化层级感:父级与二级子级成组显示,加竖向连接线 / 折角 / 节点点与父级色条,从属关系一目了然,且不影响一级二级输入框宽度一致性v2.10.79(2026-10-07)— 后台导航父子成组支持整体拖拽:拖动一级导航时父级与全部二级子级一起移动、一起高亮,落点插入线覆盖整组;并修正父级被拖到自己子级下会误变成子级的问题v2.10.80(2026-10-07)— 统一二级菜单交互与风格:分类等带下拉的导航点击标题即可展开(与「发现」一致,不再必须点小箭头),下拉顶部新增「全部」入口返回父页面;电脑端与手机端行为完全一致v2.10.81(2026-10-07)— 移除下拉里的「全部」入口:父级导航只作为二级菜单的标题提示,点击仅展开下拉、不再跳转父页面,光标统一为手型v2.10.82(2026-10-07)— 修复二级菜单无法收起:再次点击同一导航即可关闭(桌面 / 手机 / 嵌套子级统一);手机端二级箭头横向位置、点击区域与旋转方向与「发现」完全对齐v2.10.83(2026-10-07)— 分类 / 标签二级菜单下的空列表不再显示「去写一篇」按钮,避免向访客暴露后台写作入口;仅站点确实一篇文未发时才显示,筛选后为空改为中性文案v2.10.84(2026-10-10)— 相关文章移到上下篇导航之下;上下篇切换由「翻书」改为交叉淡入淡出,滚动位置不再跳动v2.10.85(2026-10-10)— 修复点击上一篇 / 下一篇后新文章不从开头开始:阅读位置记忆只在刷新时生效,跳转一律回到文章顶部;并补全缺失的 toast 实现v2.10.86(2026-10-10)— 「导出静态站」先在用户手势内弹出另存为对话框,让用户自己选保存位置,不再直接下载到浏览器默认目录v2.10.88(2026-10-10)— 后台功能开关新增「首页显示的标签」,可自选哪些标签出现在首页,避免标签堆积v2.10.89(2026-10-10)— 分类独立为一级导航,不再收纳在「发现」下拉中v2.10.90(2026-10-10)— 补齐 zh-CN 语言包缺失的 8 个键(v2.10.86 / v2.10.88 漏加),并更新导航断言适配分类独立v2.10.91(2026-10-10)— 博客设置记住上次停留的标签页,刷新不再跳回站点基础信息v2.10.92(2026-10-10)— 修复后台导航菜单编辑器不显示二级菜单与自定义项(过期草稿遮蔽服务端数据)v2.10.93(2026-10-10)— 首屏弱网兜底:预加载关键资源 + 8 秒慢网提示可重试 + 30 秒明确失败文案v2.10.94(2026-10-10)— 评论区切换最热 / 最新:即时按下反馈 + 骨架占位过渡,不再闪空白或先空后出v2.10.95(2026-10-10)— AI 摘要「重新生成」仅管理员可见;清理页面各处间隔圆点(页脚导航、文章信息行、标签、精选卡片)v2.10.96(2026-10-10)— 后台功能开关新增「阅读字号」:可隐藏 / 显示正文字号调节按钮v2.10.97(2026-10-10)— 首屏云端快照兜底(内容先出,不再等接口);尝试让静态资源长缓存真正生效(run_worker_first)v2.10.98(2026-10-10)— 修复关于页 / 后台显示的版本号停在 v2.10.83,统一同步为当前版本,并加「版本号三处一致」守卫测试v2.10.99(2026-10-10)— 功能开关补齐漏项:新增「划线高亮工具」(含高亮汇总 / 清除 / 导出 / 导入)与「收藏(稍后读)」开关;关闭只隐藏界面,已保存记录不删除v2.10.100(2026-10-10)— AI 摘要「重新生成」改为服务端会话校验(新增 GET /api/admin/session):本地残留的过期 token 不再让游客看到管理员按钮;评论区与页脚导航之间增加间距v2.10.100(2026-10-10)— 文档同步到当前版本:补齐 v2.10.84~v2.10.100 变更日志、更新功能开关与测试例数清单、新增会话自检接口说明;并加「文档不过期」守卫测试,文档版本号或测试例数与代码不一致即阻断部署
📝 文档与测试
- 主仓库
docs/全部文档同步到 v2.10.100(中英双语):功能清单、变更日志、接口表 - 新增两条守卫测试:「版本号三处一致」(
BLOG_VERSION/index.html ?v=/sw.js CACHE_VERSION)与 「文档不过期」(文档标注的版本号与测试例数必须与代码一致,否则阻断部署) smoke-test.js78 → 178 例
⚡ 首屏与弱网
- v2.10.93:关键资源显式
preload、云端接口 8 秒超时截止、正文 10 秒保护、失败渲染可重试的失败页(不再死循环拉取) - v2.10.97:云端快照兜底(本地快照最长用于 12 小时首屏,先出内容、后台并行刷新真实数据)
- v2.10.98:修复关于页 / 后台显示的版本号停在 v2.10.83
v2.10.101(2026-10-12)— 修复老文章(WordPress 导入)原始 HTML 被当字面文字显示:实体解码 /<!--more-->注释清除 / Flash<embed>移除 / 老排版标签归一,代码块与<script>转义行为不变v2.10.102(2026-10-11)— 后台功能开关新增「音乐播放器」,前台按开关决定是否初始化v2.10.103(2026-10-13)— 背景动画默认关闭(顶栏可一键开启并记忆),不再自动播放v2.10.104(2026-10-13)— 安全加固:公开只读接口全局频控(搜索 60/分、读 240/分、总闸 600/分,429 + Retry-After,fail-open,只信 CF-Connecting-IP)+page参数封顶 200
v2.10.63(2026-10-05 · 最新)
🔧 后台显示修复
- 功能开关里的图表 / 公式提示改为自然语言,不再直接显示 ```mermaid、`$…--- title: “更新日志” description: “版本更新记录”
等原始代码语法
- AI 写作助手 / 评论工具的结果改为普通文本排版,不再使用代码块样式
- 加深后台组件测试,防止原始代码语法和代码块样式回归
v2.10.62
✨ 导航开关
- 后台「设置 → 功能开关」新增显示新增导航项
- 关闭后隐藏分类 / 历史 / 系列 / 热门等新增默认导航项
- 不影响首页、标签、归档、留言板、关于等基础导航,也不会删除后台自定义链接
- 开关保存到 D1
site_settings.features.navExtras,默认开启
v2.10.61
🔧 导航修复
- 后台保存过的
nav_menu现在会在首次升级时自动补齐新增默认项:分类、历史、系列、热门等,同时保留用户已有的自定义链接 - 补齐完成后保存
nav_defaults_version;此后用户主动删除的导航项不会被反复加回 - 后台「顶部导航」的默认列表、重置按钮与前台默认导航保持同一顺序
- 如果浏览器仍显示旧导航,强制刷新一次或清除 PWA 旧缓存即可加载 v2.10.61
v2.10.60
汇总 2026-10-03 ~ 2026-10-04 的功能、稳定性与文档更新。
✨ 内容与分发
- 文章级 SEO:每篇文章可覆盖 SEO 标题 / 描述 / canonical / noindex,应用到 title、meta、Open Graph、Twitter Card 与 JSON-LD
- 草稿预览分享链接:HMAC-SHA256 签名,默认 7 天(可设 1–30 天),预览页
noindex/ 不统计 / 不加载评论;修改站点密码会立即失效 - 一键导出静态站:预渲染首页、每篇文章、归档、标签、关于与 404 页面,每个路由独立
index.html,附 RSS / Sitemap 与部署说明 - 打印 / 导出 PDF:文章页一键打印,隐藏导航 / 评论 / 广告 / 播放器 / 目录浮层,表格、图片、公式与代码避免分页断裂
- Webmention:接收外站通知,抓取来源页并校验确实链接到本站文章后收录,后台可管理
- 多作者:文章作者字段、
/authors列表与/authors/:name作者主页;作者字段随备份与版本恢复保留
✨ 编辑与阅读
- 分类体系恢复:分类页、首页筛选、编辑器分类选择与默认导航
- 阅读历史 / 稍后读:
/history页面 + 文章收藏 - 正文划线高亮:选中即高亮、备注、汇总浮层、JSON 导入 / 导出与本机保存
- 阅读位置记忆:再次打开文章自动回到上次阅读位置
- 正文字号调节与移动浮动目录:桌面 A− / A / A+,移动端抽屉式目录
- 评论与留言板增强:服务端分页、最新 / 最热排序、评论点赞 / 精选 / 置顶、反机器人蜜罐 + 时间戳、敏感词过滤、后台多选批量审核
- 编辑器:表格 / 任务列表 / 分割线 / 代码块、字数统计、快捷键提示、草稿自动保存与崩溃恢复
✨ 后台、数据与可观测
- 功能开关:首页分页、广告位、前端错误上报、评论反机器人、Mermaid / KaTeX 均可后台开关
- 文章数据:浏览 / 点赞 / 评论 / 综合得分、趋势图与 CSV 导出
- 来源 / 国家 / 设备统计:来源域名、两位国家码、设备类型、系统、品牌按天聚合;不记录原始 IP
- 站点健康检查:D1 表可读性、KV、R2 媒体 / 备份桶、AI 与 Resend 绑定状态
- 操作审计日志:类型 / 日期筛选、分页、CSV 导出与清空
- 前端错误日志:未处理异常 / Promise 拒绝匿名上报,按指纹聚合,最多保留 300 条
- 订阅分组与群发:订阅者搜索 / 筛选 / 分页 / 导出,按分组群发邮件
- 备份增强:R2 私有备份列表分页、内容摘要、下载 / 删除 / 恢复与恢复前快照
- 媒体 / 音乐增强:搜索、分页、大图预览、批量删除、复制 Markdown、Pages / Workers 双形态可用
- 仪表盘:统一骨架屏、渐变面积趋势图、7 项统计卡与存储 / 订阅概览
🛡️ 安全与稳定性
- 强制改密:
must_change=1时,除改密 / 登出外的后台 API 统一返回403 PASSWORD_CHANGE_REQUIRED - 密码长度:云端最少 8 位;静态模式仍为本地门禁
- 预览密钥:新增
BLOG_PREVIEW_SECRET,不填时由管理员密码哈希派生 - 评论词库与通知:新增
COMMENT_BLOCKLIST、BLOG_ADMIN_EMAIL - AI 开关:新增
BLOG_AI_ENABLED/BLOG_AI_PUBLIC,部署工作流非空时自动写入 - 修复来源 / 设备统计未生效、后台全部评论加载、后台全部文章分页
serverTotal、i18n 缺失导致t is not defined等问题
🧪 测试与文档
smoke-test.js158 例、gb-verify.js18 例、search-verify.js25 例 全部通过- 数据库迁移推进到
0032_post_author.sql - 主仓库文档统一迁入
docs/,新增中英双语开发文档、环境变量总表与部署指南同步 - 文档站同步当前版本、API、D1、配置、安全、后台与功能参考
v2.7.2
🛡️ 安全加固
- 登录限流重做为三层短冷却:单 IP 5 次失败 → 15 分钟;同一子网(IPv4 /24、IPv6 前 4 段)15 次失败 → 60 秒冷却;全站 30 次失败 → 仅 10 秒冷却 + 告警日志。不再使用全局长锁定——对只有一个管理员的系统,全局长锁定防不住攻击者(换个 IP 即可继续),却能被攻击者用来把站长挡在门外
- 新增应急通道:登录请求携带正确的
X-Setup-Key(即BLOG_ADMIN_SETUP_KEY)可跳过全部限流,但不跳过密码校验;后台登录页在触发限流时自动展开「被限流?用安装密钥登录」入口 - 锁定期与冷却期内直接返回 429 早退,不读也不写数据库:分布式爆破最多每 10 秒消耗一次 D1 写入,避免被失败登录刷爆免费写额度;计数 1 小时老化,冷却结束后保留计数,防止「等冷却归零再重试」
- 修复了「全局限流三个常量从未声明」导致防 IP 轮换逻辑实际从未生效的问题
✨ 新功能
- 可选边缘限流绑定:配置 GitHub Secret
BLOG_RATE_LIMIT_BINDING(正整数,如1001)后,部署工作流会自动改用wrangler@^4.36.0并注入[[ratelimits]]绑定(绑定名LOGIN_LIMITER,10 次/分钟/位置);未配置时行为与旧版完全一致,代码检测不到绑定即回退 D1 计数 - 可复现的截图工具
scripts/screenshots/:本地演示服务器(真实public/代码 + mock API 示例数据)+ 无头 Chrome 截图脚本,不需要管理员密码、不接触线上数据,可随时重跑;共生成 23 张截图
🔧 变更
BLOG_VERSION→2.7.2,public/index.html的静态资源?v=→2.7.2,语言包缓存版本I18N_VER→ 9smoke-test.js77 → 78 例(新增「登录限流」整套回归:锁定期间正确凭据、错误密钥不可绕过、计数不写库、计数老化、子网隔离、全局冷却不锁死、限流器异常降级)
📝 文档
- 主仓库文档全面中英双语化:
README、CLOUDFLARE_SETUP_GUIDE、DEPLOYMENT_SECRETS_GUIDE、SECURITY、ABOUT、CODE_OF_CONDUCT均提供X.md+X_EN.md成对文件;CONTRIBUTING、PR / Issue 模板、FUNDING.yml、public/llms.txt改为单文件内中英对照;每个文件首行加入语言切换入口 - 新增 Cloudflare 配置完全指南(新手版)(中英双语,891 行):账号注册 / D1 / KV / API Token 权限勾选 / R2 桶与 CORS / Workers AI / 自定义域名与 Zone ID / Secrets 全表 / 部署 / 首次初始化 / 12 项自检 / 故障排查 / 免费额度,并含第 9 节「加固后台登录入口」(Cloudflare Access / WAF 限流规则 / Workers 边缘限流绑定三种方案)
- 修正主仓库 README 中的过时描述:强调色 4 种(非 6 种)、冒烟测试 78 例、KV 真实键表、
SITE_URL未配置时 CORS fail-closed、迁移补到 0015
v2.7.1
🔧 修复
- R2 上传签名修复:预签名 PUT 的签名头改为
content-type;host——Content-Type参与签名,浏览器必须原样发送,R2 桶 CORS 的 AllowedHeaders 必须包含Content-Type;签名路径按 RFC 3986 逐段编码,最终 URL 与签名路径完全一致;不签Content-Length(浏览器差异会导致 403 且响应不带 CORS 头) - 音乐上传写回音乐桶:
R2_BUCKET与R2_PUBLIC_BASE都配置时音乐写入音乐桶,仅当音乐桶配置不完整时才回退R2_MEDIA_BUCKET(此前会误写媒体桶);上传失败会暴露真实失败阶段,便于定位预检失败 - 音频白名单补充
oga
🛡️ 安全加固
- 静态资源响应也统一注入安全响应头;未知
/api/*一律返回 JSON 404,绝不回退 HTML(functions/api/[[path]].js为 Pages 侧兜底) - 新增迁移 0015 热点索引:
idx_comments_post_id/idx_comments_status_date/idx_music_sort/idx_media_created_id/idx_admin_sessions_exp robots.txt移除了不被支持的非标准指令
✨ 新功能
- 资源发现清单:新增
/.well-known/ard.json(ARD v0.91)与/.well-known/ai-catalog.json,并在首页通过<link rel="ard">/<link rel="ai-catalog">声明;public/llms.txt提供面向 LLM / 代理的站点说明
🚀 体验优化
- 静态资源缓存分层:带
?v=版本号与字体 / 图标等不可变资源缓存一年;其余带扩展名资源 1 小时 +stale-while-revalidate;无扩展名 HTML 入口no-cache - 音乐播放器样式与脚本改为按需加载(不在首屏关键路径)
- 浅色主题文字对比度提升
📝 文档
- 新增
DEPLOYMENT_SECRETS_GUIDE.md(GitHub Secrets 与 R2 令牌详解,中英双语)
v2.6.6
🚀 域名与 SEO
- 切换自定义域名:全线改用
https://www.2024921.xyz(替换原 Cloudflare Workers 子域名入口),导航、管理后台入口、站点配置示例与文档同步更新 - Sitemap / RSS 云端动态生成:删除静态
public/sitemap.xml/public/feed.xml,新增根路径/sitemap.xml、/feed.xml动态端点;文章增删改查后自动生成最新站点地图与 RSS,无需手工维护 - 兼容旧 API:
/api/sitemap.xml、/api/feed.xml继续可用,方便已有调用方平滑迁移
📝 文档
更新快速开始、Cloudflare Workers 部署、配置参考、API 总览、项目架构、本地静态部署、GitHub Secrets 与 docs.json 导航链接。v2.4
✨ 新功能
- 媒体图片 R2 直传:后台媒体库图片上传从「base64 存 D1」迁移为浏览器直传 R2(预签名 PUT URL,图片不经过 Worker,规避请求体上限与带宽计费);媒体使用独立 R2 桶(
R2_MEDIA_BUCKET),与音乐桶分开 - 移除图片存 D1 的全部兼容:
POST /api/media仅接受 http/https 链接(不再接受data:imagebase64 内嵌);历史 base64 记录由迁移0014一次性清除——媒体库现在只存 R2/外链记录,图片本体一律在 R2 - 删除文章级联清理:删除文章时原子清理其评论(含回复)、点赞/浏览量计数与每日聚合(
stats_daily)——同 ID 重建不会复活旧数据,后台趋势图不再计入已删文章流量
🔧 变更
- BLOG_ADMIN_SETUP_KEY 改为可选:配置后
/api/admin/setup首次初始化需携带X-Setup-Key(防抢注,推荐生产配置);未配置时回退旧行为——首次部署自动生成随机默认密码(xxxx-xxxx),登录后强制修改。CI 不再把它列为必填 Secret
🛡️ 安全加固
- 安全响应头(CSP / X-Content-Type-Options 等)全量响应
- 回复标签存储型 XSS 修复、评论控制字符清洗
- 迁移改为三层幂等策略(
schema_migrations记账表 +pragma_table_info列预检 + 报错兜底),重复部署不再因duplicate column中断 - 统计点赞/阅读改原子自增(并发不丢数)
- CI 部署前前置运行三套测试(smoke / gb / search),失败即中止不部署
- AI 功能文档补充隐私提示:摘要/写作助手/评论汇总会把文章或评论明文发送给 Workers AI,敏感内容请勿启用
📝 文档
本开发文档站同步更新:媒体(R2 直传)、管理员认证(密钥可选 / 随机密码流 / 改密接口)、站点设置接口、统计响应、迁移幂等、架构(media.js)、部署(CI 步骤 / R2 媒体桶)v2.3
✨ 新功能
- 全站音乐播放器:右下角悬浮音符按钮,平时缩进窗口外露出一点圆弧、悬停 / 点击即滑出;点击弹出面板:曲目信息 · 可拖动进度条 · 上一首 / 播放暂停 / 下一首 · 音量 · 播放列表(点击切换、当前高亮 + 均衡动画)
- 音乐记忆:自动连播;记忆上次曲目与进度、音量持久化,刷新后恢复但不自动出声
- 后台音乐管理:音频上传(浏览器直传 R2 预签名 URL + 上传进度);文件名自动识别「歌曲名-歌手」预填;行内试听 / 删除(删除与 R2 对象同步);曲目多时列表卡片内滚动、表头吸顶
🚀 体验优化
- 播放器悬浮按钮与一键置顶解重合:置顶按钮上移至播放器上方(桌面
bottom: 92px/ 移动端bottom: 80px) - 无音乐或接口失败时播放器完全隐藏;后台路由自动收起
📝 文档
- 新增音乐文档页;API 总览 / 表结构 / 迁移 / 部署(R2)/ 架构 / README 同步更新
v2.2
✨ 新功能
- AI 写作助手:编辑器一键生成标题建议 / 润色 / 翻译(目标语言可选),结果可应用或复制
- AI 文章摘要:文章页一键生成内容摘要,单篇 30 天缓存
- AI 评论汇总:评论管理页一键汇总近期评论要点(1 小时缓存)+ 单条评论垃圾检测
- 主题色切换:强调色可切换(当前为 4 种:赭橙
terra/ 黛蓝indigo/ 竹青bamboo/ 凝夜紫dusk),桌面图标按钮 + 弹层 / 手机端原生下拉 - 后台品牌区:左上角 Logo 渐变方块(站点头像或站点名首字 + 流动动画),左下角显示个人资料头像
🗑️ 移除
- 分类功能:编辑器分类字段、文章列表分类筛选与「分类」列、分类管理页均已移除(
posts.category数据列保留兼容,不影响存量数据与 API 字段) - AI 写作助手的**「标签」动作**移除(保留标题建议 / 润色 / 翻译)
🚀 体验优化
- 后台顶栏:右上角 🌐 语言弹层(同前台风格、SVG 国旗),移除新评论铃铛,待审核数移至侧栏「待审核评论」角标
- 侧栏可折叠,折叠后页脚仅剩头像、水平垂直居中
- 编辑器输入框自动增高,与预览同样完全展开(无内部滚动条)
- 手机端仪表盘内容卡片统一单列布局
📝 文档
- README / README_EN / 本开发文档站同步更新(AI、主题色、后台 UI 新增;分类相关描述移除)
v2.1
✨ 新功能
- 留言板:导航直达
/guestbook,「留言 / 优化方案」双分区,云端存储;通过合成 post ID 复用评论安全管道,零新增接口 - 重复发送拦截:同一分区下相同昵称 + 相同内容的评论 / 留言返回
409,防误触双击与脚本刷同文 - 搜索升级:结果展示关键字所在完整句子上下文,并高亮关键字;悬停无下划线
🚀 体验优化
- 管理后台评论删除 / 审核无感刷新:行级淡出移除 + 状态徽章就地更新,不再整表重载
- 管理后台文章删除无感刷新:行级淡出 + 静默校准列表;管理端请求时间戳穿透
s-maxage边缘缓存 - 前台删除即时生效:管理后台删除文章后,前台文章列表 / 详情 / 缓存同步更新,无需刷新网页
- 失败原因透传:评论 / 留言提交失败时,表单状态行直接显示后端具体原因(重复 / 频控 / 来源校验)
📝 文档
v2.0
✨ 新功能
- 评论支持嵌套回复(
parent_id字段) - 媒体资源库(图片上传,base64 存 D1)
- 站点设置持久化
- 每日统计聚合(30 天趋势图表)
- 管理员强制改密标记
- 清理遗留 nav 配置
📝 文档
- 新增开发文档站
v1.0
✨ 核心功能
- 零框架、零构建、零依赖的博客系统
- 双通道架构:静态模式 + 云端模式
- Cloudflare Workers + D1 部署
- Markdown 编辑器
- 文章加密(PBKDF2 + AES-GCM)
- 评论系统(嵌套回复 + 审核)
- 阅读/点赞统计
- 站内搜索 + TOC
- RSS / Sitemap 自动生成
- 精选文章推荐
🎨 界面
- 深色/浅色主题切换
- 响应式设计(手机/平板/桌面)
- 四级衬线字体栈
🌐 国际化
- 内置 5 种语言
- 自动识别 + 手动切换
🔒 安全
- PBKDF2-SHA256 密码哈希
- 会话 Token 鉴权
- 登录限流
- CORS / XSS / SQL 注入防护
