更新日志
记录每一次迭代与改进
2026年8月
文章正文行内链接支持按目标域名展示品牌图标:GitHub/Gitee/百度/谷歌/腾讯/微信/MDN/npm 等常用域名的链接左侧带对应图标,一眼识别来源;风格与普通超链接一致,域名白名单可扩展
修复 Markdown 编辑器与正文语法显示:禁用 JetBrains Mono 程序连字,避免 :::/:// 等语法被渲染成「少字符」的假象
修复 Markdown 富组件渲染:Markdown Swiper 导航/分页作用域改到实例(不再干扰其它轮播);富组件水合改为挂载后移除占位灰框
修复页脚/内嵌播放器(APlayer TS 重构版):丢失的 HTML 转义导致 DOM XSS、异步歌词请求竞态导致「切走再回永久加载」、拖拽被打断导致进度/歌词停刷
修复全站多轮扫描发现的安全与真实 bug:后台写接口错误码透传(不再吞 403/404/400)、分类/标签/内容等接口防御性加固(参数类型收窄、分页限幅、外键冲突与记录不存在映射、预检防误删)、公开接口字段白名单
修复百度内容审核平台设置同步:AppID 不再是敏感字段(此前 GET 回显掩码、备份导出掩码导致不同步),导入备份可正确恢复;真实密钥仍掩码保护
修复主站 PWA 缓存预匹配并优化首页/胶囊标题(链接用站点域名 host);修复 mini 构建脚本(含子模块指针)
正文与列表渲染重构为复用组件/组合式(MarkdownBody、useMarkdownContent、ArticleCard、formatDate),文章/协议/分类/标签多页共用,行为保持一致、便于后续维护
站点与仓库统一命名 imqi1-cms;新增 /audit 体检 Skill;清理 21 个无引用的 Zod schema;沉淀多类踩坑记忆
搜索不再搜到不可见评论:评论检索只保留前台可见评论(留言板放行 + 仅已发布文章上的评论),草稿/隐藏文章上的评论不再命中结果、避免拼不出有效链接;无任何分类的文章评论详情链接兜底到 /content/uncategorized/<文章slug>
RSS 纯文本转换细化占位与排版:::: 容器/围栏代码块/表格/图片/音乐/仓库/折叠区块逐一格式化为中文占位(带语言、行数、行列数、标题、平台 id),卡片类改行间「<链接卡片:标题>」/「<外链卡片:标题>」格式(无标题仅占位);全文对中文与英文/数字相邻处自动补空格,占位与正文混排同时生效
修复页脚胶囊音乐「加载中」占位与「连续失败后隐藏」冲突:音频接口连续失败达上限(MAX_FAILURE_COUNT)后整颗胶囊连同加载占位一并消失(新增 isDisabled 状态,失败清零后恢复),不再出现加载中卡死的空壳
搜索功能大增强:新增「订阅和友链」「评论」「订阅文章」三类搜索,顶部 Tab 切换并同步 URL type 参数(支持浏览器前进/后退、直接改地址栏);评论结果附所在文章上下文并可锚点直达对应评论,留言板评论单独放行;订阅文章外链仅放行 http/https 防 RSS 投毒 XSS;搜索结果缓存 key 按类别区分(search:q:type),热门词不再跨类别串缓存
关于页站点统计新增「发布热力图」:按天聚合已发布文章与已审核评论数,支持按分类/标签维度筛选(新增 /api/heatmap 接口与 ActivityHeatmap 组件,星期标签/月份标签随年份切换)
后台管理缓存面板新增「清除搜索缓存」:一键清除自定义搜索结果缓存(search:* 前缀键精确匹配),不影响 Nuxt 页面/ISR 缓存
编辑器代码块升级为 lowlight 语法高亮:编辑态实时关键字着色、配色对齐前台 Shiki Islands 主题(亮/暗双主题),语言选择框保留;高亮走 ProseMirror decoration 不进文档模型,往返零差异
首页加载速度优化:英雄区与首载遮罩提升合成层(will-change),水合尾段主线程微任务洪峰不再让渐隐掉帧
页脚音乐播放器延迟到浏览器空闲时段初始化(requestIdleCallback + 1200ms),不再抢占首页加载关键路径;新增「音乐加载中」占位态,避免初始化前按钮位空缺
首页音乐面板改为首次激活时才挂载 APlayer,并移除 tiptap 手动分包——修复动态加载 APlayer 时被共享的 CJS 互操作 helper 牵连、整包拉取约 500KB Tiptap 的问题;就绪前显示加载占位符
RSS 输出改为 Markdown 正文转纯文本:新增 markdownToPlainText 管线,::: 自定义容器整块替换为「中文类型」占位(围栏代码块内的 ::: 当字面量),输出完整正文而非截断摘要,兼容所有阅读器
编辑器底部工具栏仅在把编辑器拖拽到高于默认高度(>720px)时才显示第二份,默认不再重复
修复编辑器链接输入状态继承问题:链接 mark 的 inclusive 改为 false,修复「建好链接后再输入的新文字永远继承链接、无法切回普通文本」
修复旅行地图切换视图后地图空白、放大后 POI 文字消失的问题:缩放上限改为 createCluster 建聚合时同步设置,避免「地图无点却允许深缩放」的窗口;底图 zooms 上限固定 20 保住高德 POI 标注层
修复图片分类白屏问题:实况照片(LivePhoto)视频元素改为按需挂载、播放结束/出错后卸载,修复部分浏览器 GPU 合成路径下残留 opacity:0 视频覆盖层盖住静态图导致的白屏
修复表情富文本输入框拖拽逻辑:直接按住单张表情拖动不再复制成图片 URL(覆盖浏览器原生 img 拖拽),实现真正的移动;外部纯文本拖入落在鼠标松手位置而非选区/末尾
修复导航栏按 Tab 时 tooltip 闪一下消失、焦点丢失的问题:禁用 floating-vue tooltip 自动聚焦(noAutoFocus)
修复热力图窄屏横向滚动时页面纵向抽搐:改用标准 Tailwind 间距类(gap-0.75 等)并加 overscroll-x-contain
关于页技能区块重构为四组:Agent 开发 / Python 开发 / 前端开发 / 其他技能,新增 LangChain、LangGraph、Nuxt、Pydantic、Docker、MySQL、Nginx、CI/CD 等 SVG 图标
MBTI 五维特质条改为滑块样式:主题色滑块 + 百分比标签 + 对立特质,对齐 16personalities 五维配色
后台 Markdown 编辑器从纯 textarea 整体重构为 Tiptap v3 所见即所得:粗体/斜体/标题/列表/代码块等标准语法即时渲染,::: 自定义容器渲染为不可编辑的可视化卡片,点击编辑按钮改原始源码
markdown 两段式分割器(markdownSplit.ts):::: 容器块永不进入 markdown 解析器,作为不透明原子节点保存原始全文,实现容器部分字节级往返保真;v-model 仍是 markdown 字符串,DB 存储格式不变
自定义容器节点的 Vue NodeView:按类型显示图标/标签/callout 变体色/源码预览,弹窗编辑原始 ::: 源码;代码块扩展叠加语言选择输入框(StarterKit CodeBlock 原本无改语言入口)
工具栏抽成独立组件 EditorToolbar.vue,顶部与底部各渲染一份(此前约 340 行 markup 复制两遍);光标进入表格时整条工具栏切换为行列增删/合并/拆分/删除
编辑器新增下划线按钮(Ctrl+U);为 13 个有快捷键的工具栏按钮在 title 提示中补上组合键(粗体 Ctrl+B、斜体 Ctrl+I、删除线 Ctrl+Shift+S、标题 Ctrl+Alt+1-6、引用 Ctrl+Shift+B、行内代码 Ctrl+E、代码块 Ctrl+Alt+C、链接 Ctrl+K、无/有序列表 Ctrl+Shift+8/7)
粘贴图片迁移到 ProseMirror handlePaste(同步拦截 + 异步上传,占位节点替换为真实 URL,挂起回写防占位 URL 落库);Mod-K 链接快捷键;空编辑器「开始写作…」占位提示
撤销/重做改用 StarterKit 自带 History,替代 textarea 时代的自研 useTextareaHistory 栈(该 composable 已删除)
编辑器外层 ClientOnly 包裹(disabled textarea 作为 SSR fallback);model↔doc 经 useDebounceFn(150ms) 防抖回写,聚焦时不回灌 + lastEmitted 防回环
2026年7月
评论输入框改造为 contenteditable 富文本组件(EmojiRichInput),表情渲染为内联图片、退格整张删除、不露出 :[key] 占位符
前台评论富文本编辑增强:自实现撤销/重做栈、Ctrl+A/C/V/X/Z/Y 快捷键、剪切、框内文字拖拽移动,并接入全站右键菜单(撤销/重做/剪切/复制/粘贴/全选/搜索)
服务端邮件通知把评论中的表情以 cid 内嵌附件形式发送(emoji-mail.ts),同一封邮件内重复表情自动去重
修复邮件标题、评论者名未做 HTML 转义导致的潜在 XSS(随邮件表情渲染一并修复)
最近评论接口识别并正确展示、链接留言板评论(不再要求分类关系与 status=1,链接走 /messages)
后台文章编辑器(MarkdownEditor)自管撤销/重做历史栈,工具栏新增撤回/重做按钮(栈空时自动灰显)
MarkdownEditor 快捷键:Ctrl+Z 撤回、Ctrl+Y/Ctrl+Shift+Z 重做、Ctrl+B/I/K 加粗/斜体/插入链接(中文输入法组字中不拦截)
修复 MarkdownEditor 工具栏按钮、图片粘贴走程序化改值导致原生 Ctrl+Z 撤不回的 bug
首页文章卡片链接重构,分类与标签可独立跳转,不再被卡片整体跳转冒泡
站点导航菜单项重构为 NuxtLink,借助 chunk 预取压缩点击后延迟
路由渐出时机提前到点击瞬间触发,修复点击后肉眼可见「等一下才渐出」
全局页面过渡新增纵向位移效果;首页、地图等全屏固定页跳过位移,避免破坏后代 fixed 定位
修复切换分类/标签时标题(menu/# 图标)被居中到屏幕中央、文章网格被误清空移除的问题(根因:旧 watch 用新 slug 误请求)
实况照片图片加载策略支持 lazy 属性动态切换懒加载/立即加载
实况照片静态图改用 cleanSrc 直接挂载,移除骨架屏占位,避免空 src 阶段渲染碎图图标
Firefox 不支持 HEVC 解码时,实况照片(含灯箱)静默退化为静态图
修复网易云等媒体/封面直链 http 被 CSP 与混合内容拦截(Firefox)的 bug,后端 meting 重定向统一升级为 https
页脚音乐播放按钮的进度条改为常驻显示,暂停时停在当前进度不再消失
EmojiParser 新增 size 尺寸档位,最近评论、后台表格、访客地图等紧凑场景渲染小尺寸表情
会话 ID 与登录令牌改用密码学安全随机源生成,消除可预测导致的会话劫持风险
登录接口加入 IP 限流与时延均衡,缓解暴力破解与用户名枚举
登录与账户信息接口收敛返回字段,不再回传内部登录令牌
系统初始化探测接口在已初始化后返回 404,避免被用于探测用户是否存在
前台友链申请与修改接口加入 CSRF 校验,防范跨站伪造提交
全站 CSRF 校验统一改为请求头携带,避免令牌出现在 URL、日志与 Referer 中
友链与订阅外链严格限制为 http/https 协议,杜绝 javascript:/data:等存储型跨站脚本
页面详情、随机文章等公开接口收敛返回字段,不再泄露内部与隐私信息
相关文章仅推荐有固定链接的内容,避免出现空链接死链
删除不存在的资源时返回 404,而非笼统的 500
首页数据改为按需查询,并精简后台类型定义,减少不必要的字段读取
支持通过 UPLOADS_DIR 自定义本地上传目录,将附件存储指向 .output 之外的独立路径,避免重新打包时已上传文件被清空;同时统一运行时资源(IP 库、验证码字体、WASM 等)的存储路径
完善 Docker 部署配置与运行时权限管理:自定义上传目录的卷挂载点自动跟随 UPLOADS_DIR,并优化容器内 node 用户对存储目录的写权限处理
优化 Dockerfile 构建流程与缓存策略,并自动化数据库初始化流程,首次部署时自动建表、写入默认设置与示例数据
修复 Docker 环境下 undici 依赖缺失导致的运行异常
启用 allowPublicKeyRetrieval 以解决 MySQL 8 连接失败的问题
移除未使用的依赖并优化脚本执行命令,加快安装与构建速度
新增运维脚本依赖管理与安装说明(bun run scripts:install),将较重的运维依赖从主项目拆分至 scripts/ 单独管理
小程序音乐支持完整歌单播放与切换,并新增实况照片(Live Photo)组件,点击静态图即可播放
修复小程序代码块图标字体显示为回滚字符(豆腐块)的问题:按需懒加载 Nerd Font 代码字体,仅在页面含代码块时加载,图标正常渲染
PWA 内联 workbox 运行时并支持缓存跨域资源,减少额外请求、提升离线可用性
小程序更新日志渲染支持行内 Markdown 与嵌套列表,展示更完整
小程序 API 新增 HMAC-SHA256 签名鉴权:请求需携带 X-Mini-Timestamp / X-Mini-Nonce / X-Mini-Sign 三个头,服务端按「方法+路径+时间戳+随机串」校验签名,时间戳偏差超过 ±300 秒视为过期,用定长比较防时序侧信道,挡住 curl 直连刷接口与评论机器人
修复验证码 svg2png WASM 文件加载路径:生产环境优先读构建产物 wasm/svg2png_wasm_bg.wasm,开发环境改用 require.resolve 按包解析定位 node_modules,不再依赖当前工作目录
移除 Prisma 迁移文件,改用统一的 SQL 初始化脚本(init-db.sql)建库
小程序升级到 2.0.0 版本,并重新选择了技术栈。新版小程序的技术栈使用uni-app (Vue 3 + Vite + TypeScript) ,UI 采用 wot-design-uni,原子化样式采用 UnoCSS。
404 页面新增 Singularity 黑洞背景效果(基于 WebGL ShaderToy)
修复地图 CDN 未配置时 CSP 拼接 undefined 的问题,补充地图交互样式
文章卡片改为封面全屏背景样式
优化图标按需加载策略,改进右键菜单与封面图
懒加载 Swiper 模块,直接动态导入 Swiper 具体模块文件以避免 barrel 整体打包
重构文件结构,移除冗余的 index.vue 与 index.get.ts 等路由文件
使用 v-scroll-reveal 指令替换旧的淡入动画实现
合并全局滚动监听至单一 rAF 调度器,减少滚动卡顿
修复 InspiraShaderToy 的 WebGL 上下文泄露:dispose 时断开 ResizeObserver 并移除 canvas 事件监听的 bug
修复文章页 MetingPlayer 子应用卸载时未 unmount,导致每次导航累积 Vue 子应用与 APlayer 实例的 bug
修复 image-loader 插件对已移除图片未取消观察,导致 SPA 导航时游离 img 引用常驻的 bug
修复文章页 Markdown 轮播 Swiper 实例卸载时未 destroy,泄露模块监听与 resize observer的 bug
修复关于页数字动画 RAF 循环与 initAnimations 递归 setTimeout 在卸载后仍执行的 bug
修复 APlayer 销毁时未清理 audio 事件、拖拽 document 监听与 skipTime/noticeTime 定时器的 bug
修复 useAudioPlayer 的 canplay 一次性监听在卸载时残留导致销毁后仍触发自动播放的 bug
移除 APlayer 全局 requestAnimationFrame polyfill 覆写,清理各组件未取消的定时器与死代码
地图组件卸载时主动调用 cluster.setMap(null) 触发聚合清理,不再单靠 map.destroy 兜底
2026年6月
引入 ESLint flat config 严格模式(含 stylistic 规则),修复全项目 lint 与 tsc 报错
建立独立 types 目录,统一 API 响应与组件类型定义,规范类型存放约定
统一 API 响应类型定义并优化类型推断,端到端类型走 Nitro InternalApi
APlayer 播放器从 JavaScript 重构为 TypeScript,补全类型定义
系统改造为单用户模式:移除用户管理总览与角色字段,账户设置页前置至原总览位置
新增数据库初始化脚本(db:init)与无用户探测接口 /api/auth/status
附件支持显示文件大小,上传时记录字节数并兼容历史记录
移除 Prisma 迁移与种子数据,改用幂等 SQL 脚本同步数据库结构
清理项目死代码:移除重复端点、未使用组件/工具函数与遗留迁移脚本
修复地图组件多余的 @amap/amap-jsapi-types 导入导致的生产构建报错
修复组件中的 Tailwind CSS 警告与 error 报错归一化
得益于全面的类型重构、死代码移除和用户模块精简,现在server的打包体积从23MB减少到14MB(压缩包)
重构更新日志数据模型,一条记录可承载多个更新条目并按类型分类展示
后台更新日志新增 JSON 文件一键导入能力
补充更新日志导入接口类型定义
首页更新日志展示调整为单条记录聚合展示
新增远程重启宝塔面板服务与清空 Redis 缓存接口
修复后台数据加载未完成时误显示暂无内容的问题
博客网络地图支持显示归属地和 ISP 信息
修复地图页面切换时重复缩放的问题
移除分类页骨架屏动画延迟,优化卡片间距与容器宽度限制
优化图片分类布局,现在图片分类每个图片更紧凑,分类按钮固定在左下角
修复留言板不支持评论锚点定位与高亮闪烁提示的bug
调整地图视图切换按钮的响应式样式
优化内容卡片布局,修复链接过长时图标不显示、文本溢出的bug
访客分布点改为显示头像(支持 Gravatar / Cravatar / WeAvatar,加载失败降级为首字母圆盘),不再只显示一个小圆点
优化地图渲染性能,新增标记 DOM 复用机制,解决缩放与聚散切换时头像闪烁、重复加载的问题
修复地图页 XSS 风险
修正访客分布聚合点数字,统一显示聚合点内访客人数
修正我的足迹省市统计,改为按坐标最近邻归类
IP 地址库由纯真 QQWry 切换为 ipdb,重写 IP 解析逻辑与数据同步脚本
优化主题切换颜色过渡,View Transition 期间禁用元素自身 transition,避免颜色滞后,顺便提升了亮暗模式切换的性能
移除评论提交后 3 秒的延迟,改为立即刷新列表,优化评论列表刷新时的布局偏移,增加静默刷新模式
修正部分城市坐标数据(安庆、烟台、昆明、西安等)
新增地图入口胶囊组件,在首页、分类、标签、留言、友链等页面展示旅行地图入口
文章版权区复用地图胶囊,支持按旅行地点逐个跳转
分类页、标签页、首页封面展示关联地图点数量角标
新增高德地图前端加载器与服务端代理配置
修复评论锚点 SPA 导航时的 scrollBehavior 告警
评论验证码由 SVG 明文改为 PNG 栅格化输出,降低被解析破解的风险
补充 robots、sitemap 与相关 API 字段
新增高德地图 JS API 依赖与环境配置
新增旅行地点数据库模型与管理接口
新增文章与旅行地点多对多关联功能
新增地图中心页、访客分布与博客网络地图
评论区新增反垃圾蜜罐与人机验证
优化搜索页请求逻辑与导航样式
修复评论表单字段校验与响应式问题
优化音乐播放容错机制,失败计数阈值下调至 3 次,卡顿或加载失败时自动停用并重置,播放成功重置计数
目录导航改为滑动指示框高亮,非激活态增加内嵌药丸悬浮效果
统一资源处理逻辑,强化 XSS 防护与资源路径校验
移除默认管理员种子数据,提升部署安全性
优化导航菜单交互(修复移动端溢出)与站点地图展示
根据站点 CDN 配置动态控制构建流程,支持无 CDN 部署模式
减少打包体积
重构音频播放器状态管理,保证 SSR 请求隔离防止状态串号
统一封面解析逻辑,修复因解析不一致导致封面显示缺失
优化友情链接页面和关于页面
实况照片支持移动端常驻播放按钮:点击后隐藏按钮并播放视频,播放结束自动恢复显示
将文章正文中的实况照片渲染逻辑提取为公共组件,与封面、列表页保持一致
新增 site.config.ts 全站配置中心,统一管理站点元数据、域名与各页面 SEO 文案
引入 uncategorized 虚拟分类,未分类的文章也能通过路由正常访问
增加免 nginx 的静态资源跳转,部署更灵活
列表页支持多封面图片及角标展示
代码块支持基于文件类型的动态语言图标
完善全站无障碍属性与键盘交互(a11y):新增“跳转到主要内容”、ARIA 标签、键盘导航支持
修复图片分类与首页中实况照片点击播放按钮会触发链接跳转的问题
修复首页生产环境偶发的 SSR 水合错误(文章列表相对时间、canonical 链接在服务端与客户端不一致)
修复关于页技能图标悬浮样式错位及统计项显示逻辑
修复严格模式下的多个类型安全问题和潜在空指针错误
修复导航菜单点击后未收起的问题
修复音频播放器随机歌曲可能的越界风险
修复Fancybox组件全局销毁导致页面切换时灯箱插件失效的bug,现在使用Fancybox.unbind而不是Fancybox.destroy
后台订阅源新增编辑功能
归档页面新增折叠交互,文章过多时页面不会过长
更新日志支持通过侧边类别筛选
我的订阅页面支持选择某一具体订阅者查看详细文章
优化了搜索功能,由于现在网站文章数量不多,暂时使用LIKE关键字查询,并使用Redis做搜索结果的缓存。
重构首页数据查询,修复 N+1 查询问题
优化首页大标题字体大小
友情链接页面新增一键通过功能
优化了修改友情链接的功能
页面首次加载时可以点击以直接加载内容
后台页面现在可以区分一个友链申请是新增的还是修改已有链接的
2026年5月
统一页面加载时间为0.3秒
优化Service Worker和Workbox设置
优化全局右键菜单,新增v-context-memu指令,可在vue组件内自由定义右键菜单内容
优化亮色模式切换性能,为firefox的亮暗模式切换做好回退
友情链接页面新增加入的博客组织模块
修复评论间隔设置总为60秒的bug
修复移动端协议页面渐入动画不加载的bug
修复移动端MBTI组件溢出的bug
2026年4月
分类页面新增骨架屏效果
优化用户获取和站点信息获取,由每个页面单独请求改为全局复用
修复评论组件 IP 不能正确存储到数据库的 bug
增强 API 端点 Referer 校验
移除未使用的头像预加载
更新 Shiki 代码高亮主题,采用 Jetbrains Island 主题
系统后台增加最新评论显示、热门文章显示、详细统计数据
优化实况照片的显示效果
文章正文新增瀑布流图片和小卡片链接
修复了生产环境Redis缓存不生效的bug
移除了主页的二维码显示
更新日志支持输入更长的内容,支持简易 Markdown 解析
修复相关文章总是显示最新3篇文章的bug
本次更新完成了缓存策略优化(Redis配置与ISR缓存)、组件性能改进(修复内存泄漏、优化渲染)以及本站信息卡片模块新增。
refactor(nuxt): 重构Nitro存储配置与ISR缓存策略,重构storage配置,分离redis、cache与fs存储点
feat(feed): 缓存并优化 RSS Feed 生成逻辑
fix(components): 修复组件卸载时的内存泄漏问题;修复 FrontNotification 事件监听器未正确移除的问题;为 LivePhoto 组件添加定时器清理和 Blob URL 释放;优化内容页面 DOM 事件监听器的清理逻辑
refactor(首页): 优化数据加载,合并API请求并添加缓存策略,优化分类文章查询,减少数据库往返
增加前台通知系统,支持显示系统通知和消息
优化邮件通知功能,增加评论锚点跳转
实现实况照片功能,支持在文章中嵌入实况照片,鼠标悬停或点击可播放动态效果
订阅源管理页面增加操作成功提示,包括添加、删除、手动更新订阅源等操作的成功和失败提示
后台管理页面增加管理员快捷入口,支持快速访问常用功能
实现后台响应式布局
优化后台管理功能与交互体验
增加操作成功提示
完善全站 SEO 元信息配置,包括标题、描述、关键词等
增加社交媒体分享卡片配置,支持 Open Graph 和 Twitter Card
实现 XML 站点地图功能
集成 PWA 功能,支持离线访问和安装到主屏幕
支持 PWA 动态图标功能,根据设备主题自动切换图标样式
配置 Nginx 静态资源重定向至 CDN,优化网站加载性能
集成 CDN 支持到 PWA 配置中
优化主题切换性能
优化构建配置,增加 Node 内存限制
实现全局右键菜单功能
集成 Floating-Vue 实现工具提示交互
实现滚动条主题定制功能
实现 Header 基于滚动方向的内容切换与动效
优化移动端底部按钮组交互与布局
分类页面增加分页功能
优化分类创建流程,重构路由结构
重构标签系统与分类模型,支持多对多关联
文章管理页面增加预览功能,支持在新标签页中预览文章
文章页面底部增加最近文章展示,展示最新的4篇文章
实现代码块文件名显示功能,优化编辑器样式
实现评论同步主楼与回复框的用户信息功能
实现评论显示 IP 属地与运营商信息功能
优化评论表情解析逻辑
优化邮件通知功能,增加评论锚点跳转
增加 CSRF 安全校验,保护后台管理接口免受跨站请求伪造攻击
优化登录认证流程,修复 Dialog 状态管理问题,提升系统安全性