Currently my workflow to create a new blog post is this. In emacs, I type C-c c which brings up org-capture where I've set up various templates for different types of notes and tasks to capture.

I select j "for journal"

It opens a window and asks me for a headline, followed by tags. If I am sure that I want it to be a blog post I add the tag "blog".

In the template I've set up empty properties for "excerpt" and "tags" which I can fill out if I want the blog post to have an excerpt or tags.

I then write my note (I can at any time hit C-c C-e b to preview it in a browser).

C-c C-c to save the note (the capture buffer).

If I want to revisit the note I hit C-c o which is the key that I have bound to org-capture-goto-last-stored.

This file contains many headings and if I want to preview the exported HTML of the current heading I use the command C-c C-e 1 b.

When I am happy with the entry I use M-x org-jekyll-export-current-entry to create the html file in my git repository.

I can then either preview the post locally using "jekyll –server" and visiting http://localhost:4000, or add the file to the git repository and commit it.

I usually go to the git repository and do a git status:

cd ~/git/jmn.github.io && git status

it shows the new file in the directory "\posts" I then use

git add .

to add all new files. Do the commit:

git commit -am "New post on subject subject"

and push it to the server

git push origin master

(Which I've aliased to "pub")