使用一些MarkDown软件写博客时大都会设置图片自动上传,这样只需要复制一遍MarkDown文本即可粘贴到多个平台发布,很多免费的图床插件都是将图片上传至微博图床,毕竟免费。但微博并不会那么大方,在请求微博图片时会检测request头部Referer字段的值,来鉴别请求来源。

解决方法就是将Referer禁掉,例如可以在html文件中设置meta标签如下:

<meta name="referrer" content="never">

另一种方法是在每个img的标签设置referrerpolicy属性:

<img src="" referrerpolicy="no-referrer">

如果你的图片引用比较少还好,如果引用的图片多了,一个一个改就太麻烦,交给程序去帮我们做这件事就非常合适。

设计一个jar包,只需要执行一遍的java -jar,即可全自动扫描jar包所在目录下的所有md文件,并自动将 ![]() 更换为 <img> 标签的形式,且支持以追加参数的形式指定扫描目录。

jar包已上传,下载链接:https://download.csdn.net/download/yueshutong123/11254117

最后贴一下Java代码:

/*** 使用方法:* java -jar 的形式执行jar包* 默认扫描jar包所在路径,不会递归扫描* 可以追加参数 path=xxx 指定扫描xxx目录*/
public class App {public static void main(String[] args) throws IOException {String path = null;for (int i = 0; i < args.length; i++) {String arg = args[i];if (arg.startsWith("path=")){path = arg.substring(5);break;}}if (path==null){path = System.getProperty("user.dir");}System.out.println("--开始扫描目录:"+path);File file = new File(path);File[] list = file.listFiles();if (list == null) {System.out.println("--空目录");return;}//创建输出目录String out = path + "/out/";new File(out).mkdir();for (int i = 0; i < list.length; i++) {String name = list[i].getName();if (!(list[i].isFile() && (name.endsWith(".md") || name.endsWith(".MD")))) {continue;}System.out.println("--"+list[i].getName());try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(list[i])));BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(out+name))))) {String line;while ((line = reader.readLine()) != null) {String src = src(line);writer.write(src +"\n");}writer.flush();}}System.out.println("--结束");}/*** 提取img的src*/private static String src(String s){String[] split = s.split("!");for (int i = 0; i < split.length; i++) {if (split[i].length()>4&&split[i].contains("[")&&split[i].contains("]")&&split[i].contains("(")&&split[i].contains(")")){int start = split[i].lastIndexOf("(");int end = split[i].lastIndexOf(")");String s1 = split[i].substring(start + 1, end);s = s.replace("!" + split[i], "<img src=\"" + s1 + "\" referrerPolicy=\"no-referrer\"/>");}}return s;}}

转载于:https://www.cnblogs.com/yueshutong/p/11070709.html

Markdown引用微博图床被防盗链不加载响应403完美解决相关推荐

  1. vscode设置网页的域名_微博图床不能用了?教你在VSCODE中如何使用腾讯图床

    VSCODE使用腾讯COS做图床教程 一.序言 最近微博图床的外链问题导致大家都在想办法找新的图床. 因为我一直用的是VSCODE来写文章,所以找了一下,发现VSCODE有朋友新开发了一个插件, 我自 ...

  2. 如何优雅的使用markdown写博客--微博图床使用说明

    一: 我的理想 我一直有一个理想, 写博客就舒心的去写, 然后能够在知乎, 简书, csdn, 科学网上任意复制, 这是多么快意的人生. Markdown的出现, 满足了我90%的需求, 一个痛点就是 ...

  3. html编辑器知乎,科学网—如何优雅的使用markdown写博客--微博图床使用说明 - 邓飞的博文...

    一: 我的理想 我一直有一个理想, 写博客就舒心的去写, 然后能够在知乎, 简书, csdn, 科学网上任意复制, 这是多么快意的人生. Markdown的出现, 满足了我90%的需求, 一个痛点就是 ...

  4. (Ⅲ)使用七牛云作为图床获取外链方式总结(已更换为使用PicGO+腾讯云COS)

    1. 图床的选择 (1) 什么是图床? 很多技术人写作都有在用 Markdown 轻量级标记语言进行博客写作,这种写作让我们不用像使用 Word 那么麻烦调整排版和格式,而只需专心写作照样完成排版的一 ...

  5. (Ⅲ)使用七牛云作为图床获取外链方式总结(已更换为使用PicGO+腾讯云COS)...

    1. 图床的选择 (1) 什么是图床? 很多技术人写作都有在用 Markdown 轻量级标记语言进行博客写作,这种写作让我们不用像使用 Word 那么麻烦调整排版和格式,而只需专心写作照样完成排版的一 ...

  6. Windows 微博图床工具(支持多种图床)下载和picgo VSCode插件版的详细介绍

    文章目录 1. 推荐阅读 2. 按 3. Picgo说明 3.1. 官方Github 3.2. 官方帮助 3.3. 概要说明 4. picgo下载 4.1. OneDrive 5. picgo插件版 ...

  7. 发现一个微博图床API和图片上传代码

    网上寻到一款微博图床的插件,然后顺藤摸瓜找到了原作者的API代码. API文件: 1 <?php 2 /** 3 * 上传图片到微博图床 4 * @author Youngxj & me ...

  8. hexo博客微博图床失效解决办法

    最近在v2ex上看到有人说微博图床开始限制外链了.当时我看了看我的博客,图片还好.第二天再去看的时候就挂了.评论里有人说改一个no-ferrer能解决. 记录一下操作方法. N:\blog\theme ...

  9. java微博图床小工具

    文章目录 介绍 为什么开源 准备环境 windows如何使用 介绍 webpic 是一个用java编写的图床工具,它能帮助你快速上传你的图片到微博云图床,并自动返回Markdown格式链接到剪贴板.配 ...

最新文章

  1. Linux/ubuntu server 18.04 安装远程桌面--vnc server
  2. http头部信息解析
  3. Tether销毁5亿USDT;BCH将于11月15日硬分叉,SV-Pool已向普通矿工开放
  4. JQuery笔记(一)
  5. 一些实用的mysql语句(不断积累更新)
  6. java中顺式和链式_Java单链表顺序和链式实现(数据结构五)
  7. 第2周项目1c++语言中函数参数传递的三种方式
  8. 天啊,为什么我的 Redis 变慢了。。
  9. Unity3d疑难问题解决
  10. 时间复杂度和空间复杂度的故事
  11. layui 金额数据千分位_IG神秘打野韩服数据,盲僧数据或暗示英雄池问题
  12. 借个iPad玩玩,越狱4.2.1成功
  13. echarts中datazoom相关配置
  14. 大道至简 7、8、读后感
  15. 闲来无事写个qt实现机器人
  16. Centos 7镜像官网下载
  17. android----面试基础概括总结
  18. MiniDP与HDMI的关系
  19. 为什么大容量的服务器SAS硬盘普遍都只有7200rpm的转速?
  20. 网站打开速度慢怎么解决

热门文章

  1. 磁盘格式怎么转换?Tuxera NTFS对磁盘进行不同格式转换教程
  2. DHTML、XHMLT、HTML的区别
  3. linux抓包查对方的mac地址,1.根据MAC地址抓包
  4. 第九篇:稳定性之面向失败设计【可用性架构设计、可用性容灾】
  5. 《刻意练习》读书笔记
  6. 小学期云效能训练营-Day04
  7. 人工智能界专家:现在我们的机器智商还不及老鼠
  8. Dubbo comsumer 远程调用流程分析
  9. 浅谈soul网关架构图
  10. LinkIQ 福禄克全新的以太网电缆,网络和PoE测试仪LIQ-100 LIQ-KIT