-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy path一键新建文章.py
68 lines (52 loc) · 2.5 KB
/
一键新建文章.py
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env python
import os
from datetime import datetime
import re
import subprocess
def create_markdown_file(title, tags, categories):
try:
# 获取脚本所在目录的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 设置文件路径和名称
POSTS_DIR = os.path.join(script_dir, "source/_posts")
# 使用正则表达式处理文件名
file_name = re.sub(r'[\\/:*?"<>|]', "-", title) + ".md"
file_path = os.path.join(POSTS_DIR, file_name)
# 检查目录是否存在,如果不存在则创建
os.makedirs(os.path.dirname(file_path), exist_ok=True)
# 获取当前日期
current_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 生成唯一的时间戳
unique_timestamp = datetime.now().strftime("%Y%m%d%H%M%S%f")[:-3]
# 将输入的空格隔开的标签和分类转换为英文逗号隔开的形式
tags = ",".join(map(str.strip, tags.split()))
categories = ",".join(map(str.strip, categories.split()))
# 构建front-matter
front_matter = (
f"---\n"
f"title: '{title}'\n"
f"tags: [{tags}]\n"
f"categories: [{categories}]\n"
f"date: {current_date}\n"
f"cover: https://t.mwm.moe/fj?{unique_timestamp}\n"
f"---\n\n"
)
# 创建Markdown文件并写入front-matter
with open(file_path, "w", encoding="utf-8") as file:
file.write(front_matter)
print(f"Markdown文件 '{file_name}' 已成功创建.")
# 打开Markdown文件
subprocess.Popen(["start", "", file_path], shell=True)
except Exception as e:
print(f"创建Markdown文件时发生错误: {e}")
# 示例用法
print("Powerd by W1ndys update:2024年4月14日")
print("该文件必须放置在与 _config.yml 相同的目录下")
print("生成的文件将保存在当前目录下的 source/_posts 文件夹中")
print("请注意文件位置")
print("——————————————————————————————————————————————————————————")
title = input("请输入标题: ")
tags = input("请输入标签(多个标签用空格隔开): ")
categories = input("请输入分类(多个分类用空格隔开): ")
# 调用函数创建Markdown文件
create_markdown_file(title, tags, categories)