Add post: 暗黑能天使
This commit is contained in:
86
newpost.py
Normal file
86
newpost.py
Normal file
@@ -0,0 +1,86 @@
|
||||
#!python
|
||||
|
||||
import argparse
|
||||
import os, sys
|
||||
import datetime
|
||||
import traceback
|
||||
|
||||
|
||||
DEFAULT_FRONT_MATTER = {
|
||||
'title': '',
|
||||
'description': '',
|
||||
'toc': True,
|
||||
'authors': [],
|
||||
'tags': [],
|
||||
'categories': [],
|
||||
'series': [],
|
||||
'date': '',
|
||||
'lastmod': '',
|
||||
'featuredVideo': '',
|
||||
'featuredImage': '',
|
||||
'draft': False
|
||||
}
|
||||
|
||||
|
||||
def standard_time(time_str):
|
||||
dt = datetime.datetime.strptime(time_str, "%Y-%m-%d")
|
||||
return dt.isoformat()
|
||||
|
||||
|
||||
def create_post(filepath, args):
|
||||
with open(filepath, 'w') as f:
|
||||
f.write('---\n');
|
||||
|
||||
for key in DEFAULT_FRONT_MATTER.keys():
|
||||
if key == 'title':
|
||||
f.write(f'{key}: {args.posttitle}\n')
|
||||
elif key in ('date', 'lastmod'):
|
||||
if args.postdate is not None:
|
||||
f.write(f'{key}: {standard_time(args.postdate)}\n')
|
||||
else:
|
||||
f.write(f'{key}: {datetime.datetime.now().isoformat()}\n')
|
||||
else:
|
||||
if type(DEFAULT_FRONT_MATTER[key]) is not str:
|
||||
f.write(f'{key}: {DEFAULT_FRONT_MATTER[key]}\n')
|
||||
elif type(DEFAULT_FRONT_MATTER[key]) is str:
|
||||
if DEFAULT_FRONT_MATTER[key] == '':
|
||||
f.write(f'{key}: \n')
|
||||
else:
|
||||
f.write(f'{key}: {DEFAULT_FRONT_MATTER[key]}\n')
|
||||
else:
|
||||
f.write(f'{key}: {DEFAULT_FRONT_MATTER[key]}\n')
|
||||
|
||||
f.write('---\n\n');
|
||||
|
||||
|
||||
def mkdir(dirpath):
|
||||
if os.path.isdir(dirpath) is False:
|
||||
os.mkdir(dirpath)
|
||||
|
||||
|
||||
def main(args):
|
||||
if args.posttitle is None:
|
||||
print("Need a title!")
|
||||
return
|
||||
|
||||
os.chdir('content/posts')
|
||||
try:
|
||||
mkdir(args.posttitle)
|
||||
mkdir(os.path.join(args.posttitle, 'images'))
|
||||
except:
|
||||
print(traceback.format_exc())
|
||||
print(f"Cannot create folder: {args.posttitle}")
|
||||
|
||||
os.chdir(args.posttitle)
|
||||
create_post('index.md', args)
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-t", "--posttitle", default=None, help="The title of post.")
|
||||
parser.add_argument("-d", "--postdate", default=None, help="The date of post.")
|
||||
|
||||
args = parser.parse_args()
|
||||
main(args)
|
||||
Reference in New Issue
Block a user