wangairnan
|
13ad202924
|
chore(web): 重新生成 package-lock 统一官方源并更新次要依赖
|
2026-09-08 23:05:15 +08:00 |
|
wangairnan
|
dda5ad1e5a
|
fix(web): 登录表单补充隐藏用户名字段以兼容 Safari 密码管理器
Safari/WebKit 在明文 HTTP 下不保存 Secure Cookie(无 localhost 豁免,
Chrome/Firefox 有),__Host- 会话被静默丢弃导致登录成功后仍弹回登录页;
本机调试需以 --dev 启动(pn_session 无 Secure,loopback-only 守卫,§7.3-3)。
纯密码表单另令 Safari 保存密码弹窗要求手动输入用户名:补充 sr-only 用户名
输入(autoComplete=username,只读预填 admin),弹窗不再阻断登录。
新增 login.test.tsx 回归测试锁定用户名/密码字段的自动填充标记。
|
2026-09-08 21:42:52 +08:00 |
|
wangairnan
|
51f528f516
|
feat(web): 重构 9 页面界面并统一设计令牌与响应式布局
- index.css 以 Tailwind 4 @theme 落地设计令牌,全部页面按新设计稿重写
样式:首页/笔记详情/标签页/登录/后台列表/编辑/回收站/设置/404
- Layout 重构导航与主题切换;新增 Toast 轻提示组件
- 移除 vite 手动 codeSplitting:分组 chunk 会被提升进入口静态依赖并对
HTML 发出 modulepreload,lazy 路由的 CodeMirror 在所有页面被预加载
(Lighthouse unused-javascript 549KiB 的根因)
- vite dev 代理补 changeOrigin:false,保留浏览器原始 Host,避免后端
Origin 校验误判跨源 403
|
2026-09-08 21:41:05 +08:00 |
|
wangairnan
|
b94e9b1721
|
fix(web): 修复图片上传、自动保存竞态、登录竞态并统一失效公共缓存
FormData 不强设 Content-Type(P1-2),补 api 客户端回归测试; 自动保存成功仅失效列表与公共键,防详情 refetch 回滚输入(P1-4); login/logout 以请求序号丢弃迟到 /api/me 响应,401 统一回调跳登录(P2-15); 首页不硬编码 page_size,写操作后统一 invalidatePublic,TagPage 补 error 分支(P2-15)。
|
2026-09-08 17:32:57 +08:00 |
|
wangairnan
|
27ec9badf2
|
前端构建告警清理:happy-dom 替代 jsdom、批准 esbuild 安装脚本、CodeMirror 与重路由懒加载分包
|
2026-09-08 17:01:36 +08:00 |
|
wangairnan
|
e9316c9169
|
前端:React 19 + Vite 8 + Tailwind 4 博客与管理后台 SPA
- 渲染管线(§8.2):react-markdown + remark-gfm + rehype-sanitize
(GitHub schema 扩展 hljs class 与 checked)+ rehype-highlight 纯 class
高亮;链接强制 target=_blank + rel=nofollow noopener noreferrer;
schema 快照与恶意 Markdown 冒烟测试(vitest 6 用例)
- 编辑器:CodeMirror 6 源码编辑 + 分屏实时预览 + 工具栏 +
粘贴/拖拽图片上传;slug 首存定稿(冲突 409 就地高亮)、
摘要留空自动截取、2s 防抖自动保存
- 页面:博客首页(置顶/分页/标签云)、详情(面包屑/上一篇下一篇)、
标签页、登录、管理列表/回收站/设置/改密、404
- lib:api 客户端(统一包络 + 内存态 CSRF,禁 localStorage)、
AuthContext(/api/me 重取)、暗色主题(class 切换 + 系统跟随)
- index.html 内嵌 Go template 占位符供服务端 meta 注入;
vite base 固定 '/'(防深链白屏);/api 代理 127.0.0.1:8080
|
2026-09-08 08:14:52 +08:00 |
|