feat: 新增评论框提示文案自定义功能并优化侧边栏排序

- 新增评论框提示文案(placeholder)自定义功能,支持在后台设置
- 更新文档:重命名“点赞开关”为“功能开关”,调整侧边栏排序
- 优化前端组件,统一处理评论表单和回复编辑器的提示文案
- 修复CSS样式,确保操作按钮始终可见
This commit is contained in:
anghunk
2026-02-04 14:01:48 +08:00
parent b304f52ceb
commit b8550848d7
15 changed files with 769 additions and 710 deletions

View File

@@ -25,10 +25,15 @@ export const updateFeatureSettings = async (c: Context<{ Bindings: Bindings }>)
typeof body.enableArticleLike === 'boolean'
? body.enableArticleLike
: undefined;
const rawCommentPlaceholder =
typeof body.commentPlaceholder === 'string' ? body.commentPlaceholder : undefined;
const commentPlaceholder =
rawCommentPlaceholder !== undefined ? rawCommentPlaceholder.trim() : undefined;
await saveFeatureSettings(c.env, {
enableCommentLike,
enableArticleLike
enableArticleLike,
commentPlaceholder
});
return c.json({ message: '保存成功!' });

View File

@@ -2,10 +2,12 @@ import { Bindings } from '../bindings';
export const FEATURE_COMMENT_LIKE_KEY = 'comment_feature_comment_like';
export const FEATURE_ARTICLE_LIKE_KEY = 'comment_feature_article_like';
export const FEATURE_COMMENT_PLACEHOLDER_KEY = 'comment_feature_placeholder';
export type FeatureSettings = {
enableCommentLike: boolean;
enableArticleLike: boolean;
commentPlaceholder?: string;
};
export async function loadFeatureSettings(env: Bindings): Promise<FeatureSettings> {
@@ -13,9 +15,9 @@ export async function loadFeatureSettings(env: Bindings): Promise<FeatureSetting
'CREATE TABLE IF NOT EXISTS Settings (key TEXT PRIMARY KEY, value TEXT NOT NULL)'
).run();
const keys = [FEATURE_COMMENT_LIKE_KEY, FEATURE_ARTICLE_LIKE_KEY];
const keys = [FEATURE_COMMENT_LIKE_KEY, FEATURE_ARTICLE_LIKE_KEY, FEATURE_COMMENT_PLACEHOLDER_KEY];
const { results } = await env.CWD_DB.prepare(
'SELECT key, value FROM Settings WHERE key IN (?, ?)'
'SELECT key, value FROM Settings WHERE key IN (?, ?, ?)'
)
.bind(...keys)
.all<{ key: string; value: string }>();
@@ -47,9 +49,12 @@ export async function loadFeatureSettings(env: Bindings): Promise<FeatureSetting
const enableArticleLikeRaw = map.get(FEATURE_ARTICLE_LIKE_KEY);
const enableArticleLike = enableArticleLikeRaw !== '0'; // Default to true if missing or '1'
const commentPlaceholder = map.get(FEATURE_COMMENT_PLACEHOLDER_KEY);
return {
enableCommentLike,
enableArticleLike
enableArticleLike,
commentPlaceholder
};
}
@@ -79,6 +84,10 @@ export async function saveFeatureSettings(
? '1'
: '0'
: undefined
},
{
key: FEATURE_COMMENT_PLACEHOLDER_KEY,
value: settings.commentPlaceholder
}
];