| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- import os
- from pickle import FALSE, TRUE
- from secrets import choice
- import shutil
- import os
- import re
- import time
- BlogMdPath = os.path.dirname(os.getcwd()) + "\myblog\content\post"
- BlogPicPath = os.path.dirname(os.getcwd()) + "\myblog\static"
- NotePath = os.getcwd().replace('\\','/') + str("\笔记文件\\2.笔记")
- PicPath = os.getcwd().replace('\\','/') + str("\笔记文件\\附件")
- outStr = open(r'out.md','r',encoding="utf-8")
- outStrData = outStr.read()
- inStr= open(r'in.md','r',encoding="utf-8")
- inStrData = inStr.read()
- usualStr = open(r'usual.md','r',encoding="utf-8")
- usualStrData = usualStr.read()
- currentPath = os.getcwd().replace('\\','/') # 获取当前路径
- fileList = [] #文本列表容器
- dirPath = []
- allMdPath = []
- allPicPath = []
- blogOutPath = []
- pattern = re.compile(r'\[\[.*?\]\]')
- def ChangeDir(path):
- global currentPath
- os.chdir(path)
- currentPath = os.getcwd().replace('\\','/')
- dataNames = os.listdir(currentPath)
- for fileObj in dataNames:
- name = str(fileObj)
- if(".md" in name):
- file = open(name,'r',encoding= "utf-8")
- fileList =file.readlines()
- for i in range(len(fileList)):
- if('#unity/教程' in fileList[i]):
- dirPath.append(name)
- if(name not in allMdPath):
- allMdPath.append(name)
- blogOutPath.append(name.replace(' ',''))
-
- for dirfile in dirPath:
- file = open(dirfile,'r',encoding= "utf-8")
- fileList =file.readlines()
- for i in range(len(fileList)):
- if(r'[[' in fileList[i] and r']]' in fileList[i]):
- if("|" in fileList[i]):
- name = str(fileList[i].replace(r'[[','').replace(']]','').replace("\n","").split('|')[0])
- else:
- name = str(fileList[i].replace(r'[[','').replace(']]','').replace("\n",""))
- CheckLink(name)
- def CheckLink(fileName):
- if(r'.png' not in fileName and r'.jpg' not in fileName):
- newName = str(fileName.replace(r'[[','').replace(r']]','')+".md")
- if(newName not in allMdPath):
- allMdPath.append(newName)
- file = open(newName,'r',encoding= "utf-8")
- fileList =file.readlines()
- for i in range(len(fileList)):
- matches = pattern.findall(fileList[i])
- for match in matches:
- CheckLink(str(match.replace(r'[[','').replace(']]','').split('|')[0]))
- def ChangeTxt(fileObj):
- global outStrData
- global inStrData
- global usualStrData
- trueName = fileObj.split('.')[0]
- modify_time = os.path.getmtime(fileObj)
- modify_time_local = time.localtime(modify_time)
- file = open(fileObj,'r',encoding= "utf-8")
- filedata = file.read()
- timeStr = str(time.strftime('%Y-%m-%d', modify_time_local)).replace("2024-04-24","2024-04-22").replace("2024-04-23","2024-04-22")
- if(fileObj in blogOutPath):
- newhearstrdata = outStrData.replace(r'"0"','"' + trueName + '"').replace(r'"1"','"'+ timeStr + '"')
- else:
- if(r'#unity/日常积累' in filedata):
- newhearstrdata = usualStrData.replace(r'"0"','"' + trueName + '"').replace(r'"1"','"'+ timeStr + '"')
- else:
- newhearstrdata = inStrData.replace(r'"0"','"' + trueName + '"').replace(r'"1"','"'+ timeStr + '"')
-
- togetherTxt = newhearstrdata + filedata
- matches = pattern.findall(togetherTxt)
- allnewStrDic = {}
- for match in matches:
- if(r'.png' not in match):
- newName = str(match.replace(r'[[','').replace(r']]','').split('|')[0])
- newStr = r'[' + newName + r']({{< ref "/post/' + newName.replace(' ','') + r'.md"' + r" >}})"
- elif(r'.png' in match):
- newName = str(match.replace(r'[[','').replace(r']]',''))
- allPicPath.append(newName)
- newStr = r'[](/'+newName.replace(' ','')+r')'
- allnewStrDic[match] = newStr
- for key,value in allnewStrDic.items():
- togetherTxt = togetherTxt.replace(key,value)
- return togetherTxt
- def CopyMdFile():
- for mdName in allMdPath:
- name = str(mdName)
- shutil.copy2(currentPath + "/" + name,BlogMdPath + "/" + name.strip().replace(' ',''))
- def CopyPicFile():
- for picName in allPicPath:
- name = str(picName)
- shutil.copy2(PicPath + "/" + name,BlogPicPath + "/" + name.strip().replace(' ',''))
- def ChangeMdFile():
- os.chdir(BlogMdPath)
- currentPath = os.getcwd().replace('\\','/')
- dataNames = os.listdir(currentPath)
- for fileObj in dataNames:
- name = str(fileObj)
- newTxt = ChangeTxt(fileObj)
- with open(name,'w',encoding= "utf-8") as file:
- file.write(newTxt)
- def delete_files_in_folder(folder_path):
- for filename in os.listdir(folder_path):
- file_path = os.path.join(folder_path, filename)
- try:
- if os.path.isfile(file_path) or os.path.islink(file_path):
- os.unlink(file_path)
- elif os.path.isdir(file_path):
- shutil.rmtree(file_path)
- except Exception as e:
- print(f'Failed to delete {file_path}. Reason: {e}')
- ChangeDir(NotePath)
- delete_files_in_folder(BlogMdPath)
- CopyMdFile()
- ChangeMdFile()
- delete_files_in_folder(BlogPicPath)
- CopyPicFile()
|