#!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)