From f16f5839780fbffedbd82959fe09a594b726b225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=81=E5=86=9C=E9=98=BF=E6=A5=A0?= Date: Tue, 8 Sep 2026 21:42:52 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=A1=A5=E5=85=85=20README=20=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E5=8A=9F=E8=83=BD=E3=80=81Safari=20=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=B3=A8=E6=84=8F=E4=BA=8B=E9=A1=B9=E4=B8=8E=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 功能清单补「界面」条目:9 页面响应式 SPA 与三态主题 - 开发模式说明为何明文 HTTP 必须带 --dev(WebKit 无 Secure Cookie localhost 豁免)及生产 HTTPS 的自动加固行为 - 架构树展开 web/ 前端子目录(pages/components/lib) --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 2ce1e11..bbff514 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ - **博客**:首页(置顶优先 + 分页 + 标签云)、详情(上一篇/下一篇)、标签页、RSS、sitemap、SEO meta 注入(仅公开内容) - **管理**:单管理员口令登录(Argon2id)、会话 7 天滑动续期(CSRF 轮换保持不变)、防爆破限流(per-IP + per-账号)、改密 - **回收站**:删除 = 软删除,30 天内可恢复,`gc` 到期物理清除 +- **界面**:9 页面响应式 SPA(React 19 + Tailwind 4),深色/浅色/跟随系统三态主题 - **运维**:`init` / `passwd`(重设口令并吊销全部会话)/ `start` / `backup`(在线一致快照)/ `gc`(默认 dry-run)/ `version`(亦可 `-v`) ## 快速开始 @@ -39,6 +40,8 @@ make build cd web && npm install && npm run dev # /api 代理到 127.0.0.1:8080 ``` +> **为什么必须带 `--dev`**:明文 HTTP 下 Safari/WebKit 不保存 `Secure` Cookie(Chrome/Firefox 有 localhost 豁免,Safari 没有),不带 `--dev` 时 `__Host-` 会话被静默丢弃,Safari 登录成功后仍会被弹回登录页。`--dev` 改用无 `Secure` 的 `pn_session` Cookie 并强制仅监听 loopback(§7.3-3);生产走 HTTPS 不带 `--dev`,自动恢复 `__Host-` + `Secure` 完整加固。 + 忘记口令(CLI 可达即具备服务器权限,可直接重设;重设后全部会话被吊销): ```bash @@ -87,6 +90,9 @@ internal/middleware/ 安全头 / 日志 / 限流 / Origin 校验 / MaxBytes internal/httpapi/ 路由与 handler(公共 / 认证 / 管理 / feed) internal/webui/ go:embed 前端产物 + SPA fallback + index.html meta 注入 web/ React 19 + Vite + Tailwind 4 前端 +├─ src/pages/ 9 页面:首页 / 笔记详情 / 标签页 / 登录 / 后台列表 / 编辑 / 回收站 / 设置 / 404 +├─ src/components/ Layout(导航与主题切换)、Editor、MarkdownViewer、Toast +└─ src/lib/ api(CSRF 注入)/ auth(会话上下文)/ theme(三态主题)/ sanitize / invalidate deploy/ systemd 单元 ×3 + Caddyfile ```