功能总览
OAuth2 单点登录
在博客选型阶段,是否支持单点登录(SSO)是我评估的核心指标之一。 我希望统一维护用户认证服务,让「轻雪」旗下各业务共享同一套用户数据, 实现多系统统一认证。
目前需要身份认证的场景主要有两类:
博主本人登录后台管理
访客使用互动功能(点赞、评论等)
评论功能
市面上既有内置评论模块的方案,也有接入 Disqus、Gitalk 等第三方服务的做法。 为了方便用户数据管理,我选择把评论直接集成到博客本体。
理论上可以把「评论」拆成独立微服务,再复用博客的用户系统做鉴权, 但小项目引入额外链路反而增加复杂度,因此没有进一步拆分。
RSS 与 Sitemap
作为内容管理系统,SEO 基础设施必不可少。 尽管今天还在用 RSS 的读者不多,但为了让真正关心内容的人能够自由订阅, 我依然选择同时输出 RSS 与 Sitemap。
富文本编辑器
早期计划让用户在外部 Markdown 编辑器写完再粘贴到文本框, 但为了自动保存草稿、一键发布等体验,最终还是内置了编辑器。
技术选型采用可高度定制的 mdx-editor, 也曾对比过 vditor 等方案,综合扩展性后敲定当前实现。
其实这是之前写的,现在已经迁移到tiptap了,部分还是会员制组件,续费太贵了
多语言 / 国际化 / 本地化
既然项目已开源,UI 只支持一种语言显然不够友好。 本地化已成为我所有项目的默认配置。
框架选用 next-intl,遗憾的是 VS Code 的 i18n 插件暂未兼容, 导致编写多语言字段时缺少智能提示,目前只能靠手工维护。
key: val