+import sys, os, argparse, random
+from datetime import datetime as dt
+def create_file(args, dst_dir):
+ dt_time = args.d.split('T')
+ fn = dt_time[0] + '-' + args.f + '.md'
+ fp = os.path.join(dst_dir, fn)
+ if os.path.exists(dst_dir) == False:
+ # select random img if specified none
+ img_path = "img/post-bg-{:03d}.jpg".format(random.randint(1,16))
+ with open(fp, 'w+') as pf:
+ pf.write('author: "{0}"\n'.format(args.a))
+ pf.write('date: {0}\n'.format(args.d))
+ pf.write('title: "{0}"\n'.format(args.t))
+ pf.write('subtitle: "{0}"\n'.format(args.s))
+ pf.write('header_img: "{0}"\n'.format(img_path))
+ pf.write('draft: true\n')
+ pf.write('tags: [{0}]\n'.format(','.join(args.tags)))
+ pf.write('\n#') # for the first h1
+ os.makedirs("assets/{0}/{1:02d}".format(y,m))
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='tool for writing hugo blog')
+ subparsers = parser.add_subparsers(dest='subparser_name', help='sub-commands')
+ now_str = dt.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ') # get date in UTC
+ post_parser = subparsers.add_parser('post', help='create post')
+ post_parser.add_argument('-f', type=str, required=True, help='file name')
+ post_parser.add_argument('-t', type=str, required=True, help='title')
+ post_parser.add_argument('-s', type=str, default='', help='subtitle')
+ post_parser.add_argument('-d', type=str, default=now_str, help='date')
+ post_parser.add_argument('-a', type=str, default='amasuda', help='author')
+ post_parser.add_argument('-i', type=str, default=None, help='header image')
+ post_parser.add_argument('--draft', action='store_true', help='Is draft or not')
+ post_parser.add_argument('--tags', type=str, nargs='+', default=None, help='header image')
+ args = parser.parse_args()
+ if args.subparser_name == 'post':
+ create_file(args, 'content/draft')
+ create_file(args, 'content/post')
+ print("Unsupported subparser")