Blogging in Markdown with Jekyll
6 reasons to blog in Markdown with Jekyll
As a programmer I sort and collect a lot of research, and my problem has always been finding a place to store it all. I had Jekyll in mind for a while, but it always seemed so daunting to get into. After a few days of configuration, I was able to create a Jekyll workflow that enables me to do a few things:
1. Store articles online
Jekyll is a blogging system similar to WordPress. The main difference is that unlike WordPress there is no database or web-accessible application to worry about security updates with. Jekyll accomplishes this by generating static HTML pages instead of relying on a database to generate them on the fly. Another upside with static HTML pages is that they are fast. Jekyll generates the HTML pages by parsing Markdown files.
2. 100% free
GitHub pages is a free offering that can host your Jekyll blog for free. It also takes care of generating static HTML files from your Markdown text files, so there's no need to install anything on your computer. You can also use Jekyll with your own domain name (if you have one).
3. Research style attributes
Pixyll is a Jekyll theme. You can quickly install it from GitHub by forking the official Pixyll repo. It's responsive, so it looks good on mobile as well as desktop. It's also the most comprehensive theme I've found, as it natively supports Google Analytics, Disqus integration, code fencing, paragraph linking, highlighting, hyperlinking, quoting, citing, footnotes, tables, lists, images, video, <!--hidden comments--> ,
strike-outs, italicising, bolding, emojis, etc. I personally like to use Dropbox to host images and video, as this enables me to also use this workflow on my iPhone.
4. Collaboration with colleagues and the world
If you are a programmer, you most likely already know how to use GitHub collaboratively. If you don't know your way around Git, you can still use GitHub to collaborate with others through their online text editor capabilities. Since Pixyll has native Disqus integration, you can also use this as a way to communicate and collaborate with everyone.
5. Automatic uploading / downloading
I need focus when I do research. My writing is often messy and I like to move fast. I'm constantly renaming, deleting, and moving files. It's all very unorganized at first, until it finds its own path and turns into something more refined.
It has to be as fast as speed of thought. Anything slower and you wont be "nudged" into using it. So when an idea strikes, there is no barrier that holds you back. Updating your blog should be as easy as editing a local text file.
This is where GitSync comes in. GitSync does all this for you without lifting a finger. Every file change you make is synced to GitHub instantly. If you collaborate with others, you may get the occasional prompt asking which file you want to keep. You get three choices. Use yours, theirs, or a combination of both.
6. Works on any device
On my laptop I use Atom as the text editor for Markdown files. It supports live previews of GitHub-flavored Markdown files. I set Jekyll to use Redcarpet Markdown, since it is the only Markdown flavor I've found that supports code fencing when hosting on GitHub pages. On my iPhone I use Textastic as the text editor. It also supports Markdown and iCloud. You need to bring iCloud into the fold if you want to have text sync from your iPhone to your blog in real time.
It took me about three days to research, learn, contribute to, and implement a good workflow with Jekyll. Then I made a video that shows you how to do it in 30 seconds.