Web界面博客发布系统,自动处理Git操作并创建GitLab Merge Request。
- Markdown编辑器,支持实时预览
- 自动从内容解析目录(TOC)
- 表单填写博客元数据
- 自动Git操作(clone、branch、commit、push)
- 自动创建GitLab Merge Request
# 安装依赖
uv sync
# 安装开发依赖
uv sync --extra dev复制 .env.example 为 .env,并配置以下项目:
# GitLab 配置
GITLAB_URL=https://gitlab.example.com
GITLAB_PROJECT_ID=group/project
GITLAB_TOKEN=glpat-xxxx
# Git HTTPS 配置
REPO_URL=https://gitlab.example.com/group/project.git
REPO_LOCAL_PATH=/data/blog-repo
GIT_USERNAME=oauth2
GIT_TOKEN=glpat-xxxx
GIT_COMMIT_NAME=Blog Publisher
GIT_COMMIT_EMAIL=blog-publisher@example.com
TARGET_BRANCH=test
# 应用配置
HOST=0.0.0.0
PORT=8000说明:
GITLAB_TOKEN用于 GitLab API 创建 Merge RequestGIT_TOKEN用于通过 HTTPS clone/fetch/push 仓库- 如 GitLab 配置允许,
GIT_USERNAME通常可使用oauth2 GIT_COMMIT_NAME和GIT_COMMIT_EMAIL用于设置提交者身份(显示在 commit 记录中)
uv run uvicorn main:app --host 0.0.0.0 --port 8000或直接运行:
uv run python main.pyuv run pytest tests/ -v- 访问 http://localhost:8000
- 填写博客元数据表单
- 在Markdown编辑器中编写内容
- 点击"刷新"生成目录,可手动调整
- 点击"提交博客"
- 等待管理员审核Merge Request