上传markdown文件到博客园

【0】需求原因

个人习惯用markdown写博客,然后同步到博客园,每次同步都比较麻烦。

于是通过Metaweblog实现了,一步上传markdown文件的小工具。

工具地址:https://github.com/dongfanger/pycnblog

作者博客:https://www.cnblogs.com/df888/p/11826480.html

【1】功能

  • 一键拖拽上传
  • 默认“未发布”,可选择直接发布
  • 重复上传,提示是否更新博客

【2】环境

python3

安装参考:

  windows:https://blog.csdn.net/weixin_40844416/article/details/80889165

  linux:https://www.cnblogs.com/gered/p/13246889.html

【最佳实践测试】

(1)查看 Typora 设置

这个文件存储位置设置无所谓的;

  

(2)配置 pycnblog 配置文件 config.yaml

解压出来后文件夹:

  

 打开配置文件修改 config.yaml

  

1、blog_url

管理进入博客园后台 =》 设置 =》拉到页面最底端

  

2、blog_id

  就是网址上的这个东西

   

3、username

  这没什么好说的,就是你登录博客园的账户

4、passowrd

  这没什么好说的,就是你登录博客园的密码

(3)运行 pycnblog 中的文件 cnblog_markdown.cmd

1、打开这个文件

  

 出现如下窗口

  

2、把我们要上传的markdown文件拖过去

  

   

操作完成后就会生成,对应的 _network.md 文件,如下图;

你然后你可以把该文件发给别人,也可以直接复制markdown代码到博客园

  

3、对比操作前后文档的区别

我们可以发现,图片的URL已经被替换成了网络RUL,存储在博客园的网络URL;

你现在可以把该文件发给别人,也可以直接复制markdown代码到博客园

  

(4)上传新生成的 _network 文档到博客园

  

然后内容直接复制过来就好了

  

张贴过来之后,发布,然后查看,结果如下图:

  

 成功

(5)总结:可复制替换后的 markdown 代码发布,但无法直接发布

【附录】

【故障处理】Typroa =》markdown图片存储设置

如果(2)中报错,发布到博客园报错,那么则必定是因为这个

写markdown有一利器Typora,一般图片存储设置我会修改成这样。

打开文件>偏好设置,找到'图片插入'

  

修改为'复制到指定路径',规则设置为./${filename}.assets

下面的3个选项全部勾选。

这样当复制粘贴图片到markdown时,就会在目录中新建一个同名文件夹,存储图片。

  

工具原理

本工具的基本原理是,调用Metaweblog的相关api,把图片上传到服务器后,获取url替换本地图片地址,再上传文件到博客园,在博客园后台能看到新博客。

Metaweblog是一个开放api,用于和远程blog交互,可以通过xmlrpc建立连接

server = xmlrpc.client.ServerProxy(blog_url)

这里用到了2个api:图片上传.MetaWeblog.newMediaObject和博客上传.MetaWeblog.newPost。

上传图片部分,通过asyncio包,实现了异步上传。

原文地址:https://www.cnblogs.com/gered/p/14736136.html