服务端权威存储
Go + MariaDB 保存账号与文章,换设备登录即恢复;本地 Room 仅作读缓存与离线草稿。
邮箱找回密码
绑定邮箱 → SMTP 验证码 → 重置密码,10 分钟有效、60 秒冷却、错误次数限制。
严格权限模型
JWT 鉴权 + 按用户隔离;改密后旧令牌立即失效;私密文章对他人一律 404。
块级编辑器
标题/引用/列表/代码/图片/视频/音频/分割线,撤销重做与自动草稿。
自研代码高亮
24 种语言词法高亮,不依赖 WebView,光标与输入法稳定。
媒体上传
选图即上传,服务端校验内容类型并落盘,正文引用公网 URL。
接口与架构
# 客户端启动读取版本;所有写接口需 Authorization: Bearer <JWT>
GET /api/v1/version
POST /api/v1/auth/register { username, displayName, email?, password }
POST /api/v1/auth/login { account, password } → { token, user }
POST /api/v1/auth/password/forgot { account } → 202 { cooldown, expiresIn }
POST /api/v1/auth/password/reset { account, code, newPassword }
POST /api/v1/auth/email/bind { email } → 202
POST /api/v1/auth/email/verify { email, code } → { user }
GET /api/v1/posts ?q=&page=&size=
GET /api/v1/posts/mine ?status=DRAFT|PUBLISHED
POST /api/v1/posts { id?, title, contentJson, plainText, tags, visibility, status }
POST /api/v1/media multipart file → { url }
GET /api/v1/health { status, db, mail }
服务端:Go 1.23 + MariaDB 11.8 + JWT(HS256) + bcrypt(cost 12) + net/smtp,systemd 托管,nginx 反代。