转自我的个人博客https://blognas.hwb0307.com。欢迎关注!

前言

如果你已经有了一个比较好的博客文章管理流程,可以忽略本章的内容。

如果你已经按《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上传到我们的新博客。

我们开始吧!

准备工作

首先,当然是去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里面的。

下面我们修改一下config/user.json的内容:

我在m2w中也放了一个模板了。自己改动一下即可。

然后,我去update.pyupload.py上改动这个属性:

path_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

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

下面,只要:

python E:/Github/m2w_test/upload.py

输出如下:

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

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

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

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

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

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

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

更新文件也是类似的,只要

python E:/Github/m2w_test/update.py

比如我的输出是这样:

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

它的日常使用还有一些小细节,这里不多说。有机会再讨论喽!

小结

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

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

参考

  • nefu-ljw/python-markdown-to-wordpress
  • huangwb8/m2w

Docker系列 WordPress系列 WordPress上传或更新Markdown的最佳实践相关推荐

  1. WordPress彻底禁用上传媒体图片自动生成缩略图及多尺寸图片(亲测可用)

    WordPress默认上传图片的时候会自动生成缩略图及多尺寸的图片文件,大部分网站都用不到这些多余的图片,不仅仅占用空间,而且上传的时候还会消耗额外的性能. 下面仅需两段函数代码即可彻底禁用该功能. ...

  2. WordPress自定义文件上传路径的方法

    自WordPress3.5版本开始,隐藏了后台媒体设置页面的"默认上传路径和文件的完整URL地址"选项,可以通过下面的代码将该选项调出来.WordPress自定义文件上传路径的方法 ...

  3. 通过威纶通触摸屏的穿透功能实现对FX3U系列PLC程序的上传下载和监控的具体方法

    通过威纶通触摸屏的穿透功能实现对FX3U系列PLC程序的上传下载和监控的具体方法 由于FX3U系列PLC本体只有一个通信接口,如果和威纶通触摸屏连接后,此时就无法用电脑监控调试程序了,非常的不方便. ...

  4. docker部署服务实现文件上传到本地问题解决

    docker部署服务实现文件上传到本地问题解决 参考文章: (1)docker部署服务实现文件上传到本地问题解决 (2)https://www.cnblogs.com/yy136/p/9609634. ...

  5. 阿提拉公司 java_Atitit  文件上传  架构设计 实现机制 解决方案  实践java php c#.net js javascript  c++ python...

    Atitit 文件上传 架构设计 实现机制 解决方案 实践 java php c#.net js javascript c++ python 1 . 上传的几点要求 2 1 .1. 本地预览 2 1 ...

  6. IntelliJ IDEA绑定GitHub实现代码版本控制实例演示,IDEA上传、更新、同步项目到GitHub演示,Git的下载与安装

    IDEA 绑定 GitHub 实现代码版本控制 第一章:IDEA 配置 Git 并绑定 GitHub ① 下载 Git ① 安装 Git ③ 设置 Git 的用户名和用户邮箱 ④ IEDA 配置 Gi ...

  7. .git文件夹_如何使用git把本地代码上传(更新)到github上

    什么是git?git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.git是一种工具,它能更好的让我们管理代码.很多时候如果我们需要保持本地代码和github代码版本 ...

  8. iOS-AppStore上传应用更新之——Xcode上传ipa

    iOS-AppStore上传应用更新之--Xcode上传ipa 一.App Store Connect添加新版本配置 二.Xcode验证IPA有效性 三.生成IPA包,通过xcode直接上传至AppS ...

  9. 使用git把本地代码上传(更新)到github上

    什么是git?git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.git是一种工具,它能更好的让我们管理代码.很多时候如果我们需要保持本地代码和github代码版本 ...

  10. JSP 文件上传下载系列之一[基本方式上传文件]

    前言 在jsp的web项目中,很有可能会使用文件上传的功能. 把一个本地的文件上传到web 服务器的某个路径下. 对于java 来说, 实现这样功能的开源组件有很多, 比如较常用的commons-fi ...

最新文章

  1. 来看看顶会大佬是如何研究计算机视觉的
  2. 用于药物反应预测的自适应大小的子结构学习
  3. Arduino常用函数总结
  4. linux里查看所有用户和用户组
  5. linux桌面显示温度,请问ubuntu下有没有什么桌面小控件现实显卡温度cpu使用率之类的...
  6. CF1158D. Beautiful Array
  7. python中format函数用法简书_增强的格式化字符串format函数
  8. 开源 RPC 框架有哪些
  9. 多个notification引发的问题
  10. Word中调整编号和文字的间距
  11. 学习Jsoup(三)
  12. C++ set 多级排序 多维度排序
  13. MySQL基本数据操作
  14. WPF捕获事件即使这个事件被标记为Handled
  15. 举个栗子!Tableau 技巧(97):离线安装 Linux 版 Tableau Server
  16. 易语言精益模块json_易语言Json解析
  17. ab并发测试post请求传参
  18. 自己写了一个小小的双色球号码随机生成器
  19. 三年程序员成功转型项目经理
  20. Python转换音频采样率(8k到16k)

热门文章

  1. .Net Core Mvc 2.1如何调用thrift
  2. 【GNN报告】复旦大学许嘉蓉:基于图数据的鲁棒机器学习
  3. 第七周 OJ总结4-求三角形面积-gyy
  4. 小象学院 第11章 提升
  5. 【六足】关于六足机器人运动学正逆解
  6. 手把手教用爬虫爬sciencedirect学术研究
  7. C#,入门教程——列表(List)的基础知识
  8. BAT脚本清理注册表信息
  9. java 0.1 0.2_0.1+0.2结果却不等于0.3
  10. 控制台PHP安装composer,生产线安装composer及php cli配置