前言

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

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

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

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

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

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

简介

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

解决什么问题?

  1. 集中下载markdown文件中某个域名下的图片到一个文件夹下。
  2. 用新的图片链接替换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/图片名字?w=2024&h=1240&f=png&s=339262)
![](https://raw.githubusercontent.com/OBKoro1/articleImg_src/master/juejin/图片名字)
复制代码

安装:

npm i markdown-img-down-site-change -S
复制代码

文档:

Github

API

更新日志

数据安全:

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

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

  1. 脚本会默认备份你的文件。
  2. 默认开启测试模式,等到调试的差不多了,可以关闭测试模式。
  3. 建议:再不放心的话,可以先用一两个文件来测试一下脚本

使用: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

转载于:https://juejin.im/post/5cf664e0e51d454d5653579e

掘金外链即将失效?论如何用脚本一次性下载/替换失效的外链图片相关推荐

  1. 复制百度文库的文字加什么后缀_外链引流对SEO有帮助 选择域名后缀便于发外链...

    原标题:外链引流对SEO有帮助 选择域名后缀便于发外链 SEO优化是外链变得尤其重要,但很多人都知道发外链比较难,如论坛外链比较被删除或无法通过,那么我们做网站优化的时候选择域名后缀也很重要,如一下新 ...

  2. 【程序员必看】如何用Python从0开始创建一个区块链?

    在数字货币盛行的档口,比特币,这币那币到底值不值得信赖呢?也许你像很多人一样感到新奇,想接近它,但只因背后的区块链技术,阻断了向新领域尝试的步伐.不过,对于程序员来说,想真正搞懂比特币,搞懂区块链,可 ...

  3. 如何用 Python 从 0 开始创建一个区块链?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 在数字货币盛行的档口,比特币,这币那币到底值不值得信赖呢?也许你像很多人一样感到新奇,想接近 ...

  4. 如何用Python从0开始创建一个区块链?

    转自:http://blog.csdn.net/blockchain_lemon/article/details/79395163 在数字货币盛行的档口,比特币,这币那币到底值不值得信赖呢?也许你像很 ...

  5. 看完此文再不懂区块链算我输:手把手教你用Python从零开始创建区块链

    导读:如果你还没有听说过 3 点钟区块链群,说明你还不是链圈的人:如果你还没有加入 3 点钟区块链群,说明你还不是链圈的大佬:如果你还没有被 3 点钟区块链群刷屏,说明你还体会不到什么是"币 ...

  6. 太 6 了!区块链包包、疫情防控大脑……程序员这样玩转区块链!

    在今年315晚会上,品牌连锁餐厅将过期的汉堡包正常提供给消费者食用事件登上热搜,引起大众哗然. 早在2019年,国务院发布<关于深化改革加强食品安全工作的意见>,对于区块链技术的食品安全应 ...

  7. 区块链技术沙龙最全回顾:我们需要做怎样的区块链?

    导读:在诸多新技术付诸应用之后,越来越多的技术从业者开始发现,似乎摩尔定律已经开始失灵了,两年的周期远远跟不上技术和信息爆炸的速度.但与此同时,我们却发现另一个定律出乎意外的开始在科技圈里盛行,那就是 ...

  8. 链游时代来临!1周12款游戏与公有区块链MagnaChain签约上链

    2018年的ChinaJoy近日在上海完美收官,本届CJ最大的亮点在区块链游戏作为创新技术及生态首次登场,受到众多关注.在大会落幕后的一周内,已经有包含黑沫科技的<ETH Chaos>等1 ...

  9. 懒人日报 | 链节点上线“安全情报”节点、“英雄链”诈骗案24位嫌疑人被刑拘、天津自贸区支持区块链验证等技术......

    热点事件 [ChainNode链节点正式上线"安全情报"节点,助力区块链生态安全]  6月6日下午,ChainNode链节点宣布正式上线"安全情报"节点,这是C ...

最新文章

  1. NLP-基础知识-002 (语言模型)
  2. ubuntu18 安装 chrome
  3. docker ps命令详解 列出运行中的容器
  4. SSL 1613——最短路径问题(最短路)
  5. C# 调用其他的动态库开发应注意的问题
  6. Spring Boot 配置文件bootstrap和application的加载顺序
  7. c语言怎样用vc绘图,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  8. HTC G14解锁S OFF 刷机 获取ROOT权限
  9. Virtual Breadboard 4.46 arduino模拟仿真虚拟 破解下载
  10. h5可拖动悬浮按钮_移动端可拖拽悬浮窗+点击事件
  11. 相关性分析:Pearson、Kendall、Spearman
  12. extern 关键字详解
  13. win7自动登录(win7自动登录不用输入密码)
  14. 启动系统时弹窗“Cannot load resource dll:REPLRES.RLL”弹窗问题解决
  15. 局域网有一台计算机网络慢,局域网网速变慢的五种解决办法
  16. Win10问题篇:解决鼠标玩游戏单击(左击/右击)失灵问题。
  17. 2017.3.15读完《围城》
  18. uniapp 选择元素,操作元素属性
  19. 【C语言】exit(0)与exit(1)有什么区别
  20. JQuery AutoComplete插件实现自动补全

热门文章

  1. 微型计算机二进制,微型计算机原理二进制十进制十六进制.docx
  2. php在线支付系统,Thinkphp各大支付平台在线支付集成源码
  3. 8_python基础—高级变量类型(字符串、列表、元组、字典、集合)
  4. mac安装python3.8_mac安装pwntools(python3.8)解决多数问题
  5. pictureselector 压缩_Android 多图选择器PictureSelector 使用
  6. ibatis mysql_mysql +ibatis
  7. java实验的总结_java实验总结
  8. android wear ios表盘,秒杀 Apple Watch,Android Wear 又有 17 款新表盘可以玩啦!
  9. groovy 和 java的区别_Groovy和JAVA的区别
  10. JDOM与DOM的相互转换