Snippets

増田彬 gen_hugo_template.py

Created by Akira Masuda

File snippet.txt Added

  • Ignore whitespace
  • Hide word diff
+# !/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")
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.