将turndown项目改造成CLI版本秒杀Python版的html2text

123次阅读
没有评论

共计 948 个字符,预计需要花费 3 分钟才能阅读完成。

前言

先说说为啥 nodejs 版本的 turndown 项目在把 html 转换成 markdown 上会让我觉得秒杀掉 python 的老牌高 star 项目 html2text,原因是我特别在意的一个功能就是代码高亮,很多 python 项目都不能在 \`\`\` 后自动加上语言类型,甚至 html2text 连加 \`\`\` 都做不到,好像可以加 \<code\>\</code\> 标签,不知道是不是等效于 3 个反引号。

然后我们再说回 nodejs 版本的 turndown 项目,这个项目牛逼之处就在于实例化时加上一个参数就可以实现自动识别代码高亮区域,加上 \`\`\` 和代码语言,但是呢这个牛逼的项目的作者在 issue 中明确表示对将项目改成 cli 版本的没任何兴趣,有需要的自行想办法。

实战

下面闲言少叙,我们进入实战环节。
首先,npm 和 node 的安装和换源在这我就不赘述了,首先我们将 turndown 项目代码同步到本地,

git clone https://github.com/mixmark-io/turndown.git

然后我们用 `vim` 打开 `package.json`, 将第二行的 `name` 对应的值的后面随便加个字符串也就是变成别的名字,然后执行下面的命令安装 `turndown` 项目,

npm install turndown --save

最后将下面代码保存为一个 `js` 文件,如 `md_helper.js`

// For Node
var TurndownService = require('turndown')

var turndownService = new TurndownService({'codeBlockStyle':'fenced'})
var myArgs = process.argv.slice(2)

var filename=myArgs[0]
const fs = require('fs')

try {const data = fs.readFileSync(filename, 'utf8')
  var markdown = turndownService.turndown(`${data}`)
 console.log(markdown)
} catch (err) {console.error(err)
}

使用方式如下:

node md_helper.js tmp.html

 

 

 

正文完
 
sharp097
版权声明:本站原创文章,由 sharp097 2021-09-25发表,共计948字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)