一、目标

每次运行 Hugo 博客脚本发布新文章时,自动将该文章同步到 WordPress 作为备份。


二、整体流程

note.txt → 生成 MD 文件 → 复制到 Hugo content/posts
                    Hugo 生成静态网站 (public / public2 / public3)
                    Git push 到 GitHub / Git FTP 上传
                    WordPress 自动同步(新增模块)

三、核心原理

1. 同步入口

all_fpt_ok.py 脚本末尾追加 WordPress 同步模块,每次运行 Hugo 发布脚本时自动触发,无需额外操作。

2. 文件定位

每次只同步今天生成的一篇文章YYYY-MM-DD.md),通过当前日期匹配文件名。

3. 解析 Frontmatter

读取 MD 文件开头的 frontmatter,提取:

字段示例用途
title"Debian 系统精簡"WordPress 文章标题
date2025-12-12WordPress 文章发布日期

4. Markdown → HTML

使用 Python 的 markdown 库将 MD 正文转为 HTML,支持:

  • 表格(tables
  • 代码块(fenced_code

5. 通过 REST API 发布

调用 WordPress REST API:

POST https://sv66.123450908.xyz/wp-json/wp/v2/posts

认证方式:Application Password(应用密码)

6. 状态记录(防重复)

同步完成后,将文件名和 MD5 记录到 .wp-sync-state.json

{
  "synced": {
    "2026-04-12.md": {
      "hash": "a1b2c3d4e5...",
      "wp_id": 170
    }
  }
}

下次运行时:

  • MD5 相同 → 跳过
  • MD5 不同 → 更新文章

四、配置信息

配置项
WordPress 地址https://sv66.123450908.xyz
REST API 端点/wp-json/wp/v2/posts
用户名djd1226
认证方式Application Password
MD 源目录/storage/emulated/0/www/hugo/content/posts
状态文件.wp-sync-state.json(脚本同目录)

五、依赖

依赖用途
Python 3.13运行环境
requestsHTTP 请求(调用 REST API)
markdownMarkdown 转 HTML

六、使用方式

不需要任何额外操作。 每次运行:

python3 /data/data/com.termux/files/home/some-py/hugo-blog/all_fpt_ok.py

脚本会依次完成:

  1. note.txt 生成 MD 文件
  2. Hugo 生成静态网站
  3. Git push 到 GitHub
  4. Git FTP 上传(public3)
  5. WordPress 同步发布 ← 新增

七、注意事项

  1. WordPress 应用密码 需要在后台生成,普通登录密码不能用于 REST API
  2. 每次只处理今天的文章,不会重复发布已同步的文章
  3. 如果需要同步旧文章,需手动删除 .wp-sync-state.json 中的对应记录