这篇文章主要是记录如何构建一个可以把文章发布到各平台的环境。
平台
之所以把文章发布到多平台有如下几点原因:
- 扩大阅读的受众,让各个平台的用户都能共同学习,变得更好。
- 防止文章被其它平台的用户复制、盗版。
- 扩大个人的影响力。
文章发布的平台我选择了如下几个:
写文章
上述平台几乎都支持发布Markdown
文件,除了微信公众号除外,后面我会讲到怎么用工具把Markdown
直接转换为微信公众号可接受的内容。
1、图片
在写文档的过程中总会有需要用到图片,因此我们需要一个可以方便上传图片的工具,这里我们选用PicGo
。
PicGo
能快速上传图片并获取上传后的url
,且兼容多平台。而且图片可以选择上传到多个平台:七牛、腾讯云、又拍云、github
、阿里云、gitee
等等,并且可以和typora
无缝集成,typora
是用来写Markdown
的工具,稍后再来讲解。
此处我选用Github
作为我的图片存储,之所以没有选择gitee
,是因为gitee
有文件1M
的限制,如果文件大于1M
就不能创建外链了。
(1)下载PicGo
PicGo
的Github
地址:https://github.com/Molunerfinn/
(2) 配置
点击PicGo
的打开详细窗口,进行图床配置,此处配置为Github
,需要设置仓库名:lengrongfu/images
,分支:master
,以及Token
三个必要参数。
(3)验证
配置好之后可以上传一张图片进行测试。
2、写文档
写文章我们采用Typora
工具,Typora
是一款支持实时预览的 Markdown 文本编辑器。它有OS X
、Windows
、Linux
三个平台的版本,并且由于仍在测试中,是完全免费的,好用就对了。
(1)Typora下载安装
Typora
的官方地址:Typora
(2)配置PicGo
配置PicGo
,这样就可以直接从Typora
中触发图片的上传了。设置方式(Typora
->偏好设置->图像)
3、任务排期
写文章和做项目一样,要把重要的时间拿来写复杂、重要的内容,因此最好对要写的东西做一个任务排期,什么时候做什么,这样会好很多。
此处推荐使用trello,https://trello.com/
4、代码图片
有些网站不支持代码格式,所以可以把代码转换为图片,可以使用现有的网站实现这个功能:https://carbon.now.sh/
如果代码是在IDEA
或者VSCode
中也可以直接使用,通过安装carbon
的插件即可。
发布
这里主要记录把文章发布到各个平台的方式,此处推荐两种方式:
openwrite
,一个收费产品,可以做到发布到上诉的所有平台,以及微信公众号。免费每个月可以发布10
次,收费是199
一年。bloghelper
,一个开源产品,好处就是免费,并且可以自己添加公共,目前它只支持发布到上述的博客平台,不能发送到微信公众号。此处我主要是用这个工具来发布,后面我会扩展它使其可以发布到微信公众号。
发布到公众号
由于文章采用 markdown 写作,而微信公众号编辑器不支持渲染 markdown,这就导致我们需要自己排版。可以使用自动排版 markdown 的网站,里面支持样式也是比较简洁好看。
- http://md.aclickall.com/
- https://mdnice.com/ (这个项目目前要开始收费)
上面这些工具更多的是只能从页面把Markdown
转换为微信公众号文章,我们可以通过代码的方式,使其转换、发布做到自动化,并最后集成到bloghelper
中去。
- 转换
此处借用一个开源项目wechat-format-cli
,可以做到使用命令行来转换Markdown
到公众号的文章去。
# 安装工具
$ npm install wechat-format-cli -g
# 执行转换命令
$ wechat-format-cli [your_md_path.md]
- 发布
上述的工具把文档转换好之后,我们再使用一款自动预览/发布文章的命令行工具,也是一个开源项目wechat-mp-automation
。
# 安装
$ npm install wechat-mp-automation -g
$ wechat-mp-automation -h
Usage: wechat-mp-automation [options]
Options:
-V, --version output the version number
-C, --configPath [xxx] 配置文件的本地路径(支持所有自定义参数)
-t, --title [xxx] 文章标题
-a, --author [xxx] 文章作者
-c, --content [xxx] 文章内容[可选],默认从粘贴板复制
-u, --username [xxx] 公众号账号
-p, --password [xxx] 公众号密码
-o, --original 声明原创[可选]
--preview 预览而不发布[可选]
--preview_username [xxx~yyy] 预览名单[可选],以~间隔多个微信号(自行保证微信号已关注公众号)
--skip_typing 跳过文章标题、作者、文章的填写和封面图片选择(声明原创除外)[可选]
--last_edit 选中最近编辑的文章[可选],请自行确保当前有“最近编辑”的文章
-h, --help output usage information
# 只预览
$ wechat-mp-automation -C YOUR_CONFIG_JSON_FILE_PATH --preview_username XXXXX --preview
# 发布
$ wechat-mp-automation -t [标题] -a [作者] -u [账号] -p [密码] -o
# 配合wechat-format-cli工具可做到自动转换和发布
$ wechat-format-cli test.md && wechat-mp-automation -t [标题] -a [作者] -u [账号] -p [密码] -o
全平台发布流程
下图我定义了全平台发布流程,把图床、发布工具设置好之后,用户只需要在Typora
上进行编写Markdown
格式的内容即可,编写完之后就可以全平台的发布了。
我的流程
在使用过程中发现一个好的Chrome
插件Wechatsync ,可以在发微信文章的时候自动把内容容不到其它平台上去。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。