fix(comments): 悄悄话允许管理员发表 + 邮件标题优先用实时标题;返回顶部改 UIkit 同款动画
- comments.ts: 去掉旧匿名语义遗留的 !admin 前置条件 —— 博主(登录态)发的悄悄话 以前被忽略标志、入库 is_anonymous=0 变成公开评论 - 邮件标题改用本次请求带来的 page_title(前端 .Title 总是最新),D1 pages.title 仅兜底:存量脏数据 /comment.html 曾存成字面量 "留言",邮件渲染出《"留言"》 (线上已清洗 17 行带引号标题 + 3 篇被污染成「留言」的文章页标题) - 返回顶部:CSS 挂类+scrollTo 同帧执行会被浏览器按旧计算样式瞬移("一下子就上去"), 改 UIkit scrollIntoView 同款 rAF + 余弦 ease-in-out + 40*dist^0.375 时长(上限 1.2s), 滚轮/触摸打断、reduced-motion 瞬移;main.css 移除 .css-smooth-scroll
This commit is contained in:
1 parent
4fa592c11c
commit
f7e0596218
3 files changed
+34
-43
No files matched your search
@@ -429,10 +429,11 @@ export async function createComment(ctx: Ctx): Promise<Response> {
|
||||
return fail(403, 'Admin access required', { need_login: true });
|
||||
}
|
||||
|
||||
// 匿名评论:真实身份只留在 users 表(回复通知照发、自动填充不受污染),
|
||||
// 对外一律显示「匿名」。管理员身份本来就不是匿名的,忽略标志。
|
||||
// 悄悄话评论:只藏内容、身份照常显示,管理员同样可以发(2026-10-05 踩坑:
|
||||
// 这里以前是旧「匿名藏身份」语义,带 !admin 把管理员的悄悄话标志整个忽略,
|
||||
// 导致博主发的悄悄话入库 is_anonymous=0、内容对公众可见)
|
||||
const anonymous =
|
||||
!admin && (body.anonymous === true || body.anonymous === 1 || body.anonymous === '1' || body.anonymous === 'true');
|
||||
body.anonymous === true || body.anonymous === 1 || body.anonymous === '1' || body.anonymous === 'true';
|
||||
|
||||
// 匿名用户:按 name+email 找或建
|
||||
let author = user;
|
||||
@@ -517,7 +518,11 @@ export async function createComment(ctx: Ctx): Promise<Response> {
|
||||
parentAuthor,
|
||||
siteName,
|
||||
siteUrl,
|
||||
pageTitle: page.title || pageTitle,
|
||||
// 标题优先用本次请求带上来的(前端 artalk.html 传 .Title,总是最新、
|
||||
// 干净);pages.title 是「首次评论时建页」落库的存量值,可能是历史
|
||||
// 脏数据(例:/comment.html 曾存成字面量 "留言",邮件就渲染成
|
||||
// 《"留言"》)。存量仅在本次没带标题时兜底。
|
||||
pageTitle: pageTitle || page.title,
|
||||
pageUrl: pageAccessibleUrl(pageKey, siteUrl),
|
||||
});
|
||||
} catch (e) {
|
||||
|
||||
Reference in new issue
Block a user