Skip to content

Latest commit

 

History

History
202 lines (143 loc) · 15.7 KB

update.md

File metadata and controls

202 lines (143 loc) · 15.7 KB

更新日志

2026-09-15:增加页面背景滚动模糊开关

  • 新增 params.pageBackgroundBlur.enabled 和 params.pageBackgroundBlur.max 配置,博客主人可以手动开启、关闭并调整页面背景的最大模糊半径。
  • 页面背景模糊与顶栏毛玻璃效果分离,模糊只作用于背景,不会影响正文内容;示例博客默认启用 8px。
  • 更新 argontheme.js 的资源版本号,避免生产环境继续使用旧缓存。

2026-09-15:移植顶部滚动毛玻璃效果

  • 对照原版 Argon 的 argontheme.js 和 style.css,恢复顶部导航栏在 Banner 上方保持透明清晰、滚动后逐渐增加主题色背景并启用 blur(16px) 的效果。
  • 根据 toolbar.blur 配置决定是否启用毛玻璃;补充无 Banner 页面处理、滚动边界保护和窗口尺寸变化重新计算。
  • 使用 requestAnimationFrame 合并滚动更新,减少高频滚动事件对页面性能的影响。
  • 为 argontheme.js 增加版本参数,避免生产环境继续加载旧缓存。

2026-09-15:恢复管理员 GitHub 配置

  • 修复生产部署时遗漏 GITHUB_ADMIN_ID 导致管理员登录提示“未配置”的问题,并将管理员账号数字 ID 固化到生产 Wrangler 配置。
  • 后续生产部署统一使用 wrangler deploy --keep-vars,保留 Cloudflare 中已有的 OAuth 变量和 Secret,避免再次被配置文件覆盖。
  • 已重新部署 Worker,并只读验证管理员 OAuth 入口返回 302、正式站点接口返回 200。

2026-09-15:评论墓碑和名单策略

  • 评论管理页现在保留软删除评论的作者、原文、GitHub ID 和时间,管理员可单独彻底删除“评论已删除”墓碑;墓碑有回复时会先将回复提升到原父级。
  • 新增评论黑名单/白名单模式和 GitHub 数字 ID 名单管理;黑名单用户的已有评论对公众隐藏为删除状态,白名单模式只允许名单用户进行评论操作。
  • 发布、回复、编辑、删除、点赞均在 Worker 端重新校验名单策略,不能仅通过绕过前端按钮获得权限。
  • 评论管理 UI 增加策略切换、名单添加/移除、拉黑/解除拉黑和墓碑彻底删除操作,并沿用后台主题色与亮暗模式。
  • 已完成 Worker、后台脚本和评论脚本语法检查,并审查了 OAuth/PKCE、会话 Cookie、CSRF、Origin/Fetch Metadata、管理员授权、名单后端强制校验、Markdown 输出和远程头像 URL。
  • 修正名单头像 URL 的协议与长度边界;生产 Wrangler 配置显式关闭 workers.dev 和预览 URL,缩小非生产入口。
  • 主题已推送,Worker 已部署;博客 gitlink 已更新并推送,正式站点正在由 GitHub Pages 发布。

2026-09-14:后台主题模式和主题色同步

  • 为 /admin/、/admin/views/、/admin/comments/ 和 /admin/login/ 增加亮色/暗色模式切换按钮。
  • 后台复用博客的 Argon_Enable_Dark_Mode 和 argon_custom_theme_color 状态,并读取博客首页的自动模式配置与主题色。
  • 后台页面的面板、表格、表单、状态提示和导航均补齐暗色配色;更新资源版本号避免浏览器继续使用旧缓存。

2026-09-14:后台仅使用 GitHub 管理员身份

  • 删除 VIEW_COUNTER_ADMIN_KEY、管理员密钥登录接口及其前端表单、CORS 头和部署文档。
  • 管理员会话绑定 GITHUB_ADMIN_ID;旧密钥会话不会继续获得后台权限。
  • 保留 VIEW_COUNTER_KEY(前端阅读量 API 所需)以及 GitHub OAuth 必需的 GITHUB_CLIENT_SECRET。

本文件按时间记录主题仓库的重要改动和验证结果。当前清单见 todo.md。

2026-09-11~09-12:阅读量基础能力

  • 增加 Cloudflare Worker + D1 阅读量方案、客户端批量读取和 /settings/ 管理入口。
  • 增加 D1 自动建表、阅读量缓存刷新和配置键映射。
  • 关闭未配置 endpoint 时的无意义请求;修复暗色模式分页按钮样式。

2026-09-13:前端结构与按需加载

  • 统一使用 navigation.js 管理跨路径导航和页面生命周期。
  • 将代码高亮、分享、搜索、GitHub 卡片、评论图片、折叠、Pangu、Clamp、Zoomify、lazyload 和 Banner 拆为按需模块。
  • 完成图片处理、资源指纹、SRI、缓存策略、文章目录、代码块背景和页面布局整理。
  • 清理第三方评论方案,保留自建评论挂载点和空接口。
  • 完善 .gitignore,忽略构建物、缓存、临时目录和本地敏感配置。

2026-09-14:前端验收收尾

  • 修复时间线、留言板和作者页信息卡片的尺寸与位置。
  • 修复页脚重复 Hugo 文案、移动端分页、代码高亮双层背景和评论布局。
  • 恢复 Argon 原评论结构,使回复位于主评论下方。
  • 评论正文支持安全 Markdown、换行、数学公式、头像和嵌套回复;不执行用户 JavaScript。
  • 修复 avatarWrapper 残留引用导致的评论加载失败。

2026-09-14:GitHub OAuth 与安全加固

  • 增加 GitHub OAuth 授权码 + PKCE、state 校验、D1 用户、会话和退出登录。
  • COMMENTS_ALLOW_GUESTS=false 时,Worker 强制要求 GitHub 登录发表评论。
  • 增加 CSRF Token、Origin/Fetch Metadata、JSON Content-Type、GitHub 请求超时、安全响应头和 Cloudflare Rate Limiting。
  • 生产 Origin 收紧为正式站点;本地开发改用独立 wrangler.local.jsonc。
  • 评论脚本缓存版本更新到 comments-5,确保浏览器发送 CSRF Token。
  • Worker 当前生产版本:c872e8f6-cce8-481d-be25-37bd5e38d630。

2026-09-14:文档整理

  • 根目录 README 增加后端教程入口,集中说明主题安装、配置、页面、短代码和后端边界。
  • 重写 cloudflare/view-counter/README.md,补充 D1、Worker、GitHub OAuth、评论配置、本地开发、安全规则和验证步骤。
  • 将 todo.md 收敛为 Goal 与清单;本文件只保留精简时间线。

2026-09-14:评论作者管理

  • 增加 PUT /api/comments/:id 编辑接口和 DELETE /api/comments/:id 软删除接口。
  • 后端以 GitHub ID 做最终授权,补充 updated_at、deleted_at 字段和迁移索引;删除保留回复树并隐藏原正文。
  • 评论列表返回作者操作权限,前端增加 Argon 风格行内编辑、删除确认、已编辑标记和删除占位内容。
  • 评论脚本缓存版本更新为 comments-6,避免旧浏览器继续使用没有编辑/删除控件的脚本。
  • 修复评论列表请求遗漏 credentials: include 的问题;登录态现在会随列表请求发送,Worker 可正确返回本人评论的编辑/删除权限。评论脚本缓存版本更新为 comments-7。

2026-09-14:评论时间与删除确认

  • 编辑后的评论改用编辑时间显示,并标注“已编辑”。
  • 删除操作改为红色按钮,第一次点击进入确认状态,第二次点击小型确认按钮才提交删除。
  • 评论时间统一按 UTC 保存,新增 comments.timeZone IANA 配置;博客示例使用 Asia/Shanghai,避免把固定 UTC+8 写进后端。

2026-09-14:评论树删除策略

  • 删除父评论但仍有回复时保留回复树,父评论改为紧凑的“评论已删除”占位。
  • 只有整棵树的所有节点都删除后,Worker 才物理清理整棵树;初始化时同步清理旧版本中已全部删除的历史树。
  • 删除占位改为无头像、无“访客”文本的紧凑标记;评论脚本缓存版本更新为 comments-9。
  • 未登录、错误 CSRF、跨来源和越权请求均在本地 Worker 验证为拒绝;生产部署尚未执行。

2026-09-14:后台第一、二步

  • 将静态管理入口从 /settings/ 整理为 /admin/,新增后台总览、阅读量管理和评论管理页面,并统一使用 Argon 风格的轻量界面。
  • Worker 新增管理员状态、阅读量分页和评论分页接口;阅读量返回站点总量,评论支持文章路径、作者和状态筛选。
  • 管理页仅按页读取数据,单页最多 50 条;评论管理复用现有管理员密钥和编辑/删除接口,未改变普通用户权限模型。
  • 为 /admin/ 添加 noindex 元信息和 robots 禁止抓取规则;本地示例站 Hugo 构建通过,旧 /settings/ 页面不再生成。

2026-09-14:后台独立登录会话

  • 新增 /admin/login/ 独立登录页;管理员密钥只提交给 Worker 一次,不再由各管理页面重复填写。
  • Worker 新增管理员会话表、登录/会话查询/退出接口,使用 HttpOnly 会话 Cookie 和管理员 CSRF Token;保留旧管理密钥请求兼容性。
  • 阅读量和评论管理页改为自动复用会话,并在页头提供退出登录;登录页预留 GitHub 登录入口。

2026-09-14:后台侧栏与 GitHub 管理员登录

  • 后台页面统一改为左栏导航 + 内容区布局;导航由 static/admin/admin.js 的模块定义生成,新增管理页面只需增加页面文件和模块项。
  • /admin/login/ 接入 GitHub OAuth 管理员登录,复用现有 PKCE 回调并在 D1 中区分 OAuth 用途;只有 Worker 变量 GITHUB_ADMIN_ID 对应的 GitHub 数字用户 ID 可以签发管理员会话。
  • 管理员 GitHub 登录继续使用现有 /api/auth/github/callback 回调地址,不需要为后台额外注册 OAuth 回调 URL;新增 /api/admin/auth/github/start 作为后台登录入口。

2026-09-15:Argon 评论能力移植第一阶段

  • 对照上游 Argon 的 comments.php、emotions.php、表情键盘模板和评论处理逻辑,确定采用 Hugo + Worker/D1 重构,不直接搬运 WordPress PHP。
  • 增加 Argon 风格表情/颜文字键盘,移植默认颜文字、Emoji、小恐龙和花朵贴纸,并将贴纸放入主题 /static/stickers/。
  • 评论表单增加 Markdown、匿名显示和悄悄话选项;匿名仅隐藏公开身份,后端仍保留 GitHub 归属以支持权限和治理。
  • D1 增加评论功能字段、私密线程所有者和 comment_edit_history 表;编辑前保存旧版本,新增历史查询接口。
  • Worker 在 API 层过滤私密评论和私密回复,增加 /api/comments/features 能力发现接口;邮件通知和 CAPTCHA 暂不接入,JavaScript 继续禁止执行。
  • 复核分页后将公开评论改为按根评论分页,回复树随根评论完整返回,避免跨页后把回复误渲染成新的主评论;total 仍保留全评论数量用于 meta 展示。
  • 完成本地 Worker API 烟测、CORS 预检和 JS/Worker 语法检查;Hugo 命令未加入当前 PATH,完整示例站构建待补。
  • 本次仅修改工作区,未提交、未推送、未部署。

2026-09-15:Argon 评论能力移植补全与安全回归

  • 补齐 Argon 风格长评论折叠、Markdown 图片预览、贴纸渲染、平台/浏览器图标化用户代理展示,以及管理员评论置顶接口和后台按钮。
  • 置顶仅允许管理员操作未删除、非私密的根评论;公开列表按“置顶 → 点赞数 → 时间”排序。
  • 修复点赞接口的后端授权缺口:无论是否允许访客评论,匿名请求都不能写入点赞;访客仍可读取数量并看到同样的按钮,点击时由前端提示登录。
  • 通过 node --check、git diff --check;本地 Worker 烟测通过:能力发现、评论读取、CORS 预检、非法 Origin 和无登录点赞均符合预期。
  • 使用临时本地 D1 数据验证“置顶根评论 + 回复随树返回 + 根评论分页”后已清理测试数据。
  • 示例站显式开启 Markdown、悄悄话和匿名显示选项,便于验收原 Argon 评论表单能力。
  • 邮件和 CAPTCHA 仍只保留关闭占位;没有执行 Git 提交、推送或生产部署。

2026-09-15:本地示例站构建与联调

  • 使用项目缓存中的 Hugo 0.154.4 完成示例站完整构建,生成 32 个页面和 351 个静态文件。
  • 确认文章页输出评论功能开关、分页结构、表情键盘入口和 comments-18 脚本;30 个本地贴纸资源随站点输出。
  • 启动 127.0.0.1:1315 静态示例站与 127.0.0.1:8787 本地 Worker;浏览器打开欢迎页,文章目录、暗色模式按钮和评论区域无控制台错误。
  • API 联调通过:评论读取和能力发现为 200,CORS 预检为 204,非法 Origin 为 403;带有效 CSRF 但未登录的评论和点赞请求均为 401 auth_required。
  • 仍待用户在已登录状态下手动验收编辑历史、匿名、悄悄话、表情、置顶、回复树和权限边界;本轮未提交、未推送、未部署。

2026-09-15:原版评论身份展示补齐

  • 对照原 Argon 评论格式,补回站主评论的“博主”标识和作者 GitHub 主页链接;链接继续限制为 HTTP/HTTPS 并使用新窗口安全属性。
  • Worker 返回 isAdminAuthor,前端仅作展示,不参与任何鉴权;重新构建并回归浏览器,评论区域和 GitHub 登录入口正常,控制台无错误。

2026-09-15:主题与 Worker 生产发布

  • 主题提交 9c7219c 已推送到 jiang068/Hugo-Theme-Argon 的 main 分支。
  • Cloudflare Worker argon-view-counter 已部署,生产版本 ID 为 dc277cdb-6d24-44c2-a999-ed775142afb5。
  • 通过 https://blog-view-counter.fufu.blog/api/comments/features 回归验证,评论能力发现接口返回 200,邮件和 CAPTCHA 仍为关闭占位。
  • 博客 gitlink 尚待更新到主题提交,完成后再由 GitHub Pages 工作流构建博客。

2026-09-15:评论表单视觉与交互微调

  • 修正表情键盘的明暗模式文字对比度:亮色模式使用深色正文,暗色模式使用浅色正文。
  • 按原 Argon 的顺序和间距重新对齐 Markdown、匿名、悄悄话、表情按钮;保留窄屏自动换行。
  • 为评论选项勾选框增加背景、边框、焦点光晕和勾选图标的平滑过渡,避免突兀跳变。

2026-09-15:评论环境信息与表情面板对齐原版

  • 将评论用户环境从 Font Awesome 字符改为安全创建的内联 SVG 图标,平台、浏览器和用户名保持同一行。
  • 将点赞按钮改为 flex 胶囊布局,明确分隔箭头与数量,保留原 Argon 的悬浮/选中状态。
  • 将评论底部改成独立 footer:复选项在左,表情按钮自动靠右、发送按钮紧随其后;窄屏自动换行。
  • 表情键盘按按钮上下可用空间自动选择向上或向下展开,并在窗口调整和页面滚动时重新定位,避免超出视口无法点击。
  • 已通过 JavaScript 语法检查、差异空白检查和 Hugo 示例站完整构建;本条变更待主题推送与博客 Pages 部署验证。

2026-09-15:评论环境行垂直对齐

  • 统一作者名、博主徽标、平台/浏览器名称和环境 SVG 图标的行内垂直对齐,修正图标视觉位置偏高的问题。

2026-09-15:恢复原 Argon 评论环境排版

  • 按原版评论源码恢复标题行的 inline-block 基线排版。
  • 恢复环境文字与 SVG 图标的原始字号、间距和垂直偏移,移除自定义 flex 居中规则。

2026-09-15:替换为原 Argon 环境 SVG

  • 直接采用参考源码中的 Windows、Edge、Android、Chrome 和 Linux SVG,不再使用简化重绘图标。
  • 保留原 SVG 的 viewBox、路径、渐变、颜色与内联变换;未知环境继续使用安全的本地回退图标。

2026-09-15:移除环境图标的额外覆盖

  • 原版 SVG 不添加自定义 class,恢复为直接子元素结构。
  • 恢复原版 .comment-useragent > svg 选择器,移除额外的 class 偏移和垂直对齐覆盖。

2026-09-15:收紧博主徽标

  • 保持“博主”文字字号不变,仅缩小徽标内边距,避免徽标外框过大。
  • 在保持上下高度不变的前提下,进一步收窄左右留白。
  • 将上下左右内边距统一为 3px,使徽标外框保持对称。
  • 悄悄话评论不再显示“博主”徽标,避免暴露作者身份。