本文最后更新于:June 20, 2022 pm
前言
之前博客的图片都是利用gitee当图床存储的,在上个月的某一天gitee突然给我发了个邮件屏蔽了我的图床仓库,如下:
周围用gittee当图床的同学也都是这个情况,属于是养肥之后收割了。博客图片全部失效,我之前也没有备份,直接心态崩了,看着满屏的gitee的logo就脑袋疼,还好之后联系管理员给我把仓库开了供我下载备份。由于3月到现在一直在忙着找实习,一直没空来管这个,最近总算有空来解决这个问题了。
解决
现在图片是有了,不管是找其他图床还是直接把图片和文章一块部署上去,都需要对文章里面图片的路径做一个全局替换。显然这是个体力活,对于体力活来说,必须偷懒,所以有了下面的一个脚本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| import os import regex as re import time
def modifyContent(top): for root, dirs, files in os.walk(top, topdown=False): for file_name in files: file_name_split = file_name.split('.')
try: if file_name_split[-1] == 'md': md_file_path = os.path.join(root, '.'.join(file_name_split)) copy_md_file_path = os.path.join(root, '.'.join([f'{file_name_split[0]}_copy', file_name_split[1]]))
with open(md_file_path, 'r', encoding='utf8') as fr, \ open(copy_md_file_path, 'w', encoding='utf8') as fw: data = fr.read() data = re.sub('https://gitee.com/acacac13/images/raw/master', 'picture', data) fw.write(data) os.remove(md_file_path) os.rename(copy_md_file_path, md_file_path) print(f'{md_file_path} done...') time.sleep(0.5) except FileNotFoundError as e: print(e) time.sleep(0.5)
if __name__ == '__main__': top = r'....../source/_posts' modifyContent(top)
|
简单记录一下步骤:
- 在博客的
source
文件夹下新建一个图片文件夹picture
,并把所有图片放入其中;
- 通过上面的脚本替换掉
_post
文件夹下所有文章中的图片路径;
- 可以打开md文件看到已经可以正常显示图片了;
hexo clean
;
hexo g
查看public
文件夹下是否有picture
文件夹,若有则替换成功,若没有则检查第一步是否是在source
文件夹下新建的图片文件夹;
- 最后
hexo d
部署。
这样的话只是把封面图片和顶部图片恢复了,仔细查看public文件夹的文章路径可以知道用之前的相对路径是不行的,因此恢复文章的图片还得需要在_post
文件夹下建立与文章相同文件名的文件夹放入图片,再修改文章中的图片路径,此时修改路径其实将 typora 的偏好设置设置如下然后再直接cv即可,后面的步骤就是正常的部署文章了。