下面推荐 2 个工具非常好用可以将直接将 HTML 转为 markdown,大家可以收藏使用 https://devtool.tech/html-md https://www.helloworld.net/html2md devtool.tech 其实 devtool.tech 里面的简单每个工具都挺好用的。 其实有个包 turndown 可以直接将 html 转为 markdown,并且可以在浏览器和 nodejs 中执行 浏览器 var TurndownService = require(turndown) var turndownService = new TurndownService() 直接将 html 字符串传入就可以了,简单返回 markdown 字符串 turndown 还支持配置规则,简单 比如 turndownService.keep([del,简单 ins]) turndownService.turndown( Hello turndownService.remove(del) turndownService.turndown( Hello turndown 还支持插件的使用,官方就提供了 turndown-plugin-gfm,简单意思是 GitHub Flavored Markdown 功能特点有: 使用代码 var TurndownService = require(turndown) var turndownPluginGfm = require(turndown-plugin-gfm) var gfm = turndownPluginGfm.gfm var turndownService = new TurndownService() turndownService.use(gfm) 一般都要加上这个插件 其实使用 turndown 已经完成类似的功能,为了美观,简单我们可以给代码加上代码编辑器 codemirror 。简单 新的服务器托管简单 codemirror6 完全重写,采用了插件化的简单形式,代码量更小,简单我用的简单技术栈是 react, 社区封装了一个好用的库 rodemirror。 使用代码示例 import { useMemo, useState } from "react"; import CodeMirror from "rodemirror"; import { basicSetup } from "@codemirror/basic-setup"; import { oneDark } from "@codemirror/theme-one-dark"; import { javascript } from "@codemirror/lang-javascript"; import { markdown as langMarkdown } from "@codemirror/lang-markdown"; const Editor = () => { const extensions = useMemo(() => [basicSetup, oneDark, javascript(),langMarkdown()], []); const defaultValue = "console.log(Hello world!)"; // remove if you do not need the value const [value, setValue] = useState(defaultValue); return ( value={ defaultValue} onUpdate={ (v) => { if (v.docChanged) { setValue(v.state.doc.toString()); } }} extensions={ extensions} /> ); }; lang-javascript 下的包是让 CodeMirror 支持语法高亮。接下来就是配合 react 常规写法。效果如下 一个简易版的 html 转 markdown 编辑器就实现了,大家可以手动尝试实现一下。本文未涉及这些工具的内部实现原理,后续若遇到问题需要深入研究。源码库 常规的做法,是使用 chreome 控制台选中 article 标签就可以直接复制 html 了,但有时候如果 html 不规范,可能转换失败。 有时候有些文章,文章并不是在一个标签中,比如 medium.com 中的文章就不在一个标签中,这个时候,拷贝 HTML 就麻烦了。还有个问题, Word 中的文档要转成 markdown 怎么半呢 ? 其实我们可以通过直接选中文本然后支持粘贴到 typora 中,然后就直接转成 markdown 了。 所以说了这么多,这个工具我没开发 如何将文章将保存为 markdown ?简单
HTML 转 markdown 是简单如何实现?
安装npm
npm install turndown使用
保留标签
worldWorld移除标签
worldWorld插件
开发一个类似的工具
小结
小技巧