文章目录
- 一、前言
- 1.1 个人写作的痛点
- 1.2 自动化排版工具实现的功能
- 二、我的文章创作与发布流程
- 三、公众号文章自动化排版实现思路
- 3.1 Typora软件展示
- 3.2 96微信公众号排版平台展示
- 3.3 自动化排版实现思路
- 3.3.1 先构建一个空的文章html模版
- 3.3.2 读取md文章,对内容进行标题提取与内容匹配分类
- 3.3.3 对分类提取内容进行动态生成文章的html格式
- 3.3.4 对动态生成文章的html格式插入到空的文章html模版
- 四、实现效果
- 五、总结
一、前言
1.1 个人写作的痛点
有很长一段时间没有更新文章,每次写完文章都要对文章进行二次排版,这就很烦,因为我个人习惯使用markdown写文章,写完之后又要到第三方公众号排版网站进行排版(为了美观,我的公众号文章都是中国风排版,个人很满意),最后再复制到微信公众号中进行发布,这种重复的过程很耗时,导致更新文章怠慢,自从使用python能解决很多工作需求场景,我就越来越不喜欢人工去做重复机械式的事情,都是通过思路+python来解决现有问题,尽可能一劳永逸,所以写一个公众号文章自动话排版的工具,提高效率,减少重复工作。该工具只适用于作者自己,所以不开源,此文章分享实现思路,希望给有同样痛点的朋友一点点思路。
1.2 自动化排版工具实现的功能
1、文章目录自动填充
2、一级标题、二级标题等自动添加样式与动态图
3、文章内容自动填充
二、我的文章创作与发布流程
我的文章会发布两个平台:CSDN、微信公众号
整个流程是这样的:Typora(markdown格式文章) -> CSDN(发布,CSDN可以直接读取markdown格式,不费时) -> 96排版平台(公众号美化排版,耗时) -> 微信公众号
经过以上流程才完成一篇文章的发布,为了解决耗时的问题,我将采用python代码的形式来完成我的自动化排版脚本,让我们继续往下看吧。
三、公众号文章自动化排版实现思路
3.1 Typora软件展示
Typora一款使用markdwn格式的笔记本工具,高版本需要收费,低版本免费,低版本就能满足日常使用了,市面上也有很多md笔记本工具,Typora个人用了很多年已经习惯了,展示一下软件页面。
3.2 96微信公众号排版平台展示
接下来将讲解一下我是如何写自动化排版的思路。
首先给大家看一下,96微信公众号排版平台,个人使用感觉还不错,如下图:
这一个过程我需要手工插入文章目录文字,并且需要改文字颜色和大小,每块章节的内容都需要人工去干涉,很费劲,那么平台的文章排版其实会生成对应的html,如下图:
3.3 自动化排版实现思路
我们知道了文章的排版内容其实也是html,那么我就可以对文章的html随意控制,我的实现思路如下:
1、先构建一个空的文章html模版
2、读取md文章,对内容进行标题提取与内容匹配分类
3、对分类提取内容进行动态生成文章的html格式
4、对动态生成文章的html格式插入到空的文章html模版
3.3.1 先构建一个空的文章html模版
首先创建好一个空的模版,固定不变的内容都可以放上去,我的空模内容啥都没有,如下图:
首先我会读取文章文件,然后获取文章标题(一级标题、二级标题、三级标题等),用于写入文章目录以及后续对标题前后内容进行识别读取。
先写入文章目录。
效果如下:
3.3.2 读取md文章,对内容进行标题提取与内容匹配分类
对内容进行分类,识别代码、图片、内容,对分类插入到对应html标签。
3.3.3 对分类提取内容进行动态生成文章的html格式
我这里使用的是python的BeautifulSoup库,创建好96排版文章的标签,把内容放进去,最后把结果返回即可。
3.3.4 对动态生成文章的html格式插入到空的文章html模版
当所有的内容都生成对应的html标签,在全部放能到一个list里,在用一个整合方法,把list里的html全部写入到output2.html,这样整个工作号自动排版的工作就完成了。
这就是最后生成的html文件,复制、粘贴到96平台即可。
四、实现效果
代码与图片需要手动插入,一些缩进的小问题手工调整一下,实现这样的功能已经帮助我节约在排版上耗费的时间。效果如下:
五、总结
工具写的过程中也挺有意思,中间遇到的难点与解决思路也是费尽心思,一劳永逸的工具开发,能避免重复耗时的工作,代码上还有许多可以优化的地方,但功能已经满足基本需求,也更促进我日后的写作。你有哪些重复的工作,尝试用代码的方式让自己轻松起来吧。微信公众号搜索关注艺说IT,分享各种原创技术干货文章,对你有用的话请一键三连,感谢🙏。