Created by
Akira Masuda
| # !/usr/bin/python
# -*- coding: utf-8 -*-
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:
os.makedirs(dst_dir)
# select random img if specified none
img_path=args.i
if img_path == None:
img_path = "img/post-bg-{:03d}.jpg".format(random.randint(1,16))
with open(fp, 'w+') as pf:
pf.write('---\n')
pf.write('author: "{0}"\n'.format(args.a))
pf.write('date: {0}\n'.format(args.d))
pf.write('title: "{0}"\n'.format(args.t))
if args.s != "":
pf.write('subtitle: "{0}"\n'.format(args.s))
pf.write('header_img: "{0}"\n'.format(img_path))
if args.draft:
pf.write('draft: true\n')
if args.tags != None:
pf.write('tags: [{0}]\n'.format(','.join(args.tags)))
pf.write('---\n')
pf.write('\n#') # for the first h1
def create_asst_dir():
n = dt.now()
y = n.year
m = n.month
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
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()
print(args)
if args.subparser_name == 'post':
if args.draft:
create_file(args, 'content/draft')
else:
create_file(args, 'content/post')
else:
print("Unsupported subparser")
|