标签:github https cdn gitee 图床 mdpicture echo
gitee个垃圾玩意,图床都禁用,以后不再使用国产这些东西,容易被坑。
晚上花了点时间把blog的图床由gitee迁移github,并且使用cdn jsdelivr加速,在没有梯子情况下,也可以看到blog引用的图片。
我使用的是typora+picgo+github+cdn jsdelivr的组合方式。
第一步,先把gitee上的图床仓库迁移到github
1.从gitee clone下来,在github创建仓库,push github仓库,保持仓库名和目录和gitee的相同,在master分支。
第二步,替换blog内图床的地址
比如我的图床一个图片 https://gitee.com/yulewo123/mdpicture/raw/master/docs/20201010000942.png
需要替换为 https://raw.githubusercontent.com/zhangyj131/mdpicture/master/docs/20220326144026.png
即把文件名前面的替换即可,这里写个shell进行替换。
但是 https://raw.githubusercontent.com域名,由于网络问题,许多人看不了,因此使用cdn域名 https://cdn.jsdelivr.net/gh加速,最终替换为
https://cdn.jsdelivr.net/gh/zhangyj131/mdpicture/docs/20220326144026.png 切记url中没有master。
具体替换shell内容如下
#!/bin/bash
#文件名replace.sh
#使用说明:把该shell放到和markdown文件同目录下,然后右键Git Bash here,执行 sh ./replace.sh 即可
oldurl="https://gitee.com/yulewo123/mdpicture/raw/master/docs" #改为自己旧url,比如gitee url
newurl="https://cdn.jsdelivr.net/gh/zhangyj131/mdpicture" #改为自己新url,比如github url
echo "原url=${oldurl}"
echo "新url=${newurl}"
#把url中的/替换为\/ 参考https://unix.stackexchange.com/questions/315473/how-to-obtain-instead-after-a-sed-substitution
oldurlConvert=`echo ${oldurl}|sed 's/\//\\\\\//g'` #echo "https://gitee.com/yulewo123/mdpicture/raw/master/docs"|sed 's/\//\\\//g' 结果 https:\/\/gitee.com\/yulewo123\/mdpicture\/raw\/master\/docs 但是表达式内要多加\
echo "oldurlConvert=$oldurlConvert"
newurlConvert=`echo ${newurl}|sed 's/\//\\\\\//g'`
echo "newurlConvert=${newurlConvert}"
#####################执行#####################
for fd in ./*.md
do
echo "处理文件-> "$fd
#sed -i 's/$oldurlConvert/$newurlConvert/g' "$fd" #用单引号无法进行替换,在shell里用sed,如果有$这样的特殊字符,单引号要换成双引号才可以
sed -i "s/$oldurlConvert/$newurlConvert/g" "$fd" #用"$fd" 原因是文件名可能带空格
#sed -i 's/https:\/\/gitee.com\/yulewo123\/mdpicture\/raw\/master\/docs/https:\/\/cdn.jsdelivr.net\/gh\/zhangyj131\/mdpicture\/docs/g' "$fd" #实例
done
echo "转换成功...."
第三步,picgo内改为github图床,并自定义图床url,https://cdn.jsdelivr.net/gh/用户名/图床仓库名
如此搞定,还是感觉使用github安全,但是这个cdn,不知道存活多久,但愿https://cdn.jsdelivr.net/gh
能长久。
PS:写完这个shell,后来才想到,在idea内可以全局替换的,白花了这么长时间。
后记
后来查了下,gitee条款本身不支持图床,jsdelivr其实也不支持图床协议内容,具体可以看知乎,骂错gitee了,不管怎么样,还是不使用gitee作为图床了,虽然最后3.28号gitee又让使用图床了。
标签:github,https,cdn,gitee,图床,mdpicture,echo 来源: https://www.cnblogs.com/zhangyjblogs/p/16103863.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。