基于Python将本地markdown推送和更新至Wordpress,支持REST API和Password模式。
操作系统:Win10/Linux
背景
m2w
是一个简单易用的自动上传和更新 markdown 到 WordPress 的工具,支持REST API (2.5+
) 和Password模式。
m2w
具有以下特点:
支持REST API模式,比传统的Password模式更加安全。如果你喜欢,也可以继续使用Password模式。
可以开心地保留原有的文件结构 (~ ̄▽ ̄)~ 。
通过多个
legacy_*.json
同时管理多个网站。只需要使用1个 python 脚本
myblog.py
而不是两个(m2w 1.0
中的update.py
和upload.py
)。忽略重复的新markdown的上传操作(
v2.2.4+
)。
1.安装 Anaconda(这类教程多的是就不一一赘述了)
(这里使用Anaconda的原因是Anaconda功能更全面,跑AI更方便)
1.1登录anaconda的网站(Free Download | Anaconda)国内访问可能较慢
这里可以使用阿里云镜像下载(anaconda安装包下载_开源镜像站-阿里云 (aliyun.com))
点击archive
找到最新版的对应系统版本下载即可
1.2打开anaconda后修改安装路径一路继续即可
1.3添加系统环境变量(用于通过CMD使用anaconda)
1.4修改Anaconda镜像
1.5cmd测试Anaconda
以上步骤不过多阐述。。。
2.下载M2W
登录GitHub - huangwb8/m2w: Automatically upload and update local markdown to WordPress via Python
下载M2W
环境要求
python>=3.7.6
"python-frontmatter>=1.0.0",
"markdown>=3.3.6",
"python-wordpress-xmlrpc>=2.3",
"httpx>=0.24.0"
M2W
打开CMD
CD到M2W的目录创建环境
conda create -n m2w python=3.7.6
进入环境
conda activate m2w
安装m2w twine工具
pip install m2w
pip install twine
必要时可更新工具包:pip install --upgrade twine setuptools wheel
python setup.py
打开myblog.by修改config 文件夹的路径,要求其中包含 user.json 和 legacy*.json
修改
path_m2w = “E:/我的坚果云/样式备份/网站/m2w 2.5”
为
path_m2w = “/config”
打开项目根目录config文件夹
复制user.json为user.bak进行备份
编辑user.json
填入一下信息
"web01": {
//网站域名
"domain": "https://domain-01.com",
//WordPress 账户
"username": "username-01",
//应用程序密码(推荐),与 password 二选一即可。获取方式见下文开启 REST API
//"application_password": "password-01",
//WordPress 账户密码
"password": "password-01",
//包含 markdown 文本的文件夹,可以有多个。
"path_markdown": [
"E:/Github/m2w/@test/main",
"E:/Github/m2w/@test/main2"
],
//不了解怎么设置的默认即可
"post_metadata": {
"category": ["test"],
"tag": ["test"],
"status": "publish"
},
"path_legacy_json": "/config/legacy"
}
开启 REST API
见m2w/README.zh-CN.md at main · huangwb8/m2w (github.com)
自动化完成操作
创建auto.bat的批处理文件
详情见.bat批处理文件运行conda环境下的Python程序 - 小熊奶糖's Wiki (nbenter.top)
使用任务计划程序添加定时任务
见Win10任务计划程序在哪里 怎么打开任务计划程序-百度经验 (baidu.com)
添加操作为执行auto.bat文件
引用
Docker系列 WordPress系列 WordPress上传或更新Markdown的最佳实践-m2w 2 - Bensz (hwb0307.com)