Halo博客两年崩了两三次,受不了了,干脆换到halo了,写了个脚本生成front matter
Python 程序
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
- 44
- 45
- 46
import os
import datetime
import re
def add_front_matter(folder_path):
# 获取文件夹名称作为categories
folder_name = os.path.basename(folder_path)
# 遍历文件夹下的所有文件
for root, dirs, files in os.walk(folder_path):
for file in files:
# 确保文件为Markdown格式
if file.endswith(".md"):
file_path = os.path.join(root, file)
# 读取文件内容
with open(file_path, 'rb') as f:
content = f.read().decode('utf-8')
# 检查是否已存在front matter
if re.match(r'^---[\s\S]*?---', content, re.MULTILINE):
print(f"Front matter already exists in {file_path}. Skipping...")
continue
# 提取文件名中下划线前的字符串作为title
title = os.path.splitext(file)[0].split('-')[0]
# 构建front matter
front_matter = f"""---
title: {title}
date: "{datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S')}"
categories:
- {folder_name}
---
"""
# 将front matter添加到文件开头
with open(file_path, 'w',encoding='utf-8') as f:
f.write(front_matter + content)
print(f"Front matter added to {file_path}.")
# 指定文件夹路径
folder_path = "./数据结构"
# 执行添加front matter操作
add_front_matter(folder_path)