将博文以markdown格式保存下来的工具:clean-mark

推荐一个神奇的 npm 包,以前找了很久没找到,今天一刷到这个就立即安装使用了,效果非常好。

这个包的作用是将在线的博客的博文链接转换成 markdown 存到本地,官方推荐以全局方式安装。

我个人是以项目形式安装,因为反正本身使用的时候 md 文件也会收集到一起。所以我把这个命令注册到 npm 脚本中就像这样

{
    "name": "cleanmark",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "mark": "clean-mark" // 注册这里
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
        "clean-mark": "^0.8.1"
    }
}

然后使用命令

npm run mark [URL]

会得到一个 markdown 文件像这样

github官方示例图片,可能会加载失败

我们以美团技术团队的这篇博客 Java 动态追踪技术探究 - 美团技术团队 试一下

npm run mark https://tech.meituan.com/2019/02/28/java-dynamic-trace.html

执行之后就会得到一个本地 md 文件,打开看下格式会发现,不仅文字图片都好好存下来了,甚至代码还会识别为发布时的语言:

……

当我们打开浏览器,请求访问一个 JSP 文件的时候,整个过程是这样的:

![](https://p1.meituan.net/travelcube/7fceed5036a40f4bd22ccf86629069c0118151.jpg)

……

我们都知道,对象使用两种东西来描述事物:行为和属性。举个例子:

/```java
public class Person{

private int age;

private String name;

public void speak(String str) {

    System.out.println(str);

}

public Person(int age, String name) {

    this.age = age;

    this.name = name;

}
}
/```

上面 Person 类中 age 和 name 是属性,speak 是行为。对象是类的事例,每个对象的属性都属于对象本身,但是每个对象的行为却是公共的。举个例子,比如我们现在基于 Person 类创建了两个对象

……

所以当有些频繁换域名的博主的博文想保存下来时可以使用这个包来完成。

经过我不全面的测试,个人博客以 markdown 格式发布的,一般都可以正确转换,包括知乎。

部分博客平台有登陆验证的会失败,比如掘金。