30 Commits

Author SHA1 Message Date
胡旭 58c27f96bf fix: validation schema 添加 coverImage 字段(修复封面图无法保存) 2026-06-25 09:37:08 +08:00
胡旭 5ac3617a9e chore: 添加 .npmrc 允许 Prisma build scripts 2026-06-25 09:10:03 +08:00
胡旭 a4c265d503 chore: 移除 Docker 相关配置 2026-06-25 09:00:04 +08:00
胡旭 159ec69d3d fix: runner 阶段安装 openssl(Prisma 检测需要) 2026-06-25 08:57:40 +08:00
胡旭 df9dee453f fix: runner 阶段重新 prisma generate(匹配 OpenSSL 版本) 2026-06-25 08:51:27 +08:00
胡旭 30823e9926 fix: AiAssistant selectedText 可选链修复 2026-06-25 08:36:27 +08:00
胡旭 5e129fda86 fix: 改用 node:22-slim(Debian),去掉 Alpine openssl 依赖
Alpine 包索引 TLS 错误导致 openssl 安装失败。
Debian slim 镜像自带 OpenSSL,无需额外安装。
同步修改 addgroup/adduser 为 Debian 语法。
2026-06-25 08:31:16 +08:00
胡旭 0268048c62 fix: 去掉 start.sh,CMD 内联启动逻辑(彻底解决权限问题) 2026-06-25 08:21:32 +08:00
huxu 707d065edb feat: AI 写作助手重构 — 右侧面板、选中文本、撤销、生成摘要/标题
- AiAssistant 改为右侧粘性面板,按文本处理/翻译/智能生成分组
- 支持选中文本局部处理(未选中时处理全文)
- 替换/追加内容后支持撤销恢复
- 新增「生成标题」「生成摘要」按钮,结果可一键填入表单
- 编辑器最小高度从 300px 提高到 500px
- admin layout 去除 max-w-5xl 限制,充分利用宽屏空间
- 添加 .env.example 模板,.gitignore 放行
- package.json 添加 @tailwindcss/oxide-win32-x64-msvc optionalDependencies(兼容 Windows)
2026-06-24 20:06:49 +08:00
胡旭 bf76975000 fix: start.sh 在 chown 之前 COPY(确保 nextjs 用户可读) 2026-06-24 17:29:08 +08:00
胡旭 57bbf1fece fix: 去掉 chmod(sh 执行不需要 +x) 2026-06-24 17:24:42 +08:00
胡旭 38f2a9823b fix: sitemap 加 force-dynamic + try-catch(构建时不查数据库) 2026-06-24 17:20:01 +08:00
胡旭 89f8d6e223 fix: 所有数据页面加 force-dynamic(解决构建时预渲染空数据缓存)
构建时数据库为空,Next.js 缓存了空页面。
加 force-dynamic 强制每次请求时从数据库读取。
2026-06-24 17:14:26 +08:00
胡旭 92d190a081 fix: prisma db push 移到启动时执行(保留用户数据)
构建时执行会覆盖用户拷贝的数据库文件,
改为容器启动时执行,已有数据则跳过。
2026-06-24 16:48:07 +08:00
胡旭 e6839da566 fix: Docker 构建前 prisma db push 创建表 2026-06-24 16:38:46 +08:00
胡旭 faa17f0ccd fix: Docker 安装 openssl(Prisma 引擎需要 libssl.so.1.1) 2026-06-24 16:30:16 +08:00
胡旭 814729df02 fix: Docker runner 拷贝完整 node_modules(pnpm .prisma 在 .pnpm 内) 2026-06-24 16:22:37 +08:00
胡旭 7fbfaa9572 fix: Docker 改用 pnpm 9,绕过 pnpm 11 build scripts 限制
pnpm 11 的 onlyBuiltDependencies 配置在 Docker 中始终不生效,
改用 npm 全局安装 pnpm 9 彻底解决。
2026-06-24 16:10:16 +08:00
胡旭 3bebf669bd fix: pnpm 11 onlyBuiltDependencies 移到 .npmrc
pnpm 11 不再读取 package.json 中的 pnpm 字段,
需要在 .npmrc 中配置 onlyBuiltDependencies。
2026-06-24 16:01:17 +08:00
胡旭 5e77c0fa61 fix: Dockerfile 移除多余的 .npmrc 拷贝 2026-06-24 15:56:00 +08:00
胡旭 56cd507e81 fix: pnpm 11 build scripts 允许 Prisma/sharp 等包执行
pnpm 11 默认阻止 build scripts,导致 Prisma Client 生成失败。
在 package.json 中添加 pnpm.onlyBuiltDependencies 白名单。
2026-06-24 15:55:40 +08:00
胡旭 6de0f6ad3d fix: Docker 基础镜像改为 node:22-alpine(pnpm 11 需要 node:sqlite) 2026-06-24 15:45:05 +08:00
胡旭 9cc923e868 chore: 容器端口改为 8090 2026-06-24 15:40:31 +08:00
胡旭 2f1a7c906d chore: 添加 Docker 部署配置
- Dockerfile: 多阶段构建(deps → build → runner)
- docker-compose.yml: 一键部署,数据持久化到 volume
- next.config.ts: output standalone 模式
- .dockerignore: 排除 node_modules、.next、dev.db
2026-06-24 15:25:37 +08:00
胡旭 43e1c2f61d feat: 写作体验优化 + 封面图 + AI辅助写作 + 博客分页
写作体验优化:
- 自动保存草稿到 localStorage(debounce 2s,刷新不丢内容)
- 浏览器原生全屏专注写作模式
- Markdown 编辑模式(左右分栏,实时预览)
- 快捷键:Ctrl+S / Ctrl+Enter 保存,ESC 退出全屏

封面图功能:
- PostForm 新增封面图 URL 输入 + 实时预览
- BlogList 文章卡片显示封面缩略图
- PostContent 文章详情页显示封面大图

AI 辅助写作:
- OpenAI 兼容接口,SSE 流式返回
- 8 种预设操作:润色、扩写、精简、续写、纠错、翻译、摘要
- 自定义指令输入,结果可复制/替换/追加

其他:
- 后台文章列表改为一页10篇
- 前台 /blog 页面添加分页功能(一页10篇)
2026-06-24 15:22:03 +08:00
胡旭 18e915bcbb fix: 修复后台文章计数为0 + 分类编辑补全描述字段 + CSP放行外部图片 + 更新关于页描述
- 文章管理:计数请求补 page=1 参数,命中分页接口返回正确的 total
- 分类管理:编辑模式新增描述输入框,保存时一并提交 description
- CSP:img-src 加入 https: 允许加载外部图片
- 关于页:数据存储描述从 JSON 文件更正为 SQLite 数据库
- Footer:添加 ICP 备案号
2026-06-24 13:51:48 +08:00
胡旭 3707eddfd4 docs: 补全 README.md 项目文档 2026-06-24 08:49:09 +08:00
胡旭 dce8fe62ea feat: 重构博客为水墨纸质风格 + 搭建后台管理系统
- 重新设计全站 UI:parchment/ink/terracotta 水墨纸质色系,宋式 serif 排版
- 新增页面:文章列表、文章详情、分类、标签、关于
- GSAP ScrollTrigger 滚动动画 + 逐字揭示效果
- 后台管理系统 /admin:文章/分类/标签 CRUD,JSON 文件存储
- 登录认证(cookie session)
- 设计系统文档 UI.md
2026-06-24 08:47:14 +08:00
胡旭 507f12e501 Initial commit from Create Next App 2026-06-24 08:47:13 +08:00
huxu 2c032a45de Initial commit 2026-06-23 14:14:35 +08:00