Docker系列 WordPress系列 WordPress上传或更新Markdown的最佳实践
本文最后更新于 55 天前,如有失效请评论区留言。

前言

最近cye大佬推荐了一个不错的WordPress文章管理流程叫WordPressXMLRPCTools,基于Github Actions对WordPress博文进行更新。感兴趣的小伙伴可以了解一波!

如果你已经按Docker系列 WordPress系列 安装WP Githuber MD的教程安装并设置了WP Githuber MD插件,相信你对WordPress的风格已经有了一定的了解。心里对于要不要继续将WordPress作为平台继续使用,已经有了一定的想法。

假如你要长期坚持在WordPress用Markdown写作,那么一个自动化流程是很重要的,这点我已经在Docker系列 WordPress系列 你需要个人博客吗中进行过简单的讨论。你应该也知道我所魔改的项目m2w了。

我平时写作时,有时写一个新文章;有时忽然想起某个旧文章的一些内容可以改一下。东改一下西改一下,没什么规律。所以自动化对我来说太重要了。

况且日记源文件保存在本地我也比较安心。毕竟,我在本地已经有很强大的平台可以保证他们的安全性,比如Github和坚果云。我的NAS中也有Sync服务。所以本地保存markdown文件对我来说非常安全。

关于写作我还想多说几句。诚然,WordPress是一个强大的平台,有很多花里胡哨的设置。但是,其实我们切实需要的,是基于WordPress的写作。毕竟你的初衷就是想要写一些东西的嘛!我只是要提醒你,要不忘初心

这一章我们写2个markdown并且上传到自己的博客里。作为示范,我要将罗大佑的《风吹风吹》分2个markdown,通过m2w上传到我们的新博客。

Code_6OcltCZ2le.gif

准备工作

首先,当然是去Github上看一下m2w使用了。

我们在自已的个人电脑里新建2个Markdown文件。然后,我们下载m2w到本地。目录结构可以像这样:

├── [4.0K]  blog
│   ├── [4.0K]  legacy
│   └── [4.0K]  new
│       ├── [ 834]  测试 风吹风吹(上).md
│       └── [ 704]  测试 风吹风吹(下).md
├── [4.0K]  config
│   └── [ 377]  user.json
├── [1.4K]  get_posts.py
├── [4.0K]  m2w
│   ├── [   2]  __init__.py
│   ├── [ 470]  json2.py
│   ├── [ 981]  md5.py
│   └── [4.0K]  __pycache__
│       ├── [ 118]  __init__.cpython-37.pyc
│       ├── [ 579]  json2.cpython-37.pyc
│       └── [1019]  md5.cpython-37.pyc
├── [1.3K]  new_posts.py
├── [5.7K]  update.py
└── [6.1K]  upload.py

我们在m2w下面新建一个blog目录,下面有newlegacy两个子目录。new用来放新文件,legacy用来放旧文件。一般我们写新文章时,在new里面开始。上传后,文件会自动转移到legacy里面的。在实际应用中,blog文件夹可以放到本地电脑任何一个你喜欢的地址。

get_posts.pynew_posts.py是测试用的,不过我觉得你不用它们也无所谓。新手可以不管。

update.pyupload.py分别承载着博文的更新和上传功能。上传新文件用upload.py,更新旧文件 用update.py

然后,我们修改一下config/user.json的内容。user.json文件是用来存放与WordPress后台相关的必要个人信息,注意保密:

image-20220427120329887

注意,这个main是你存放newlegacy文件夹的上级目录。你喜欢放哪里都可以,最后在这里定义好就可以了。我在m2w中也放了一个模板了,自己改动一下即可。

最后,去update.pyupload.py文件里改动path_m2w这个属性:

path_m2w = 'E:/Github/m2w_test'

如图所示:

image-20220427120543815

path_m2w代表m2w这个项目在你本地电脑存放的位置。比如,在我的示范中,我将m2w项目保存在E:/Github/m2w_test这个地址里,所以我要将这个地址改成E:/Github/m2w_test。你根据自己的路径修改就好了。

这里附上测试 风吹风吹(上).md测试 风吹风吹(下).md的内容:

测试 风吹风吹(上).md:

# 歌名

风吹风吹

# 作词

罗大佑

# 歌词

有人是无行踪 有人被风笑憨
热恋的风吹飘来飞去 想袂到彼放荡
伊亲像一阵风 定定无守信用
风吹风吹
风吹风吹
六月的炎天引阮牵挂可爱的薄情郎
风吹风吹 风中一张批
写在梦中的 相思有多少
缘份由天控制 简单一句话
情断无相借问 阮是谁人的
有时阵热烘烘 有时阵足失望
热恋在风中春来秋去 有情就爱保重
伊亲像一阵风 轻轻将阮煽动
六月的梦中犹原相信有一日再相逢
风吹风吹 风中一枝花
谁人会知 青春剩多少
缘份是相欠债 简单一句话
情断嘛无计较 阮是别人的

# 参考 

https://baike.baidu.com/item/%E9%A3%8E%E5%90%B9%E9%A3%8E%E5%90%B9/24253435?fr=aladdin

测试 风吹风吹(下).md:

# 歌名

风吹风吹

# 作词

罗大佑

# 歌词

有人是无行踪 有人被风笑憨
热恋的风吹飘来飞去 想袂到彼放荡
伊亲像一阵风 定定无守信用
六月的炎天引阮牵挂可爱的薄情郎
风吹风吹 风中一张批
写在梦中的 相思有多少
缘份由天控制 简单一句话
情断无相借问 阮是谁人的
风吹风吹 风中一枝花
谁人会知 青春剩多少
缘份是相欠债 简单一句话
情断嘛无计较 阮是别人的
情断嘛无计较 阮是谁人的
情断嘛无计较 阮是谁人的 

# 参考 

https://baike.baidu.com/item/%E9%A3%8E%E5%90%B9%E9%A3%8E%E5%90%B9/24253435?fr=aladdin

另外,对于m2w,还要安装python才能使用。如果你不了解python3怎么安装,可以看:win10安装python详细讲解。或者自己搜索一下,教程一大堆!

使用m2w

一切准备就绪!那我们该怎么做呢?在win10中,一般这样就行:

python  <脚本>.py

我们可以打开Win10的cmd,输入:

which python

比如我会输出/cygdrive/d/research/Anaconda3/python。这说明我已经安装好python并且已经映射到环境路径里了。另外,还要安装一下依赖:

pip install python-frontmatter
pip install markdown
pip install python-wordpress-xmlrpc

因为我已经安装好了,所以界面显示如下:

image-20220427121556155

下面,只要:

python E:/Github/m2w_test/upload.py

输出如下:

image-20220427121733147

这个时候我们可以去网站上看一下,已经成功上传了:

image-20220427121818108

在后台里,这两个文章也是存在的:

image-20220427123927624

这里注意,分类标签都是test。这里对应的是这个:

image-20220427121934387

一般在写文章的时候,会在markdown的开头单独进进行声明。具体你可以原作者的说明:nefu-ljw/python-markdown-to-wordpress

比如我的这篇文章的抬头(在markdown编辑器里放入)是这样的:

---
category: [docker]
tag: [wordpress, docker]
status: publish
---

这就是说,我将这个文章上传到docker分类,并且有dockerwordpress两个标签。上传后公开发表,即publish。这个功能还是很方便的,你以后写文章多了就会有体会!

new中的markdown文件被upload之后,就会被m2w转移至legacy文件夹里。如果你以后要修改某markdown文件,只要在legacy里修改它,并运行:

python E:/Github/m2w_test/update.py

比如我的输出是这样:

image-20220427122413824

那么WordPress后台的该文章就会被更新。自己多尝试一下,应该不难!

当然,一般我是不会用cmd运行python脚本,而是用VScode。原作者用的是pycharm。你也可以将那个命令复制出来,每次打开cmd调用它;或者干脆写一个bat文件,像exe一样使用它。这个我就不多说了。反正脚本已经有了,怎么用就看你自己了!虽然它很原始,但对我来说已经是非常好使了!

小结

在本章,我们使用了一个简单的python脚本实现了本地markdown文件的自动上传和更新。如果你有其它推荐,也欢迎评论区留言!我也想知道有没有更好用的工具!

希望大家经过这次学习,可以在WordPress写博文里获得更好的体验!

参考

版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。 如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租:留言板 | 博客VPS |

评论

  1. cye
    置顶
    Macintosh Chrome 102.0.0.0
    3月前
    2022-6-20 9:13:34

    魔改的好啊哈哈哈哈,我感觉如果需要手动去run一下Python,还是稍微繁了一点点。我想象中最方便的方法是把markdown都放在一个git repo里,每次增加、删除、修改文章的之后push一下,然后设一个cron job让Wordpress每分钟去pull一次,就可以更新了。
    于是我找了一圈,找到一个类似的。用的是CICD,不用在vps上设cron,git push之后自动就更新好了。这个repo还有一点问题,就是它要求文章链接一定是domain.com/p/md_name.md的格式,如果不是/p就没有办法更新,只能新增文章。我也试着魔改了一下,暂时测试能用了。等我试试这样有没有什么没想到的问题。

    • 博主
      cye
      Windows Chrome 102.0.0.0
      3月前
      2022-6-20 9:16:07

      我到时研究一下(~ ̄▽ ̄)~ 其实我python也不熟悉 凭感觉魔改的 我平时都是在vscode是按↑调用一下旧的命令,也不复杂。我到时看看你的魔改项目哈!

    • 博主
      cye
      Windows Chrome 102.0.0.0
      3月前
      2022-6-20 9:49:50

      感谢推荐,我觉得您推荐的项目对于很多用户而言是有价值的。我将更新我的教程。

      • cye
        Bensz
        Macintosh Chrome 102.0.0.0
        3月前
        2022-6-20 10:07:05

        咋还那么客气,我只是在你的手把手教学下想了个别人已经实现的”新点子“哈哈哈

  2. 0.0
    Windows Chrome 100.0.4896.60
    4月前
    2022-5-31 9:23:13

    试一下支不支持markdown图床链接加载


    查看图片
    简单图床 - EasyImage

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇