-
-
Notifications
You must be signed in to change notification settings - Fork 3
Home
OBKoro1 edited this page Jul 10, 2019
·
6 revisions
搜索目标文件夹中的markdown文件,找到目标图片,提供下载图片,替换图片链接的功能-通常用于markdown 图片失效。
这是一个极为轻量的脚本,引用包,设置好参数,通过API即可轻松上手。
- 集中下载markdown文件中某个域名下的图片到一个文件夹下。
- 用新的图片链接替换markdown文件中某个域名的图片链接。
// 1. 下载这两个图片
// ![](https://user-gold-cdn.xitu.io/2019/5/20/图片名字?w=2024&h=1240&f=png&s=339262)
// ![](https://user-gold-cdn.xitu.io/2018/6/16/图片名字)
// 2. 替换成:github的链接
![](https://raw.githubusercontent.com/OBKoro1/articleImg_src/master/juejin/图片名字)
// 由于github的参数限制,带了参数就不能正常显示图片 所有这里默认取图片名前部分的:字母或数字或下划线或汉字
npm i markdown-img-down-site-change
刚上手可能不了解脚本的功能,需要调试一番,这时候万一把markdown
文件给改坏了,岂不是要哭死?
脚本有两种形式来防止这种情况发生:
我是这样使用的,大家可以做个参考:
- 新建一个github项目,专门用于存放图片资源
-
npm init
初始化package.json
文件,下载npm包:npm i markdown-img-down-site-change
, - 新建一个
handleImg.js
文件,参考:example.js - 拷贝你的
markdown
文件夹到该项目,执行node handleImg.js
- 将会搜索所有
.md
文件,下载匹配到的图片到项目的根目录。 - 默认不修改文件,默认开启备份,匹配规则、过滤某些文件夹等更多配置信息参阅:API文档
比如我的github图床:articleImg_src
在项目中有一个使用栗子,里面加了蛮多注释和空行的,实际代码20行都不到,可以说很简单了,如下:
// npm i markdown-img-down-site-change -S
const markdownImageDown = require('markdown-img-down-site-change'); // 文件模块
// 传参: 这也是脚本的默认参数,根据情况可以自行修改
let option = {
replace_image_url: 'https://user-gold-cdn.xitu.io/',
read_markdown_src: './source', // 要查找markdown文件的文件夹地址
down_img_src: './juejin', // 下载图片到这个文件夹
var_number: 3 // url前半部分的变量数量 比如上面的日期: /2019/5/20/、/2018/6/16/
}
// 初始化
const markdownImage = new markdownImageDown(option)
// 下载外链
markdownImage.checkDownImg();
// 上传下载下来的图片文件夹到云端 用户自己操作
// 上传图片之后
// 脚本会把以前的外链替换成云端地址+拼接一个图片名
markdownImage.updateOption({
new_image_url: 'https://xxx.com/目录地址/', // 图片上传的地址
add_end: '?raw=true' // github图片地址有后缀 直接进去是仓库
})
// 替换外链
// 把replace_image_url的字符串换成new_image_url字符串
markdownImage.replaceMarkdown();
仔细阅读文本,配置好参数之后
在项目根节点新建一个handleImg.js
文件,安装一下脚本,然后用node
运行该文件:
npm i markdown-img-down-site-change -S
node handleImg.js
有需要的小伙伴,赶紧来试试吧!文档写的很全,上手非常轻松,项目将会持续维护,有什么问题,欢迎给我提issue~
如果觉得这个脚本还不错的话,就给项目点个Star吧!
如果觉得文档蛮详细的,插件还不错的话,就点击右上角, 给我个Star ⭐️ 鼓励一下我吧~