用了语雀的md编辑器,感觉typora有点用不惯,但是语雀的到处图片会有限制,虽然能够浏览,但是使用hexo之后就不行了,寻找了几个方法,最好用的就是修改图片格式,将地址后的参数删除掉。
一个一个改太费劲了,因此写了一个简单的python脚本来代替机械劳动。
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
| """ @File : YuQueShareLink.py @Contact : 2997453446@qq.com @Blog : natro92.github.io
@Modify Time @Author @Version @Desciption ------------ ------- -------- ----------- 2023/5/16 21:04 natro92 1.0 将语雀链接在导出到博客时可以正常使用 """
import re import sys
def replace_string_in_file(file_path): with open(file_path, "r", encoding="utf-8", errors="ignore") as file: content = file.read()
replaced_content = re.sub(r".png)", ".png)", content)
with open(file_path, "w", encoding="utf-8", errors="ignore") as file: file.write(replaced_content)
if __name__ == "__main__": print("请提供需要处理的文件路径, 且文件需要和该py脚本处在同一文件夹下,比如:我的博客.md") file_path = input("路径:") is_end_of_md = re.search(r"\.md", file_path) if not is_end_of_md: file_path += ".md" replace_string_in_file(file_path)
|
改完这个了,想要同步到hexo,需要有一步hexo new 文章名称
,这样会生成一个文件头,一般我会把这个修改后的文章内容复制到那个新生成的文件,并且修改tag、category等参数。
那么能不能直接把这些东西都合并到一起呢?
通过万能的互联网,添加一点代码:
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
| def add_headers_in_file(file_path): file_name = os.path.basename(file_path) replaced_content = re.sub(r".md", "", file_name) time_str = datetime.now().strftime('%Y-%m-%d %H:%M:%S') with open(file_path, 'r+', encoding="utf-8", errors="ignore") as f: contents = f.read() print('当前tags:', ['WriteUp', 'CTFshow0-1']) print('当前categories:', ['CTF']) new_tags = input('你想要修改tags吗? (y/n) 默认n') if new_tags.lower() == 'y': tags_str = input('输入你的tags,注意用英文逗号分隔: ') tags = [tag.strip() for tag in tags_str.split(',')] else: tags = ['WriteUp', 'CTFshow0-1']
new_categories = input('你想要修改tags吗?(y/n) 默认n') if new_categories.lower() == 'y': categories_str = input('输入你的categories,注意用英文逗号分隔: ') categories = [category.strip() for category in categories_str.split(',')] else: categories = ['CTF']
new_contents = '---\n' \ 'title: ' + file_name + '\n' \ 'date: ' + time_str + '\n' \ 'tags:\n' for tag in tags: new_contents += ' - ' + tag + '\n' new_contents += 'categories:\n' for category in categories: new_contents += ' - ' + category + '\n' new_contents += '---\n' \ + contents
f.seek(0) f.write(new_contents)
|
这个功能完成了,下面就是一键上传和更新到私有仓库了。
其实这里是可以使用hexo自带的库(hexo-uploader)但是为了简化、简单代码,这里就调用powershell来实现hexo的生成的发布。并且远程git给私有仓库。
其实hexo自带备份功能,但是似乎会和文件存到一起。因此我还是选择了单独创一个仓库保存的方法。
调用cmd来跑命令,因为之前git的信息和hexo的配置已经配置过了,因此直接使用就行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| def hexo_generate_and_deploy(): cmd = r'cd C:\Users\natro92\Desktop\blog && hexo g && hexo d' p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) print(p.stdout.read().decode()) a = input('按任意键继续')
def git_backup(): repo_dir = r'C:\Users\natro92\Desktop\blog' cmd_cd = f'cd {repo_dir} && ' cmd_add = 'git add .' commit_msg = '%date:~0,4%%date:~5,2%%date:~8,2%' cmd_commit = f'git commit -m "{commit_msg}"' cmd_push = 'git push' cmd = cmd_cd + cmd_add + ' && ' + cmd_commit + ' && ' + cmd_push result = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE) print(result.stdout.decode())
|
就是简单的造轮子,但是能够让自己造轮子的效率更高。
附上完整版链接:https://github.com/natro92/YuQueShareLink