Markdown懒办法排版微信公众号文章
懒人的烦恼
写微信公众号的人群里面,不乏十分勤奋者。看看他们使用的排版工具,便知道为了排版一篇文章,他们要耗费多少辛劳了。
请注意,他们是一个标题、一个段落、一个引言这样的用样式模板插入内容。这样排版的结果确实会符合作者的要求。但是这么排版我真的做不来。
我连做博士毕业论文都不用Word啊!
我用的是LaTeX。
为什么这么标新立异?并非有意为之,而是用LaTeX的话只需要码字儿就可以了。样式的事儿,都交给程序去操心岂不更好?
这几年,Markdown开始兴起,我现在除了数学公式,连LaTeX都懒得用了。
你不难看出我的哲学——没错,怎么省事儿怎么来。
但省事儿的同时,还需要满足需求。
微信公众号文章不是学术论文,公式和参考文献都很少见。里面最常见的样式无非是标题、正文、引用和图片等。这些东西Markdown处理起来得心应手。
曾经有一段我用hexo写博客,就是这么做的,采用Markdown排版效果一直挺好。
但是,在微信公众号排版上我遇到了挫折。因为微信公众号不支持 Markdown 直接排版。到我写作这篇文章的时候,还只支持富文本格式。
这就意味着我每次用Markdown写好文章,预览没有问题之后,还需要找个地方把Markdown转换为富文本。
一开始,我偷懒,在微信公众平台编辑器里用Markdown Here直接做这个转换。结果预览的时候没问题,群发之后文内图片全都消失了。微信公众号一旦群发消息就无法修改,而且我的个人公众号每天只能发送一条消息。搞得我郁闷了好几个小时。
后来我陆续尝试了几个微信公众号第三方编辑工具。发现其中135编辑器还算是差强人意。
在这个编辑器里面用Markdown Here生成HTML,拷贝出来的时候就直接被转换成为了富文本,贴到微信公众平台编辑器里标题加黑字号与图片显示一切正常,发布之后验证图片也能正常显示。
于是我就认为自己已经找到了终南捷径。
可是,时间长了,我就发现了问题——虽然排版出来图片是正常的,可是其他样式全都乱套了。标题前后间距彻底消失,而且正文文字的行距很小,全都堆在了一起,非常影响阅读体验。
昨天早上,我6点多爬起来,把一篇文章修订之后,就打算在微信公众号发出去。
按照老样子粘贴过去富文本,怎么看怎么别扭。
于是尝试了若干种不同的第三方编辑器,发现都不理想,有些干脆就无法保留任何样式。
突然发现了135编辑器弹窗里面推广VIP功能。
之前一直把这个编辑器当成中转站,我从来就没有关注过其中的“高级”功能。这次看了一眼,发现了“一键排版”。而且,其中但凡是看得过去的主题,全都得VIP才能用。对一个懒人来说,这种关键词的诱惑哪里受得了?立即就下单买了一个月的。
您还真别说,一键排版之后,立刻行间距和标题格式都好看了。我使用了“简约”模板,看着觉得赏心悦目。
嗯,这样好!
……
咦,不对啊!
怎么标题变出来这么多?!
定睛一看,原来这个一键排版不够智能,居然分辨不出来Markdown Here转换之后的文本里面哪一行是标题!作为补偿,它会让使用者设置一个字数阈值(默认20个字),低于这个字数阈值,就被认为是标题。
这不是搞笑吗?!
我喜欢用短句啊!
更糟糕的是,排版之后,还无法方便地手动对标题识别结果进行调整。我为了迁就它,只好把阈值降低字数,然后往文字后面加入标点符号,或者把行合并。怎么看怎么觉得别扭。
7点半,终于弄得差不多了。我把排版结果拷贝到微信公众平台编辑器里面。预览一下,觉得可以,就发出去了。
发出去之后,吓了一大跳——文中所有的字体加粗全部被取消了。
这就叫“一键排版”?
得,认了,幸好我只买了一个月的VIP。
醍醐灌顶
今天,从茫茫文海里面一眼看到了Jason Ng的文章《可能吧公众号的文章是如何排版的?》。
Jason是我非常钦佩的作者,他的公众号排版精良,我很羡慕。开始以为他要讲自己是如何用第三方编辑器一个段落一个段落手动调样式呢,我打算接受一下吃苦耐劳的教育,好好对照反省自己的懒惰。可是越读下去我越开心——他跟我一样用Markdown啊!
但是不同的是,高手的概念比我清晰许多。
既然Markdown生成的是HTML,那调CSS不就好了吗?
对啊!
为什么要让Markdown Here这么一个组件来决定我的文章排版样式风格呢?把Markdown转换为HTML,然后用富文本方式拷贝到微信公众平台编辑器里面,不就完事大吉了嘛。
我立即尝试,效果非常好。但是却立即发现了问题。这个问题在于Jason对读者的预期。
对于“一点都不懂 HTML 和 CSS”的读者,Jason给出了两种解决办法。
方法一是你需要认识一个设计师和一个前端工程师,这个要求稍微有些高,这里咱们先不讨论了。
方法二是自己动手学习,看到这里估计许多人都跃跃欲试。
可能吧的读者中,假设有10个人对微信公众号Markdown排版感兴趣,能有5个照着方法二完成吗?我不那么有信心。
为什么?
因为Jason的操作指南里面,有这样一句:
花 1 天时间,学会如何写一个简单包含 replacements 函数的 Python 脚本。
实话实说,没有接触过编程的人,打算用这速度学Python,还能坚持下来,我觉得可能性很小。
Jason这样想完全可以理解,因为人以群分,可以想象他认识的人中,许多虽然没有技术基础,但是愿意保持开放的心态来学习新东西。然而公众号的对象并不只是他的朋友们。许多没有技术基础的人,在读到这一条的时候,会立即退缩不前。这不是我的臆断,你去普通高校的文科专业教几年技术类课程,恐怕你的想法跟我相去无几。
这就好像一个NBA教练让球员好好练练反手扣篮一样——他的球员都是2米左右的巨人啊,稍加努力就可以完成了。然而同样是这个NBA教练,就算他把反手扣篮的诀窍写下来白送给我,我也不会去尝试的。
好消息是,经过我的摸索,发现了一个事实——你不用学会Python脚本,也能以懒人的办法用Markdown排版微信公众号文章。
流程介绍
工欲善其事,必先利其器。
Jason在文章里面推荐了Ulysses,确实是写作利器,我深表赞同。
这里我推荐一个配套的软件,叫做Marked2。
Ulysses中的文章可以轻松导出到Marked2里面预览,然后可以带样式导出为HTML。
你不需要用一个脚本去替换段落和标题标签了,你只需要修改Marked2里面的用户定制CSS就行。
我这里根据Jason文中提到的样式信息,修改了其中正文段落样式部分:
p,h5 {
/*font-size: 1.1429em;*/
/*line-height: 1.3125em;*/
margin: 1.3125em 0;
font-size: 15px;
letter-spacing: 1px;
line-height: 28px;
}
在浏览器里面预览导出的HTML文件,效果是这样的:
Jason推荐在CKEditor在线编辑器里面把HTML转换为富文本,然后拷贝到微信公众平台编辑器。
我尝试了一下,发觉这个编辑器确实强大,完全版里面选项很丰富。但对于初学者而言,使用方法并不直观。打开网站主页,你甚至都找不到HTML源码应该贴在哪儿。
不过干嘛非要执着于某个在线编辑器呢?找一个打开后立即能用的不好吗?
我找到了wangEditor编辑器,开源免费。
插入HTML源码后,预览一下,效果是一致的。
贴到微信公众平台编辑器里面,发现所有自定义样式全部都可以保留。
这便是我在Jason的启发下,整理出来的懒人Markdown排版方法。困扰了我多日的微信公众号排版问题,就这样解决了。
延伸阅读: