ad
ad
主页 > 人气美食 > 正文

林赛·米尔斯:markdown 生成头条文章的一个思路

更新时间:2019-06-16 07:24 点击数:

最近在头条上写东西,遇到了一个比较烦的事情---编辑器不支持代码。这对于一个像我这样使用代码凑字数的人来说实在不是一个好的消息。但是等头条改进编辑器太遥远了,只能自己自足实现一个替代方案了--把代码替换成图片。

一段代码的时候,我随手截图,简单完成了;

两段代码的时候,我随手随手截图,也完成了;

三段代码的时候,我随手随手随手截图,强忍着完成了;

等我发现代码越来越多的时候,不能忍了。

懒惰是程序员的美德,不能再花费时间干这些事情了。我觉得要写个程序,把markdown 中的代码自动生成图片。

考虑了一下,大概需要做的工作是:

  1. 把markdown 中 "" 包换的代码提取出来(也可以使用工具先把markdown 转换成html 再解析html 取出code
  2. 把每一段code 分别生成图片
  3. 把图片对应的代码替换掉

想想还是很简单的。那就开始吧。

但是到第二步的时候遇到了问题,code 如何生成图片,生成什么样的图片?

  1. 首先code 需要保持原有的样式,如果能高亮那就更好了(嗯,高亮
  2. 生成图片的时候是把code 作为文字使用PIL(我使用python)写在背景上么,图片大小是多少,高亮怎么实现
  3. 算了,还是先把code 生成html,然后截取html页面吧。(这样html 还能使用 highlight.js 来实现高亮)
  4. 如何动态生成包含code 的html 页面呢?
  5. 如何把截取html 页面呢?

动态生成包含code 的html 页面有两个思路:

  1. 使用post 请求,把code 写入数据库(或者文件),然后返回id,再使用id GET 请求获取页面(需要存储,两次请求)
  2. 压缩code,把code 作为url参数,使用GET请求获取页面(可能会造成url太长的错误)

那如何截取html呢?

如果是python,可以使用pyqt,渲染html页面,截取webview。

如果使用node,可以使用 html2canvas。

大致流程如下:

markdown 生成头条文章的一个思路

哎,这一篇没有代码,就凑不了多少字。


林赛·米尔斯:markdown 生成头条文章的一个思路
ad
ad
图文信息
ad
ad
美食工坊,红餐网,美味食尚,天生吃货,美食侦探,美食天下,人气美食,菜谱网