CSDN外链失效3:

参考我之前的博客:

外链失效博客1:随想笔记1:CSDN写博客经常崩溃,遇到外链图片转存失败怎么办_csdn外链图片转存失败-CSDN博客

外链失效博客2:网络随想2:转语雀_md格式转语雀lake格式-CSDN博客

markdown笔记:MarkDown笔记记录app——待更新_md笔记软件-CSDN博客

事情起因:

最近堆积了好多博客,但是在csdn上发现外链都失效了

正好最近github copilot免费版本已经可以在vscode上使用了,虽然免费版的额度限制很多

至于学生认证的步骤,可以参考很多网上的教程:
重点不在于什么profile实名认证、email教育邮箱、2步验证、payment信息添加,

重点在于最后一步拍照验证的时候需要上传学生认证资料,只能使用电脑本身或者是手机浏览器的摄像头,但是非常糊,简单都拍不清文字,但是实际上只要手写验证资料再拍照即可(对,就是这么草率)


可以和自己的项目联动:

主要是编写了一个程序,用于提取下载原来markdown文件中的图片链接,构建本地图床,顺便修改原本的markdown文件替换为修改后图床的图片链接

import argparse  # 用于解析命令行参数
import os  # 用于操作文件和目录
import shutil  # 用于文件复制
import re  # 用于正则表达式操作
import requests  # 用于发送HTTP请求def download_image(url, folder):response = requests.get(url, stream=True)  # 发送HTTP GET请求获取图片if response.status_code == 200:  # 如果请求成功(状态码200)filename = os.path.join(folder, url.split('/')[-1])  # 生成保存图片的文件路径with open(filename, 'wb') as out_file:  # 以二进制写模式打开文件shutil.copyfileobj(response.raw, out_file)  # 将响应内容写入文件return filename  # 返回保存的文件路径else:print(f"Failed to download {url}")  # 如果请求失败,打印错误信息return None  # 返回None# 当前文件夹内md个数计算
file_list = os.listdir()  # 列出当前文件夹中的所有文件
count_md = 0  # 初始化Markdown文件计数
md_file = ''  # 初始化Markdown文件名
for file in file_list:if file[-3:] == '.md':  # 如果文件以.md结尾count_md += 1  # 计数加1md_file = file  # 记录文件名# 添加命令行参数
parser = argparse.ArgumentParser()  # 创建ArgumentParser对象
if count_md == 1:parser.add_argument('--input', type=str, default=md_file, help='markdown file')  # 如果只有一个Markdown文件,设置为默认输入文件
else:parser.add_argument('--input', type=str, help='markdown file')  # 否则需要指定输入文件
parser.add_argument('--imgdir', type=str, default='img', help='存图片文件夹')  # 指定存放图片的文件夹,默认值为img
parser.add_argument('--output', type=str, help='输出md文件名')  # 指定输出的Markdown文件名
args = parser.parse_args()  # 解析命令行参数
imgdir = args.imgdir  # 获取图片文件夹路径
mdout = 'mdout'  # 输出内容所在文件夹
print(f"输入文件: {args.input} 图片文件夹: {args.imgdir} 输出文件: {args.output}")
if args.output == None:  # 如果没有规定输出md文件名args.output = os.path.join(mdout, os.path.basename(args.input))  # 使用输入文件名作为输出文件名print(f"输入文件: {args.input} 图片文件夹: {args.imgdir} 输出文件: {args.output}")
# 文件夹创建
if not os.path.exists(mdout):  # 如果输出文件夹不存在os.makedirs(mdout)  # 创建输出文件夹
if not os.path.exists(os.path.join(mdout, imgdir)):  # 如果图片文件夹不存在os.makedirs(os.path.join(mdout, imgdir))  # 创建图片文件夹
with open(args.input, 'r', encoding='utf-8') as f:  # 以utf-8编码读取输入的Markdown文件md = f.read()  # 读取文件内容# 正则提取
img_md = re.findall(r'!\[.*?\]\((.*?)\)', md)  # 提取Markdown格式的图片路径
img_html = re.findall(r'<img src="(.*?)" .*?/>', md)  # 提取HTML格式的图片路径
img_paths = img_md + img_html  # 合并两个列表得到所有图片路径for i in img_paths:if i.startswith('http'):  # 如果是远程图片img = download_image(i, os.path.join(mdout, imgdir))  # 下载到本地else:img = os.path.join(imgdir, os.path.basename(i))  # 获取本地图片路径shutil.copy(i, os.path.join(mdout, img))  # 复制到指定文件夹if img:md = md.replace(i, img)  # 更新Markdown文件中的图片路径with open(args.output, 'w', encoding='utf-8') as f:  # 以utf-8编码写入输出的Markdown文件f.write(md)  # 写入更新后的Markdown内容

默认当前文件夹中的md文件作为输入,默认当前文件夹中的img文件夹为图床,默认mdout中的md为替换后的md文件

下载mdout文件夹中的img图片图床+替换后的md文件

本来是打算上传md文件之后再重新另外上传图床

但是其实图床虽然能够导入,但是对应位置信息全乱了,直接图片全堆在一起,还是没有替换整理掉原来的乱序的图片。

后来发现:

干脆不要在富文本编辑器中导入md,直接在非md编辑界面上复制粘贴发布文章即可

参考:
python提取markdown图片到当前文件夹并修改图片路径_markdown图片转本地-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/890382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernates

kubernates是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kubernetes提供了应用部署&#xff0c;规划&#xff0c;更新&#xff0c;维护的一种机制。 架构…

Pycharm 更改字体大小

更改代码字体的大小 更改软件字体的大小

Ubuntu20.04解决docker安装后is the docker daemon running? 问题

Ubuntu20.04解决docker安装后is the docker daemon running? 问题 问题描述问题分析问题解决 问题描述 docker info后报错 ERROR: Cannot connect to the Docker daemon at unix:///root/.docker/desktop/docker.sock. Is the docker daemon running? errors pretty printi…

四、使用langchain搭建RAG:金融问答机器人--构建web应用,问答链,带记忆功能

经过前面3节完成金融问答机器人基本流程&#xff0c;这章将使用Gradio构建web应用&#xff0c;同时加入memory令提示模板带有记忆的&#xff0c;使用LCEL构建问答链。 加载向量数据库 from langchain.vectorstores import Chroma from langchain_huggingface import HuggingF…

深度学习之超分辨率算法——SRCNN

网络为基础卷积层 tensorflow 1.14 scipy 1.2.1 numpy 1.16 大概意思就是针对数据&#xff0c;我们先把图片按缩小因子照整数倍进行缩减为小图片&#xff0c;再针对小图片进行插值算法&#xff0c;获得还原后的低分辨率的图片作为标签。 main.py 配置文件 from model im…

基于海思soc的智能产品开发(mcu读保护的设置)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于市场上的产品&#xff0c;除了电路之外&#xff0c;软件保护也是非常重要的一个环节。要是自己辛辛苦苦写的软件&#xff0c;被竞争对手轻易地…

Zabbix6.0升级为6.4

为了体验一些新的功能&#xff0c;比如 Webhook 和问题抑制等&#xff0c;升级个小版本。 一、环境信息 1. 版本要求 一定要事先查看官方文档&#xff0c;确认组件要求的版本&#xff0c;否则版本过高或者过低都会出现问题。 2. 升级前后信息 环境升级前升级后操作系统CentOS…

GitLab的卸载与重装

目录 一、GitLab的卸载 二、 GitLab的安装与配置 1. 创建安装目录 2. 安装 3. 使用 3.1 初始化 3.2 创建空白项目 ​编辑 3.3 配置SSH 3.3.1 配置公钥 ​编辑 3.3.2 配置私钥 3.4 配置本地git库 一、GitLab的卸载 1. 停止gitlab sudo gitlab-ctl stop 2. 卸载…

Linux快速入门-Linux的常用命令

Linux的常用命令 1. Linux的终端与工作区1.1 终端概述1.2 切换终端 2. Shell语言解释器2.1 Shell概述 3. 用户登录与身份切换3.1 su 命令3.2 sudo 命令 4. 文件、目录操作命令4.1 pwd 命令4.2 cd 命令4.3 ls 命令4.3.1 ls 指令叠加使用 4.4 mkdir 命令4.5 rmdir 命令4.6 cp 命令…

三、ubuntu18.04安装docker

1.使用默认ubuntu存储库安装docker 更新软件存储库 更新本地软件数据库确保可以访问最新版本。打开终端输入&#xff1a;sudo apt-get update 卸载旧版本的docker 建议继续之前卸载任何旧的docker软件。打开终端输入&#xff1a;sudo apt-get remove docker docker-engine …

【Linux系统编程】:信号(2)——信号的产生

1.前言 我们会讲解五种信号产生的方式: 通过终端按键产生信号&#xff0c;比如键盘上的CtrlC。kill命令。本质上是调用kill()调用函数接口产生信号硬件异常产生信号软件条件产生信号 前两种在前一篇文章中做了介绍&#xff0c;本文介绍下面三种. 2. 调用函数产生信号 2.1 k…

专业电脑数据恢复软件 iFind Data Recovery v9.2.3 绿色便携版

前言 iFinD Data Recovery一款特别实用的数据找回工具&#xff0c;它很厉害&#xff0c;能帮你在SSD硬盘和Windows10系统上找回丢失的数据。而且&#xff0c;它还能深度扫描并恢复各种主流数码相机里的RAW格式照片&#xff0c;速度超快&#xff0c;用起来也很稳定顺畅&#xf…

QT:Widgets中的数据库应用

SQL数据库驱动 pro文件中添加如下一行代码 QT sql widgetsmain.cpp #include <QApplication> #include <QSqlDatabase> #include <QStringList> int main(int argc, char *argv[]) {QApplication a(argc, argv);qDebug() << "Available driver…

AI的进阶之路:从机器学习到深度学习的演变(三)

&#xff08;承接上集&#xff1a;AI的进阶之路&#xff1a;从机器学习到深度学习的演变&#xff08;二&#xff09;&#xff09; 四、深度学习&#xff08;DL&#xff09;&#xff1a;机器学习的革命性突破 深度学习&#xff08;DL&#xff09;作为机器学习的一个重要分支&am…

数据集-目标检测系列 车牌检测识别 数据集 CCPD2019

车牌检测&识别 数据集 CCPD2019 DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” 贵在坚持&#xff01; 数据样…

(2024.12)Ubuntu20.04安装ZED-SDK

一.官网地址 ZED SDK 4.2 - Download | Stereolabs 选择适配版本进行下载 二.安装程序 下载完成后&#xff0c;进入文件目录&#xff0c;打开终端&#xff0c;输入&#xff1a; chmod x ZED_SDK_Ubuntu20_cuda11.8_v4.2.2.zstd.run ./ZED_SDK_Ubuntu20_cuda11.8_v4.2.2.zst…

python coding(二) Pandas 、PIL、cv2

Pandas 一个分析结构化数据的工具集。Pandas 以 NumPy 为基础&#xff08;实现数据存储和运算&#xff09;&#xff0c;提供了专门用于数据分析的类型、方法和函数&#xff0c;对数据分析和数据挖掘提供了很好的支持&#xff1b;同时 pandas 还可以跟数据可视化工具 matplotli…

第十五届蓝桥杯Scratch01月stema选拔赛—排序

排序 具体要求&#xff1a; 1). 点击绿旗&#xff0c;在舞台上出现4张点数不同的扑克牌&#xff0c;牌上的点数是随机的&#xff08;4-9点&#xff09;&#xff0c;如图所示&#xff1b; 完整题目可点击下方链接查看&#xff1a; 排序_scratch_嗨信奥-玩嗨信息奥林匹克竞赛-…

图形 3.4 延迟渲染管线介绍

延迟渲染管线介绍 B站视频&#xff1a;图形 3.4 延迟渲染管线介绍 文章目录 延迟渲染管线介绍渲染路径前向渲染渲染流程光照规则 延迟渲染渲染流程几何缓冲区 G-buffer 不同渲染路径的优劣以及特性优劣 Unity中渲染路径设置移动端优化分块延迟渲染 其他渲染路径不同路径下光源…

Qt之串口设计-线程实现(十二)

Qt开发 系列文章 - Serial-port&#xff08;十二&#xff09; 目录 前言 一、SerialPort 二、实现方式 1.创建类 2.相关功能函数 3.用户使用 4.效果演示 5.拓展应用-实时刷新 总结 前言 Qt作为一个跨平台的应用程序开发框架&#xff0c;在串口编程方面提供了方便易用…