Commit Graph
145 Commits
Author SHA1 Message Date
miaomiao 651bbbb22e docs: 页脚 HTML 提示文案澄清(效果所有人可见,仅管理员可编辑) 2026-08-07 03:05:52 +08:00
miaomiao 36be795af5 fix: 前台页脚落于视口外(.page min-height 撑满视口剩余,滚动才见页脚) 2026-08-07 02:32:28 +08:00
miaomiao 632d19f49e feat: 后台评论管理 + 评论设置开关 + 技术债清理
- 后台评论管理页(待审核 Tab + 通过/拒绝),侧栏入口
- 站点设置加评论审核模式/评论邮件通知开关
- Material Icons 自托管(本地 woff2)+ ssr 图标修复
- /admin* 路由收紧为显式两条
- 删除死代码 routes/links.js
- 密码箱改 PIN 增加数据丢失警告确认
2026-08-07 02:14:07 +08:00
miaomiao 3cf560f932 feat: 博客功能前台 - 搜索/标签云/标签页/归档/详情增强/嵌套评论
- Blog 列表: 搜索框 + 标签云 + 归档入口
- 新路由: /tag/:name、/archive.html
- 详情: views/字数/标签 chips/点赞(乐观更新)/前后篇/可折叠 TOC
- 嵌套评论任意层级递归渲染 + 回复预填; Write 加 tags 输入
2026-08-07 02:06:01 +08:00
miaomiao ad8883cc61 feat: 博客功能后端 - 搜索/RSS/标签/归档/views/点赞/评论增强/备份
- migrateSchema v2: tags/views/parent_id/status 列 + post_likes 表
- 接口: search/tags/tag/archive/prevnext/点赞三连/评论审核三连/feed.xml
- 评论: 嵌套回复/审核模式(comment_moderate)/限流/邮件通知(comment_notify)
- cli backup 命令 + status 显示最近备份;backups/ 入 gitignore
- ssr blogSSR 阅读量计数;settings 白名单补新键
2026-08-07 01:57:01 +08:00
miaomiao f8d495b128 feat: 页脚文案支持 HTML/CSS 渲染(仅管理员字段,self-XSS 与音乐嵌入同级) 2026-08-07 01:47:12 +08:00
miaomiao c2ca0f2327 feat: 页脚三样式(经典/分栏/玻璃)+ 后台样式编辑卡 + 博客页首屏修复
- Footer.jsx 按 footer_style 渲染三变体(含 Powered by RainnyaWeb + 版权)
- 后台站点设置页脚卡:样式选择 + 按样式显示可编辑字段(分栏导航固定不可编辑)
- db 默认值 footer_style/copyright/powered/desc;settings 白名单接入
- 博客页移动端内容优先排列(首屏可见标题)
2026-08-07 01:44:12 +08:00
miaomiao 249ed8cd2c feat: 后台 MUI 主题 MD3 化(与前台同源 token/大圆角/surface 边框)+ 深色模式修复 2026-08-07 00:27:00 +08:00
miaomiao a858439e19 fix: 首页侧栏强制显示(blog_show_sidebar 开关仅影响博客页);v2.0.0 版本号 2026-08-07 00:11:15 +08:00
miaomiao 535e4b8fcd v2.0.0: 大版本号更新(v1 原生前端 → v2 React 前后台) 2026-08-06 23:59:48 +08:00
miaomiao 75d102d6ee docs: AGENTS.md 更新至 v2 现状(assets 挂载/无更新接口/新路由顺序等) 2026-08-06 23:56:34 +08:00
miaomiao f0b642362a fix: /assets 挂载构建产物(vite base='/' 与 dist/assets 路径不匹配导致 MIME text/html 白屏) 2026-08-06 23:55:03 +08:00
miaomiao 45f0dc9beb fix: serveIndex 加 no-store 缓存头(防止旧 index.html 缓存导致 assets 404 白屏) 2026-08-06 23:28:52 +08:00
miaomiao b29fbcdcfc fix: 面板嵌入 proxy 模式支持 query token(iframe 无法带 header) 2026-08-06 23:20:25 +08:00
miaomiao 20deb09dbd P6: 集成上线 - dist 切换/后台路由/Setup+Embed/v1 退役/文档更新
- server.js: serveIndex 改读构建产物 dist/index.html(占位符替换保留);新增 /admin* → dist/admin.html;/forum/manage/:id 改 302 重定向
- Setup 初始化向导三步迁移;Embed 面板嵌入迁移(proxy 代理)
- v1 前端全部退役(12 html + public/js/ 12 文件 + deploy 脚本)
- README/AGENTS.md 更新为 v2 架构(React+Vite、better-sqlite3、构建流程)
2026-08-06 23:16:18 +08:00
miaomiao c71f4f0ed6 P5: 后台独立应用(MUI)- 13 模块/布局/守卫/复用前台基建 2026-08-06 23:10:09 +08:00
miaomiao f7dd4163b2 P4: 审查收尾 - 第三方验证码闭环/导航指向/验证码统一校验 2026-08-06 23:01:52 +08:00
miaomiao 72295ded4d P4: 密码箱迁移(PIN/CRUD/生成器/安全加固) 2026-08-06 22:51:17 +08:00
miaomiao f4a5276fb8 P4: 登录/注册/个人中心迁移(验证码 proof/邮箱验证/头像/改密) 2026-08-06 22:48:48 +08:00
miaomiao be6f644154 P4: 论坛迁移(列表/发帖/详情回复/板块管理) 2026-08-06 22:45:31 +08:00
miaomiao bdd3a068af P4: 首页/博客/写文章迁移(列表/详情/评论/编辑/上传) 2026-08-06 22:42:25 +08:00
miaomiao 990f6f40d0 P4: 基础设施 - api 层/布局壳/公共组件(Markdown/Captcha/音乐嵌入) 2026-08-06 22:38:21 +08:00
miaomiao 1bed2dda5f P3: 前端工程化搭建 - Vite + React 多入口脚手架
- vite.config.js 双入口(前台 index + 后台 admin),产物输出 public/dist
- 前台 App 布局壳 + 11 条路由占位;api client/theme/utils 共享层
- index.html 保留 ${site_name} 等占位符与 style.css 引用(UI 100% 还原基础)
- dev 代理 3101,构建产物 gitignored
2026-08-06 22:29:03 +08:00
miaomiao b319584012 chore: 换轨遗留清理 - Node>=22 文档/sql.js 卸载/cli 并发写警告 2026-08-06 22:24:00 +08:00
miaomiao c4c0115ba6 P2: 数据层换轨 better-sqlite3(sql.js → 原生 SQLite)
- db.js: getDb 同步化 + new Database(DB_PATH) 直接打开;run/get/all 重写为 prepare API;删除 saveDb 全量导出;22 处 DDL 改 exec
- migrateSchema 填实 version 1(user_settings.pin_iter),passwords.js 删除私有 ensureSchema
- routes/import.js: better-sqlite3 只读打开上传文件(PRAGMA table_info + all() 对象行),finally 关闭
- 数据零迁移:现有 data/rainweb.db 直接打开,播种数据完整,CRUD/SSR/cli 全通
2026-08-06 22:19:57 +08:00
miaomiao f6407a84f7 fix: 审查修复 - setup 死锁/验证码前后端对接/SPA 侧 XSS
- setup /complete 改 setup_complete 门禁(修复新装死锁),新密码禁止等于默认
- 验证码 proof 全链路贯通:前端 captcha.js/api/login/register/forum 传 captcha_proof;consumeProof 一次性消费 + jti 防同秒碰撞;删除死端点与死代码
- render.js 引入 DOMPurify 净化 markdown(SPA 侧存储型 XSS)
- email.js SMTP 检查提前;avatar 强正则白名单;register 验证码 crypto.randomInt
2026-08-06 22:11:43 +08:00
miaomiao 2ac286a4f8 P1: 后端安全加固 - 上传白名单/SSR净化/限流/密码箱/鉴权收敛/数据层统一
- 上传扩展名白名单 + MIME 校验;/uploads 加 nosniff + CSP sandbox 防护头
- ssr.js 全插值转义 + DOMPurify 净化 + JSON-LD JSON.stringify 序列化(消除存储型 XSS)
- 登录/发帖限流(express-rate-limit);验证码 proof token 体系(5 分钟 JWT + 防重放)
- 密码箱:PBKDF2 600k(pin_iter 列兼容旧密文)、解锁 3 次/5 分钟锁定、滑动过期会话、PIN >= 6 位
- adminOnly 查库复查;草稿仅 admin/作者可见;错误信息收敛;avatar 站内路径白名单;验证码 crypto.randomInt
- cli.js 删除重复 sql.js 封装统一到 db.js(data/rainweb.db 单路径);db.js 新增 migrateSchema 迁移框架
2026-08-06 21:32:06 +08:00
miaomiao 91cd009899 P0: 删除 Web 更新链路,修复 setup/proxy/email 安全漏洞
- 删除 /api/update/check 与 /api/update/run(无鉴权 RCE 面 + .git 覆盖风险)
- cli.js upgrade 仅保留 git pull 分支,删除 GitHub zip 下载分支
- admin 前端移除更新按钮与 checkUpdate/runUpdate
- JWT_SECRET 启动时随机生成写入 .env.json,删除硬编码回退
- /api/setup/complete 加 adminOnly;/setup/status 移除 default_password 泄露
- /api/proxy/fetch 加 adminOnly + 内网地址拦截(SSRF)
- send-verify 验证码不再回显,改 crypto.randomInt,修复 pending 重建 bug
2026-08-06 21:22:04 +08:00
miaomiao 4d0ad9da68 docs: 添加 AGENTS.md 与 v2 重构计划文档 2026-08-06 21:22:04 +08:00
miaomiao e7f8b3f173 v1.4.2: PJAX router, auto-hide music embed, update script fix
- PJAX navigation: nav clicks fetch & replace <main> seamlessly
- router.js dynamically loads page-specific JS (blog/forum/admin)
- Music embed: global on/off toggle, hover-based auto-collapse
- Update script restored to download-based (no git dependency)
- All PJAX pages have #musicEmbed container (index, blog, forum, admin, passwords)
- Version bump to 1.4.2
2026-07-02 02:22:09 +08:00
miaomiao a30a628772 fix: add musicEmbed container to admin.html for PJAX persistence 2026-07-02 02:09:32 +08:00
miaomiao cd290ff237 PJAX router + music embed with auto-hide
- router.js: intercept nav clicks, fetch page via AJAX, replace <main> content
- Blog/Forum/Admin/Homepage init functions extracted for PJAX re-init
- music-embed.js: hover-based auto-hide (leave → 10s timer → collapse)
- Settings: music_embed_code, position, pages, autohide, idle_timeout
- New keys replace old homepage_music_embed/position (auto-migrated)
2026-07-02 02:00:49 +08:00
miaomiao f7f30af569 v1.4.1: theme color refactor, UI restructuring, markdown improvements 2026-07-01 23:46:01 +08:00
miaomiao 4465130e60 fix: update download URL follows redirects, use codeload directly 2026-07-01 20:05:28 +08:00
miaomiao bd0c0442ab feat: add public settings endpoint and update settings retrieval in frontend 2026-07-01 19:41:06 +08:00
shanshuilala b80c5a1277 v1.3.1 2026-06-21 18:07:03 +08:00
shanshuilala 73e145df07 v1.1.1: captcha refactor, Turnstile support, SEO, forum boards, icon fixes 2026-06-21 18:05:05 +08:00
shanshuilala 6ffbf19aff Refactor forum.js for improved post and category handling; add sub-category support and enhance captcha verification in login and registration; implement update check and run functionality in server.js; improve captcha generation with noise and difficulty adjustments. 2026-06-21 00:54:49 +08:00
shanshuilala 2e6eeadfc1 feat: 增加数据库导入功能,支持从旧版 RainWeb 导入数据,优化验证码处理逻辑 2026-06-20 21:57:04 +08:00
shanshuilala 608adac6d4 feat: add content rendering and article writing features
- Implemented a content renderer in `render.js` to handle Markdown and custom tags for images and files.
- Created a new article writing page in `write.html` with a form for title, excerpt, and content, including upload functionality for images and files.
- Added server-side rendering functions in `ssr.js` for blog and forum posts, including support for generating a sitemap.
2026-06-20 18:19:06 +08:00
shanshuilala c479b3a31a feat: add proxy route for fetching external URLs and handling CSP headers
- Implemented a new proxy route in `routes/proxy.js` to fetch content from external URLs.
- The proxy handles URL validation, stripping of certain headers, and rewriting of relative URLs to absolute.
- Added a new batch script `start.bat` for easier server startup and dependency installation.
- Included instructions for accessing the server and default admin credentials in the batch script.
- Added a new release file `rainweb-win.zip`.
2026-06-19 23:08:20 +08:00
shanshuilala 2fd2cd01e9 优化验证码生成和验证逻辑,增加错误处理和状态反馈 2026-06-19 21:44:33 +08:00
shanshuilala bee5517f18 Refactor captcha handling and implement email verification codes
- Removed captcha checks from login, registration, and forum post routes.
- Implemented email verification using 8-digit codes for registration and password changes.
- Updated frontend to handle email verification code input during registration and password change.
- Simplified captcha logic by integrating CAPTCHA verification directly in the frontend.
- Enhanced email templates for verification codes and improved error handling.
- Cleaned up unused code related to captcha and improved overall code structure.
2026-06-19 21:13:51 +08:00
shanshuilala 440c63d1fd 添加 MIT 许可证文件,更新 README.md,增强 CLI 和部署脚本以支持一键升级功能 2026-06-19 19:51:18 +08:00
shanshuilala 38689b36f8 first commit 2026-06-19 19:34:04 +08:00