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")