你的博客现在使用完全静态的文章系统,不再依赖 localStorage,支持多设备访问。
https://yourblog.com/posts/分类名/文章名.html
https://yourblog.com/posts/技术/javascript-async-guide.html
https://yourblog.com/posts/教程/css-grid-tutorial.html
https://yourblog.com/posts/随笔/my-first-post.html
your-blog/
├── index.html # 首页
├── posts/
│ ├── index.json # 文章索引(必需)
│ ├── 技术/
│ │ ├── article-1.html
│ │ └── article-2.html
│ ├── 教程/
│ │ └── tutorial-1.html
│ └── 随笔/
│ └── essay-1.html
├── js/
│ ├── static-loader.js # 静态文章加载器
│ └── ...
└── ...
- 打开
generate-static-posts.html - 点击"加载文章列表"
- 点击"生成所有文章 HTML"
- 点击"生成 index.json"
- 所有文件会自动下载
下载的文件名格式:分类名-文章名.html
例如:
技术-javascript-async-guide.html教程-css-grid-tutorial.html
整理步骤:
- 在
posts/目录下创建分类文件夹 - 将文件重命名(去掉分类前缀)
- 移动到对应的分类文件夹
示例:
# 创建分类文件夹
mkdir posts/技术
mkdir posts/教程
mkdir posts/随笔
# 移动并重命名文件
mv 技术-javascript-async-guide.html posts/技术/javascript-async-guide.html
mv 教程-css-grid-tutorial.html posts/教程/css-grid-tutorial.html# 1. 添加文件
git add posts/
# 2. 提交
git commit -m "Add static posts"
# 3. 推送
git push origin main- 等待 GitHub Pages 部署(1-2 分钟)
- 访问你的网站
- 点击文章,查看 URL 是否为
/posts/分类/文章名.html
posts/index.json 是文章索引文件,格式如下:
{
"posts": [
{
"id": 1732012345678,
"title": "JavaScript 异步编程指南",
"date": "2025-11-22",
"author": "博主",
"category": "技术",
"excerpt": "深入理解 JavaScript 异步编程...",
"coverImage": "https://example.com/cover.jpg",
"url": "posts/技术/javascript-async-guide.html",
"visibility": "public"
},
{
"id": 1732012345679,
"title": "CSS Grid 布局实战",
"date": "2025-11-20",
"author": "博主",
"category": "教程",
"excerpt": "通过实际案例学习 CSS Grid...",
"coverImage": "",
"url": "posts/教程/css-grid-tutorial.html",
"visibility": "public"
}
]
}- 登录后台
admin.html - 创建新文章
- 保存后,打开
generate-static-posts.html - 重新生成所有文章
- 上传到 GitHub
- 复制现有文章 HTML 作为模板
- 修改内容
- 保存到对应的分类文件夹
- 更新
posts/index.json - 上传到 GitHub
- 在后台编辑文章
- 保存后重新生成 HTML
- 替换 GitHub 上的对应文件
- 推送更新
如果添加/删除文章,需要更新 index.json:
- 打开
generate-static-posts.html - 点击"生成 index.json"
- 替换
posts/index.json - 推送更新
在浏览器控制台运行:
// 清除所有默认文章
localStorage.removeItem('blogPosts');
localStorage.removeItem('blogInitialized');
// 刷新页面
location.reload();删除以下文件(如果存在):
posts/posts.json(旧的索引文件)post.html(旧的动态文章页面)js/main.js(旧的加载器)js/post.js(旧的文章加载器)
- 设备 A:创建文章 → 生成 HTML → 推送到 GitHub
- 设备 B:访问网站 → 从 GitHub 加载
index.json→ 显示文章列表 - 点击文章:直接加载 GitHub 上的 HTML 文件
- ✅ 不依赖 localStorage
- ✅ 所有设备看到相同内容
- ✅ 文章永久保存在 GitHub
- ✅ 支持 SEO
- ✅ 加载速度快
- 在
posts/下创建新文件夹 - 将文章 HTML 放入该文件夹
- 更新
index.json中的category和url - 推送到 GitHub
- 重命名
posts/下的文件夹 - 更新
index.json中所有相关文章的category和url - 推送到 GitHub
- 删除
posts/下的文件夹 - 从
index.json中删除该分类的所有文章 - 推送到 GitHub
- 使用英文或拼音
- 避免特殊字符
- 使用连字符分隔单词
- 保持简短(50 字符以内)
好的命名:
javascript-async-guide.htmlcss-grid-tutorial.htmlmy-first-post.html
不好的命名:
JavaScript 异步编程指南.html(包含空格和中文)article@#$%.html(包含特殊字符)
文章 HTML 中的资源路径:
- CSS:
../../css/style.css - JS:
../../js/script.js - 图片:
../../images/photo.jpg
推荐方案:
- 使用图床服务(Imgur、SM.MS)
- 或将图片放到
images/目录并推送到 GitHub
不推荐:
- Base64 编码(文件太大)
- 本地路径(其他设备无法访问)
私密文章仍然会生成 HTML 文件,但:
- 不会在首页列表中显示(未登录时)
- 可以通过直接 URL 访问
- 如需真正私密,不要推送到 GitHub
原因: posts/index.json 不存在或格式错误
解决:
- 检查
posts/index.json是否存在 - 检查 JSON 格式是否正确
- 打开浏览器控制台查看错误
原因: HTML 文件路径不正确
解决:
- 检查
index.json中的url是否正确 - 检查文件是否存在于对应路径
- 检查文件名是否匹配
原因: CSS 路径不正确
解决:
- 检查 HTML 中的 CSS 路径
- 应该是
../../css/style.css(两级目录) - 确认
css/style.css文件存在
原因: 图片路径不正确或图片未上传
解决:
- 使用绝对 URL(图床)
- 或使用相对路径并上传图片到 GitHub
- 检查图片 URL 是否可访问
UPLOAD_GUIDE.md- 文件上传指南GITHUB_STORAGE_GUIDE.md- GitHub 存储指南BING_WALLPAPER_GUIDE.md- 背景图片指南
- ✅ 文章存储为静态 HTML 文件
- ✅ URL 格式:
/posts/分类/文章名.html - ✅ 通过
index.json管理文章列表 - ✅ 支持多设备访问
- ✅ 不依赖 localStorage
- ✅ SEO 友好
现在你的博客是一个真正的静态网站! 🎉
下一步: 打开 generate-static-posts.html 开始生成你的静态文章!