This blog will run using hugo static site generator project. I am using the theme hugo-cactus-theme by digitalcraftsman which hopefully I wont edit it, its the cleanest, simplest and SEO friendly that I found.
The entire blog will be made by using markdown language.
The blog will be hosted on Netlify. Netlify offers CI/CD, CDN, Let’s Encrypt SSL and an optional custom domain for free.
The code will be saved on Github for free.
That is why I think that everyone should blog for free, not using any platform that offers you the same functionality or less, but doesn’t share its revenue on the content you write.
Getting started with hugo and cactus theme
Some hugo themes support Sass/SCSS, so I prefer building hugo executable from source to have those extended features.
If the theme you are using doesn’t generate Sass/SCSS just install hugo from homebrew brew install hugo
.
Else, install go Than build/install hugo from source.
mkdir $HOME/src
cd $HOME/src
git clone https://github.com/gohugoio/hugo.git
cd hugo
go install --tags extended
Assuming your installation went ok, let’s build our new blog site with hugo, and import our theme.
Netlify auto deploy needs the theme to be a submodule in your repository
hugo new site ./blog
cd ./blog
git submodule add https://github.com/digitalcraftsman/hugo-cactus-theme.git themes/hugo-cactus-theme
Now let’s configure the site to use the theme we downloaded.
All hugo themes has an exampleSite directory with a short sample, we will copy the
config.toml
file to our root directory, edit it and try to run the site
cp ./theme/hugo-cactus-theme/exampleSite/config.toml ./
Now modify your configuration on the existing config.toml
file you copied, example:
baseURL = "https://blog.omerh.me/"
languageCode = "en-us"
title = "My Blog"
theme = "hugo-cactus-theme"
enableRobotsTXT = true
googleAnalytics = ""
disqusShortname = ""
Now we should have a running website working. let’s try run it. Run hugo server
and it the command runs, open your browser and go to http://localhost:1313
Now let’s add a new blog post:
hugo new content/post/first_post.md
This will create a new file in ./content/post/first_post.md
that will have default archetypes
---
title: "first_post"
date: 2019-05-17T22:21:07+03:00
draft: true
---
Start writing your blog, once its ready, edit the draft to draft: false
and you will see the post.
Remember to have the hugo server running and generating your site by running
hugo server
Now that you have a running blog push the files to github, go to netlify and connect the repository from github to your netlify as a new site. Now look for your new generated URL that will have your site up and running.
Enjoy.