Convert your hexo markdown posts to html then publish to your wordpress blog.
├── .env
├── .gitignore
├── LICENSE
├── README.md
├── blog_uploader
│ ├── __init__.py
│ ├── config.py
│ ├── logger.py
│ ├── main.py
│ ├── markdown_parser.py
│ └── wordpress_publisher.py
└── image_scraper.py
Before use this script, you should make sure your post was created by hexo command or it has a hexo post format:
---
title: Your post title
date: 2021-04-01 20:16:49
tags: [Python]
categories: [技术, 编程] # 支持多个分类
index_img: https://example.com/image.jpg # 支持网络图片链接
---
...content...
- 支持单个文件或目录批量上传
- 支持递归处理目录下的所有子文件夹
- 支持文章特色图片(支持本地图片和网络图片)
- 支持多个分类
- 详细的日志记录
- 自动处理图片格式(jpg、jpeg、png、gif、webp)
pip install python-wordpress-xmlrpc python-frontmatter requests
编辑 .env
文件,填入你的 WordPress 信息:
WORDPRESS_XMLRCPATH=https://your-blog.com/xmlrpc.php
WORDPRESS_USER_NAME=YourName
WORDPRESS_USER_PASSWD=Password
python -m blog_uploader.main path/to/your/post.md
python -m blog_uploader.main path/to/posts/directory
python -m blog_uploader.main path/to/your/post.md path/to/images/directory
- 日志文件保存在
logs
目录下 - 文件名格式:
blog_uploader_YYYYMMDD.log
- 同时输出到控制台和文件
你可以按照以下方式组织你的文件:
posts/
├── 分类1/
│ ├── 文章1.md
│ ├── 文章2.md
│ └── images/
│ ├── 图片1.jpg
│ └── 图片2.png
├── 分类2/
│ ├── 文章3.md
│ └── images/
│ └── 图片3.jpg
└── 其他文章.md
- 优先使用文章中的
index_img
字段作为特色图片 - 如果
index_img
是网络链接,会自动下载并上传 - 如果
index_img
是相对路径,会自动转换为绝对路径(相对于markdown文件所在目录) - 如果没有
index_img
,会使用指定的图片目录中的图片
- 同时支持
category
和categories
字段 - 如果两个字段都存在,会合并使用
- 支持单个分类和多个分类
- 确保 markdown 文件格式正确
- 确保 WordPress 信息配置正确
- 网络图片下载需要网络连接
- 图片上传需要 WordPress 有足够的权限
- 相对路径的图片会相对于markdown文件所在目录进行解析