本项目旨在创建一个基于 Netlify Functions 的无服务器 Hexo 后台管理系统,提供一个简洁易用的网页界面,让用户能够方便地发布和管理 Hexo 博客文章。系统通过调用 GitHub API 将文章内容自动提交到 Hexo 仓库,并触发 Netlify 的自动部署,实现博客内容的快速更新。
这是一个理想的解决方案,适合希望拥有一个轻量级、无需额外服务器维护的 Hexo 后台管理界面的用户。
- 无服务器架构: 利用 Netlify Functions 实现后端逻辑,无需管理服务器。
- 简单易用: 提供直观的网页界面,方便撰写和发布文章。
- 自动部署: 文章提交后自动触发 Netlify 部署,实时更新博客。
- 支持 Markdown: 使用 Markdown 格式撰写文章,兼容 Hexo。
- 自动生成 Front Matter: 自动生成文章的 Front Matter 信息(标题、日期、分类、标签等)。
- 草稿自动保存(待实现或已实现,根据你实际情况修改): 提供自动保存草稿功能,防止内容丢失。
- 响应式设计: 界面适应不同设备。
- 新文章上传功能
- 文章列表展示
- 使用更强的身份验证
- 图片上传功能 (集成云存储)
- 文章删除功能
- 文章修改编辑功能
graph LR
A[用户] --> B(前端界面);
B --> C(Netlify Function);
C --> D(GitHub API);
D --> E(Hexo 仓库);
E --> F(Netlify 自动部署);
简要流程:
- 用户在前端界面撰写文章并点击发布。
- 前端将文章数据发送到 Netlify Function。
- Netlify Function 调用 GitHub API 将文章内容(包含 Front Matter)作为新文件提交到 Hexo 仓库的
source/_posts目录。 - GitHub 仓库内容更新触发 Netlify 的自动部署。
- Netlify 构建 Hexo 博客并发布。
本项目采用无服务器架构,主要部署在 Netlify 平台。
- 一个 GitHub 账号。
- 一个 Netlify 账号。
- 一个已在 GitHub 上托管的 Hexo 博客仓库。
- Fork 本仓库: 将本项目 Fork 到你的 GitHub 账号下。
- 在 Netlify 中创建新站点:
- 登录 Netlify。
- 点击 "Add new site" -> "Import an existing project"。
- 选择 "Deploy with GitHub",授权 Netlify 访问你的 GitHub 仓库。
- 选择你 Fork 的本项目仓库。
- 在 "Site settings" 中配置以下环境变量(重要):
GITHUB_TOKEN: 你的 GitHub Personal Access Token,需要包含对你的 Hexo 仓库的repo权限。请确保妥善保管此 token,不要泄露。GITHUB_OWNER: 你的 GitHub 用户名。GITHUB_REPO: 你的 Hexo 仓库名称。API_KEY: 用于访问 Netlify Function 的自定义 API Key,用于简单验证,请设置一个强密码。
- 构建设置:
- Build command: (通常 Hexo 仓库无需额外的构建命令,但如果你的 Hexo 仓库有自定义构建步骤,请在此填写)
- Publish directory:
public
- 点击 "Deploy site"。
- 配置 Hexo 仓库: 确保你的 Hexo 仓库配置正确,以便 Netlify 能够成功构建你的博客。特别是
.github/workflows目录下的 GitHub Actions 或其他 CI/CD 配置,如果存在,请确保它们不会与本项目的功能冲突。
部署成功后,Netlify 会为你提供一个网站 URL,你就可以通过该 URL 访问你的 Hexo 后台管理系统。
- 访问后台: 访问你部署在 Netlify 上的网站 URL。
- 登录: 输入你在 Netlify 环境变量中设置的
API_KEY进行登录。 - 发布文章:
- 在界面中填写文章标题、内容。
- 可选填写分类、标签、封面图片 URL。
- 点击 "发布" 按钮。
- 自动部署: 文章发布成功后,Netlify 会自动触发 Hexo 博客的构建和部署。等待部署完成即可在你的博客网站上看到新发布的文章。
欢迎对本项目进行贡献!如果你想为本项目添砖加瓦,可以按照以下步骤进行:
- Fork 本仓库。
- 创建新的分支 (
git checkout -b feature/your-feature-name)。 - 进行代码修改。
- 提交修改 (
git commit -m 'Add some feature')。 - 推送到分支 (
git push origin feature/your-feature-name)。 - 创建 Pull Request。
请确保你的代码符合项目的编码规范,并包含必要的测试。
本项目采用 MIT 许可证 发布。
感谢所有对本项目做出贡献的人。
如果你有任何问题或建议,欢迎通过 GitHub Issue 或 Pull Request 与我联系。



