自动化markdown插入图床

之前用的是sm.ms的一个公共图床,的确很不错,还有开放API端口,很不错。于是我写了个自动化脚本,来实现上传到图床然后去对文本的连接进行替换的操作,但是由于这个图床够狠,1分钟必须低于多少次,然后一个小时又不能超过20张,非常烦人,看来免费的才是最贵的。于是下定决心不用这个API,自己去用自己的GitHub来搭建一个图床,VPS的话以后再考虑。

自己写了个脚本完成自动化操作,以后就非常方便了,只需要粘贴图片->图片放入git文件夹->运行自动化脚本,就可以完成替换了,比较方便,使用方法如下

首先在GitHub上面弄个目录来专门放你的图片

image-20191201161807225.png

然后在本地git clone下来

image-20191201161815623.png

然后把你的图片放进去,你也可以在typora中设置图片的自动保存路径,这样一来这一步也省去了,直接跑脚本

然后打开脚本,进行个人设置

image-20191201161912963.png

需要个人设置的地方我都会在下面代码中注释出来

然后图床替换就完成了,是不是很快呢,自动化代码如下

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
37
38
39
40
41
42
43
import re
import os
def parseText(textpath):
f = open(textpath,'r+',encoding = 'utf-8')
text = str(f.read())
f.close()
return text

def getPicPath(text):
#根据你的图片自己设置,不同版本不一样
srcPic = re.findall(r'\!\[image-\d*\]\(.*\)',text)
dst = []
for i in srcPic:
str1 = re.findall('\/.*\)',i)[0]
str1 = str1[1:-1]
dst.append(str1)
return srcPic,dst

def replaceText(text,src,dst):
for i in range(len(src)):
dst[i] = '!['+dst[i]+']('+'https://raw.githubusercontent.com/xxxxx/xxxxx/'+dst[i]+')'
#中间的网址替换为https://raw.githubusercontent.com/你的用户名/你的仓库/你的分支/你的目录/
text = text.replace(src[i],dst[i])
return text

def rewrite(textpath,text):
f = open(textpath,'w+',encoding='utf-8')
f.write(text)
f.close()

def main():
#自己写markdown的目录
rootpath = 'C:/Users/周半仙/Desktop/ComputerSecurity/'
#自己写markdown的文件名,注意斜线
textpath = rootpath+'实验三_副本.md'
text = parseText(textpath)
src,picdst = getPicPath(text)
text = replaceText(text,src,picdst)
payload = 'git add . && git commit -m "auto upload" && git push'
#自己写你的图片的本地位置
os.chdir('D:\\imageBed\\imageBed')
os.system(payload)
main()