Last active
March 14, 2017 17:54
-
-
Save n8henrie/723de47efe20921bec620d019631c516 to your computer and use it in GitHub Desktop.
Create a new draft for n8henrie.com
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""newpost.py :: Create a new draft for n8henrie.com | |
Args: | |
--drafts-dir: Path to drafts directory | |
""" | |
import datetime | |
import argparse | |
__version__ = 'v0.1.0' | |
template = """--- | |
title: "{title}" | |
date: {date} | |
author: n8henrie | |
layout: post | |
excert: "{excerpt}" | |
# ggrep -oP '(?<=>Posts tagged with ).*?(?=<)' _site/tags/index.html | |
tags: | |
- | |
categories: | |
- tech | |
--- | |
**Bottom line:** {excerpt}<!--more--> | |
""".format | |
def cli() -> dict: | |
parser = argparse.ArgumentParser() | |
parser.add_argument("-d", "--drafts-dir", default="_posts/", | |
help="Destination for draft") | |
parser.add_argument("--version", action="version", version=__version__) | |
args = parser.parse_args() | |
return vars(args) | |
def main(drafts_dir: str) -> None: | |
values = {} | |
now = datetime.datetime.now() | |
values['date'] = now.isoformat() | |
values['title'] = input("Post title: ") | |
values['excerpt'] = input("Post excerpt: ") | |
title_clean = ''.join( | |
c | |
for word in '-'.join(values['title'].lower().split()) | |
for c in word | |
if c.isalnum() or c in ("'", "-") | |
) | |
filename = f"{drafts_dir}/{now:%Y-%m-%d}-{title_clean}.md" | |
with open(filename, 'w') as f: | |
f.write(template(**values)) | |
print(f"Post started at {filename}") | |
if __name__ == "__main__": | |
main(**cli()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment