Add inv new-task
This commit is contained in:
parent
f37a836ae4
commit
b8db611c29
@ -19,3 +19,5 @@ sgmllib3k==1.0.0
|
||||
six==1.16.0
|
||||
soupsieve==2.3.2.post1
|
||||
Unidecode==1.3.6
|
||||
|
||||
python-slugify
|
||||
|
31
tasks.py
31
tasks.py
@ -140,4 +140,33 @@ def publish(c):
|
||||
|
||||
def pelican_run(cmd):
|
||||
cmd += ' ' + program.core.remainder # allows to pass-through args to pelican
|
||||
pelican_main(shlex.split(cmd))
|
||||
pelican_main(shlex.split(cmd))
|
||||
|
||||
|
||||
@task
|
||||
def new_post(c):
|
||||
import os
|
||||
from slugify import slugify
|
||||
iso_date = datetime.datetime.today().strftime('%Y-%m-%d')
|
||||
year, month, day = iso_date.split("-")
|
||||
title = input("Title: ")
|
||||
slug = slugify(title)
|
||||
filename = f"{iso_date}_{slug}.rst"
|
||||
title_header = "#" * len(title)
|
||||
template = f"""{title}
|
||||
{title_header}
|
||||
:date: {datetime.datetime.today().strftime('%Y-%m-%d %H:%M')}
|
||||
:author: tyrel
|
||||
:category: ????
|
||||
:tags: ????
|
||||
:slug: {slug}
|
||||
:status: draft
|
||||
|
||||
"""
|
||||
base = f"content/blog/{year}/{month}"
|
||||
os.makedirs(os.path.dirname(base), exist_ok=True)
|
||||
with open(f"{base}/{filename}", "w") as f:
|
||||
f.write(template)
|
||||
print(f"Wrote: {base}/{filename}")
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user