A little bit of history
When I discovered Ghost 3 years ago, my initial enthusiasm, because it was bringing a wave of fresh air in this world polluted by WordPress and sites written in PHP, rapidly declined and now I’m going to briefly explain why.
Immediately I noticed that was too cumbersome working with Ghost, even if it’s just a Static Site Generator, you have to setup a nodeJS hosting with a DB, just to have some static page generation capability.
If this is not enough you have to face the lack of features, speaking of 2 years ago, it was in beta ( exactly as today, I just checked is still version 0.9.0 ).
So I left the blog to itself, themes were too complex to handle, the pleasure of writing flew away and I was too busy to take care of this little baby full of issues.
What happened then
Some days ago, while I was enjoying the holidays drinking Mojitos after lunch, the blog came back to my mind. I thought that in this spare time I could check if the Ghost platform was evolved to some point and if I could maybe start again my adventure with a blog.
After some Googling I started to setup the new version of Ghost 0.9.0, to give it a try, using Docker ( i didn’t want to use OpenShift V2.0 to handle my application anymore ).
After some customization and creating the docker-compose.yml file I saw there were some issues with the Ghost Dockerfile not working properly. Before starting to mess again with it I choose to look around for other solutions
Googling around brought me to many posts of people tired of Ghost, for all the reasons I described above and moving to other platforms one of those being Hexo.
What is Hexo
Hexo, like his big brother Jekyll ( written in Ruby ), is a real Static Site Generator that uses NodeJS to easy the pain of generating your content and then leaving you with only a public folder full of html, css, js and images to upload to any hosting you prefer ( like Github pages ).
Hexo + Github pages
With Github pages and Hexo you get the cake and eat it too! You have:
- an easy to use and powerful static site generator that works well with git
- free hosting that requires only a commit to update your site
This is how you can get started with Hexo
- NVM or NodeJS + NPM
Install hexo-cli and setup your blog
First of all, we need to install the hexo-cli to help us setup and handle the blog
Then move where you want to keep your blog folder and run
Now we must install dependencies
And we have finished!
Run Hexo Server and create a post
To start a local server and see our blog before going online we need to launch Hexo server, it takes care of everything you need! From inside your blog folder run
To create a post open another terminal and, always from inside your blog folder, run
Publish on Github pages
To publish our site Hexo offers a
deploy command that can use many plugins, if you stick with Github pages you need only the git one that’s already included.
First of all, we must create a repository on Github and name it like
Then paste the repository url in our _config.yml
From now on we can just run
To get our generated site committed on Github and published on Github pages
One important thing to note is that
hexo deploy commit only the content of the /public folder, the one that gets generated. You still have to keep your source on git ( maybe in a private repo ).
Here is a simple .gitignore to help you setup the repository.