Wrote a short script this morning to automate the process of creating new posts. It asks for a title, and the script does the rest: it strips non-ASCII characters from the filename, dates it, adds YML front matter, and sticks it in the drafts directory.
I definitely spent more time writing the script than I would save every 15 seconds it takes to create a new file, name it after today’s date, and copy the front matter. Still, it feels efficient.
Here’s a video of it in action:
And here’s the code:
#!/bin/sh read -p "Post title: " title; #replace spaces with underscores, remove all non-alphanumeric characters, convert to lowercase, and truncate the filename to 64 characters long cleantitle=$(echo $title | sed "s/ /_/g" | sed "s/[^a-zA-Z0-9_]//g" | tr "[:upper:]" "[:lower:]" | cut -c 1-64); #add date to filename date=`date +%Y-%m-%d`; filename="$date-$cleantitle.md"; #create file touch "/home/pierre/Documents/blog/site_content/_drafts/$filename"; echo "--- layout: post title: $title tags:  comment: true ---" > "/path_to_blog/$filename"; #ideas for improvement: maybe could add an input for tags
Plus, for future reference, here’s the command I used to capture my desktop in ffmpeg:
ffmpeg -f x11grab -i :0.0 -video_size cif -r 30 -an -c:v libvpx post_creation_script_capture.webm