◆

复制文章内容为 Markdown 的油猴插件

2023-03-19 06:340

我平时看到有价值的技术文章会摘录到自己的笔记里,笔记是 Markdown 写的,所以每次都要做一次格式转换。手工做这件事很费时间:网页上选中复制过来,粘贴到编辑器里得到的是一坨纯文本,标题层级没了,代码块的边界没了,链接只剩文字丢了地址,列表的缩进也乱了。一篇稍长的文章整理下来要十几分钟,全花在补格式上。

问题的根源在于剪贴板的数据格式。从浏览器复制内容时,剪贴板里同时写入了两份数据:一份是 text/plain 纯文本,一份是 text/html 富文本。粘贴到纯文本编辑器里,取到的是前者,HTML 里的结构信息在那一份里根本不存在,所以不是编辑器丢了格式,是复制的时候就没带过来。

解决思路是在复制这一步就介入:读取选区对应的 HTML 结构,把它转换成 Markdown 语法,再把转换结果写进剪贴板。这样粘贴出来就是带完整格式的 Markdown。

这套转换逻辑用一个油猴脚本就能完成。选择用户脚本而不是浏览器插件,好处是它只在你主动触发时工作,不常驻后台,源码也完全公开可读。

插件地址

下面这个脚本就是干这件事的。装之前需要先装好油猴,也就是 Tampermonkey,它是用户脚本的运行宿主。

用法是在页面上选中要复制的内容,然后通过脚本提供的入口触发复制,具体是快捷键还是右键菜单,以脚本页面上的说明为准。粘贴到 Markdown 编辑器里,标题、列表、链接、代码块、加粗这些结构都会保留下来。

实际用下来有几个地方需要留意。表格的转换成功率不高,尤其是带合并单元格的,Markdown 的表格语法本身表达不了跨行跨列,遇到复杂表格只能手工重排。图片转换出来的是原始地址的引用,也就是说笔记里的图仍然指向对方服务器,对方一旦换域名或者做了防盗链,图就挂了,重要的图片建议另存到自己的图床。另外某些站点会用自定义元素或者伪元素来渲染内容,这类结构在 HTML 里没有对应的语义标签,转换器识别不了,会被当成普通文本处理。

链接如下。

复制文章内容 markdown 插件: https://greasyfork.org/zh-CN/scripts/370299-%E5%A4%8D%E5%88%B6%E4%B8%BAmarkdown%E6%A0%BC%E5%BC%8F/code

💬留言板0

还没有留言,来发表第一条吧~

PAGE LOAD / LIVE复制文章内容为 Markdown 的油猴插件加载中