Josh Branchaud has made a nice simple python script to initialize blog posts for Jekyll. I made a couple modifications. First, I set the default to always write to the _posts directory since I’m not using any other directory for posts:
# else condition added by ERF to always default with _posts directory:
else:
filename = '_posts/' + filename
Second, at the end of the script, I changed it to always open the new post in vim (so can immediately start editing) and added commmands to build the jekyll site and upload to git automatically:
# if write flag is on, then try to open file with vi
# removed by ERF, so always write: if args.write:
subprocess.call(['vi', filename])
# ERF added auto commit to git repository
subprocess.call(['jekyll', 'build'])
subprocess.call(['git', 'commit', '-a', '-m "' + filename + '"'])
subprocess.call(['git', 'push' ])
# print confirmation statement
print 'New Jekyll post "' + title + '" has been created ' + filename + ' and git pushed.'
Lastly, instead of putting the python script in my BIN PATH, I simply put it in the root of my github page git folder, so the script is always available on whatever machine I clone my github page repository. You can download my script here.