外鏈失效?論如何用腳本一次性下載/替換失效的外鏈圖片


前言

大約一個月前,微博的圖片外鏈失效了,以及掘金因爲盜鏈問題也於 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源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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