🍞 Toast Blog 文档
零框架依赖的个人技术博客与作品集网站,使用 Vite 6 + 原生 JavaScript 构建。
本文档覆盖项目的架构设计、功能模块、开发指南与运维说明。
技术栈
| 类别 | 技术 |
|---|---|
| 构建工具 | Vite 6 |
| 前端框架 | 无(原生 JS / HTML / CSS) |
| 样式方案 | CSS Variables(深色/浅色主题) |
| 图标 | Lucide Icons + Emoji |
| PDF 导出 | html2pdf.js |
| 数据持久化 | localStorage |
| 在线评论 | Giscus(GitHub Discussions) |
| CI/CD | GitHub Actions → GitHub Pages |
快速开始
git clone https://github.com/sml-toast/toast-blog.git
cd toast-blog
npm install
npm run dev # 启动开发服务器 → http://localhost:5174
更多脚本见 README。
脚本说明
| 脚本 | 说明 |
|---|---|
npm run dev | 开发服务器(自动清理端口) |
npm run build | 构建生产版本 → dist/ |
npm run preview | 预览构建产物 |
bash scripts/start.sh | 后台持久运行 |
bash scripts/stop.sh | 停止 Vite 进程 |
多环境切换
支持 DEV / TEST / PROD 三套独立配置。
每个环境拥有独立的 localStorage 数据存储和配置开关(多语言启用/禁用、环境切换按钮显示等)。
| 环境 | 标识色 | 存储 key 前缀 |
|---|---|---|
| DEV | 绿色 | toast_blog_config_dev |
| TEST | 橙色 | toast_blog_config_test |
| PROD | 蓝色 | toast_blog_config_prod |
多语言配置
支持中文和英文两种语言,语言包位于 data/lang/ 目录。
登录与缓存
管理后台 /admin.html 访问需密码 admin。
登录后 30 分钟内免登录,关闭浏览器仍然有效。退出时清除缓存。
数据管理
后台支持作品/教程/Wiki/学习路线的 CRUD 操作,数据存储在 localStorage,环境隔离。
备份与还原
支持导出 ZIP(含附件)和 JSON 两种格式。还原时选择备份文件恢复。
目录结构
toast-blog/
├── index.html # 主页面
├── main.js # 核心 JS
├── style.css # 全局样式
├── doc.html # 文档页(当前)
├── admin.html # 管理后台
├── admin.js # 后台脚本
├── data/ # 数据层
│ ├── projects.js
│ ├── tutorials.js
│ ├── wiki.js
│ ├── path.js
│ ├── loader.js
│ └── i18n.js
├── public/ # 静态资源
├── scripts/ # 工具脚本
└── doc/ # 设计文档
部署指南
推送 main 分支即可触发 GitHub Actions 自动构建和部署:
git push origin main
# GitHub Actions 自动运行 → GitHub Pages
更新日志
| 日期 | 内容 |
|---|---|
| 2026-06-28 | 多环境配置隔离,每个环境独立存储语言/环境开关 |
| 2026-06-25 | 返回箭头合并进 FAB 浮标 |
| 2026-06-24 | FAB 浮标上线,快捷管理/反馈/外观切换 |