The previously used Jekyll was implemented in Ruby, a rather unfamiliar language, so I personally had difficulties in installation, customization, and maintenance. So I started looking for a blog platform where I could focus on writing, and although there were many good services, I chose a traditional blogger. In fact, I made a new blog using a blogger, but I gave up right away and decided to use the Static Site Generator (SSG) again to revive the existing blog.
As mentioned at the end of part 2, I didn’t want to write Jekyll again. Since there are many alternatives now than at the time, I started looking around one by one, and in the end, I fell in love with Hugo. There were famous tools such as Gatsby and Hexo, but the point was that Hugo was implemented in the Go language and is itself a complete binary. Tools implemented in Ruby and Node (NodeJS), including Jekyll, must use a separate package manager such as RubyGems or NPM. I don’t know if it’s just me, but the burden of installing and managing more packages to use something is a specification. Nevertheless, Gatsby seemed to have the most powerful function, so I was tempted for a while, but I think I need to know React and GraphQL well, so I pass.
Static site generator, Hugo Hugo ¶
Hugo is fast. ¶
As mentioned earlier, Hugo is implemented in the Go language. It’s definitely fast because it doesn’t require a runtime and is a binary in itself. Even Hugo’s website advertises it as “The world’s fastest framework for building websites.” I wonder what the meaning of being fast is because it only has to produce good results, but compared to my previous experience of using Jekyll, it is much faster. If you look at the benchmarks spread out on the Internet, you can see that Hugo is much faster on the basis of a website with more than 10,000 pages.
Hugo is neat and easy. ¶
As I have said many times, Hugo is implemented in the Go language. Of course, you don’t need to know the Go language to use Hugo. What I want to say is that an interpreter is not required, that is, Hugo itself is a complete program, so the installation process and maintenance are easy compared to other tools that come with a separate package manager. For example, on Ubuntu, Jekyll is installed as follows:
# Install Ruby dependencies $ sudo apt-get install ruby-full build-essential zlib1g-dev # Install Ruby Gems package manager $ echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc $ echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc $ echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc $ source ~/.bashrc # Install Jekyll and Bundler $ gem install jekyll bundler # Create a new site "my-awesome-site" $ jekyll new my-awesome-site $ cd my-awesome-site # Serve the site on "http://localhost:4000" $ bundle exec jekyll serve
Ruby is a language that provides an interpreter and a separate package manager. So, if you want to use Jekyll, you need to install Ruby and RubyGems beforehand. Even in the future, if you want to upgrade Ruby, you will have to search separately to find a suitable method, and problems may arise in the process. On the other hand, Hugo is installed as follows.
# Install HomeBrew $ test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)" $ test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" $ test -r ~/.bash_profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bash_profile $ echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.profile # Install Hugo brew install hugo # Create a new site "quickstart" hugo new site quickstart # Serve the site on "http://localhost:1313" hugo server -D
Install Hugo via HomeBrew. Homebrew is a kind of package manager, it’s just a package manager that provides Hugo. In other words, since Hugo is implemented in the Go language, it does not install Homebrew, so it cannot be compared with RubyGems. Rather, it can be viewed as the same role as Google’s PlayStore and Apple’s AppStore. Therefore, Homebrew does not play an essential role in using Hugo, so you can download Hugo directly from the link below and use it.
Hugo is fast and easy to install. I think this is a significant advantage compared to other tools. But, crucially, it is a good tool when it is convenient to use. Although I have not used any other tools except Jekyll, I would like to give an evaluation that it is a highly recommended tool from the point of view I have used while building the current blog. Afterwards, I would like to post about the background that led to such a generous evaluation.