feat: 新增贴纸系统,重构评论编辑器与内容处理

1. 新增多平台贴纸库:贴吧、微博、知乎、小红书、抖音、B站共500+贴纸,搭配颜文字贴纸
2. 实现贴纸选择器面板,支持分类浏览、键盘导航和懒加载
3. 重构评论内容渲染:替换旧的@提及高亮逻辑,新增HTML净化与双向兼容
4. 重构评论编辑器为Tiptap富文本版本,支持表情插入、格式编辑
5. 优化评论编辑体验,修复滚动位置保留问题,调整评论区UI样式
6. 移除旧版EmojiPicker工具类,新增贴纸数据管理模块
This commit is contained in:
2026-08-08 02:24:04 +08:00
parent 1550ccb693
commit 536707f812
203 changed files with 3313 additions and 336 deletions

View File

@@ -0,0 +1,24 @@
import type { Sticker } from './index';
import { getAllStickers } from './emojiData';
import { KAOMOJI_STICKERS } from './kaomoji';
/** 热门贴纸 — 从各平台精选 */
const HOT_KEYWORDS = [
'笑哭', '开心', '大笑', '哈哈', '捂脸', '捂嘴', '飙泪笑',
'酷', '怒', '哭', '大哭', '生气', '惊讶', '尴尬',
'真棒', '赞', '666', '耶', '爱', '害羞', '思考',
'滑稽', '吃瓜', '调皮', '发呆', '机智',
];
/** 热门贴纸懒加载:合并所有平台后按关键词筛选 */
export async function loadHotStickers(): Promise<Sticker[]> {
const allEmoji = getAllStickers();
const all = [...allEmoji, ...KAOMOJI_STICKERS];
return all
.filter((s) => {
if (s.category === '颜文字') return true;
return s.aliases?.some((a) => HOT_KEYWORDS.includes(a)) || HOT_KEYWORDS.includes(s.name);
})
.slice(0, 30)
.map((s) => ({ ...s, category: '热门' as const }));
}