外链失效?论如何用脚本一次性下载/替换失效的外链图片


前言

大约一个月前,微博的图片外链失效了,以及掘金因为盗链问题也于 2019/06/06决定开启防盗链,造成的影响是:个人博客网站的引用了这些图片外链都不能显示

目前微博和掘金的屏蔽,在CSDN和segmentfault都是可以正常显示的,只影响个人博客

比如前段时间我的博客:http://obkoro1.com上引用的微博图片都不能显示了。

因为我写博客比较频繁,被屏蔽的图片不在少数,肯定不能一个个手动的替换,查了一番没有找到现成的解决方案,做了个脚本工具,并且写了文档把它开源出来了。

markdown-img-down-site-change(下载/替换markdown中的图片)

搜索目标文件夹中的markdown文件,找到目标图片,提供下载图片,替换图片链接的功能-通常用于markdown 图片失效。

简介

这是一个极为轻量的脚本,引用包,设置好参数,通过API即可轻松上手。

解决什么问题?

  1. 集中下载markdown文件中某个域名下的图片到一个文件夹下。

  2. 用新的图片链接替换markdown文件中某个域名的图片链接。

  
    
  
  
  
  1. // 1. 下载这两个图片

  2. // ![](https://user-gold-cdn.xitu.io/2019/5/20/图片名字?w=2024&h=1240&f=png&s=339262)

  3. // ![](https://user-gold-cdn.xitu.io/2018/6/16/图片名字)

  4. // 2. 替换成:github的链接

  5. ![](https://raw.githubusercontent.com/OBKoro1/articleImg_src/master/juejin/图片名字?w=2024&h=1240&f=png&s=339262)

  6. ![](https://raw.githubusercontent.com/OBKoro1/articleImg_src/master/juejin/图片名字)

安装:

  
    
  
  
  
  1. npm i markdown-img-down-site-change -S

文档:

Github

API

更新日志

数据安全:

刚上手可能不了解脚本的功能,需要调试一番,这时候万一把 markdown文件给改坏了,岂不是要哭死?

脚本有两种形式来防止这种情况发生:

  1. 脚本会默认备份你的文件。

  2. 默认开启测试模式,等到调试的差不多了,可以关闭测试模式。

  3. 建议:再不放心的话,可以先用一两个文件来测试一下脚本

使用:20行代码不到

在项目中有一个使用栗子,里面加了蛮多注释和空行的,实际代码20行都不到,可以说很简单了,如下:

  
    
  
  
  
  1. // npm i markdown-img-down-site-change -S

  2. const markdownImageDown = require('markdown-img-down-site-change'); // 文件模块

  3. // 传参: 这也是脚本的默认参数,根据情况可以自行修改

  4. let option = {

  5. replace_image_url: 'https://user-gold-cdn.xitu.io/',

  6. read_markdown_src: './source', // 要查找markdown文件的文件夹地址

  7. down_img_src: './juejin', // 下载图片到这个文件夹

  8. var_number: 3 // url前半部分的变量数量 比如上面的日期: /2019/5/20/、/2018/6/16/

  9. }

  10. // 初始化

  11. const markdownImage = new markdownImageDown(option)

  12. // 下载外链

  13. markdownImage.checkDownImg();

  14. // 上传下载下来的图片文件夹到云端 用户自己操作

  15. // 上传图片之后

  16. // 脚本会把以前的外链替换成云端地址+拼接一个图片名

  17. markdownImage.updateOption({

  18. new_image_url: 'https://xxx.com/目录地址/', // 图片上传的地址

  19. add_end: '?raw=true' // github图片地址有后缀 直接进去是仓库

  20. })

  21. // 替换外链

  22. // 把replace_image_url的字符串换成new_image_url字符串

  23. markdownImage.replaceMarkdown();

运行:

仔细阅读文本,配置好参数之后

在项目根节点新建一个 handleImg.js文件,安装一下脚本,然后用 node运行该文件:

  
    
  
  
  
  1. npm i markdown-img-down-site-change -S

  2. 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、邮箱:[email protected]

以上2019.06.04


种一颗树最好的时间是十年前,其次就是现在了!


点击下方,阅读原文,访问文中链接吧!



本文分享自微信公众号 - OBKoro1前端进阶积累(gh_8af2fb8e54a9)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章