因为简书 Markdown 编辑器的样式非常漂亮,所以我已经很久没更博客了。另一方面,简书的编辑器在 Markdown 语法上考虑了很多细节,非常贴心,所以喜欢在简书写东西。
但如果能把简书的文章同步发布到自己的博客上,就两全其美啦,所以折腾吧。
要实现同步简书文章到独立博客,需要以下步骤:
- 导出简书文章,在简书后台可以直接导出自己的全部文章。但是导出文章时需要登录,而简书登录时需要拖动验证,模拟登录不好办,所以直接用本地 cookies 来导出文章。
- 导出文章是一个压缩包,可以写个脚本自动解压,但是压缩包里面包括未发表的草稿,需要写脚本区分开来,避免把草稿也发布出去。
- 因为我是用 Hexo 生成静态博客的,所以文章的开头需要有一个固定格式的头部信息,供 Hexo 解析。可以通过脚本解析简书上的“发表日期”、文章标题、分类等一系列信息,并自动添加到文章头部。
- 接下来实现文件夹有变动,自动推送到 Github,然后通过持续构建自动生成新的静态页面,完成同步发布。
以上就是大体思路了,总结一下需要实现的功能:
- 获取简书 cookies,然后下载全部文章。难点在于解密 Chrome 的 cookies(刚才看了下 remember_user_token 是加密的),不过早有人造好了轮子,我们去装上用就好了。
- 解压什么的好说,难点是草稿和已发布文章混在一起难以区分,我的解决办法是在每一篇未发布文章的标题加上一个标记,例如:
[草稿]
。平时写文章时自己记得加上标记即可。这是一个方法,但是感觉好麻烦。所以换个思路,在后台新建一个名为“草稿”的文集,然后把未发表的文章全丢那里,这样程序就容易区分了,不过草稿太多的话会导致管理困难。总之我还没决定这里要怎么做,大伙说来听听也可以。 - 接下来要给文章加入 Hexo 头部信息,以便构建静态页面。需要解决的问题有很多,不过整体没感觉什么难点,就是琐碎了些。
- 检测文件夹有变动就自动推送 Github,这一点没有问题。持续构建也没问题。
写到这里,突然觉得,我好像想多了。大概可以更精简这个过程,比如在后台点击发布文章就同时发布到自己博客。可以通过 Chrome 插件实现?
以上。