博客图片失效?使用npm工具一次下载/替换所有失效的外链图片
前言
大约一个月前,微博的图片外链失效了,以及掘金因为盗链问题也于2019/06/06
决定开启防盗链,造成的影响是:个人博客网站的引用了这些图片外链都不能显示。
目前微博和掘金的屏蔽,在CSDN和segmentfault都是可以正常显示的,只影响个人博客。
比如前段时间我的博客:http://obkoro1.com上引用的微博图片都不能显示了。
因为我写博客比较频繁,被屏蔽的图片不在少数,肯定不能一个个手动的替换,查了一番没有找到现成的解决方案,做了个脚本工具,并且写了文档把它开源出来了。
markdown-img-down-site-change(下载/替换markdown中的图片)
搜索目标文件夹中的markdown文件,找到目标图片,提供下载图片,替换图片链接的功能-通常用于markdown 图片失效。
简介
这是一个极为轻量的脚本,引用包,设置好参数,通过API即可轻松上手。
解决什么问题?
- 集中下载markdown文件中某个域名下的图片到一个文件夹下。
- 用新的图片链接替换markdown文件中某个域名的图片链接。
// 1. 下载这两个图片
// 
// 
// 2. 替换成:github的链接


安装:
npm i markdown-img-down-site-change -S
文档:
数据安全:
刚上手可能不了解脚本的功能,需要调试一番,这时候万一把markdown
文件给改坏了,岂不是要哭死?
脚本有两种形式来防止这种情况发生:
使用:20行代码不到
在项目中有一个使用栗子,里面加了蛮多注释和空行的,实际代码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
功能/参数简介:
checkDownImg()
: 下载查找到的图片replaceMarkdown()
: 替换图片链接为新的图片链接replace_image_url
:要替换的图片地址new_image_url
:图片的新地址test
: 测试模式。var_number
: 匹配图片链接的图片名之前的url,值为变量数量is_link
: 匹配链接。write_file_time
: 间隔多久修改markdown图片链接read_markdown_src
:要查找markdown文件的文件夹地址down_img_src
:下载图片到这个地址下copy_item_data
: 备份项目filter_item
: 过滤某些文件夹,不查找markdown。add_end
:在图片链接后面添加后缀添加后缀
欢迎试用
有需要的小伙伴,赶紧来试试吧!文档写的很全,上手非常轻松,项目将会持续维护,有什么问题,欢迎给我提issue~
如果觉得这个脚本还不错的话,就给项目点个Star吧!
博客、前端积累文档、公众号、wx:OBkoro1、邮箱:obkoro1@foxmail.com
以上2019.06.04
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!