Blogging with Hexo.js

As you may already know, this blog is built using Hexo.js with theme Next. In this post, I will discuss the reasons why I select this static site generator and this theme.

Why do I select Hexo.js?

  • I want a blog website that only consists of static webpages. Thus, I cannot use any content management system (CMS) with dynamic pages, like WordPress and Drupal.
    • This provides me with more options to host it. For instance, GitHub Pages only supports static webpages.
    • Static webpages are generally faster. They do not need any server-side pre-rendering.
  • It may be a waste of time to write raw HTML, CSS & JavaScript code for every page of the blog. Much of the code can be reused. Thus, I need a framework to help me generate the static webpages.
  • I want to develop in both Windows and Linux-based environment. This means some programming languages like Ruby may be troublesome. Thus, I will not choose engines like Jekyll.
  • The body of my blog posts should not be in plain text. I need basic styling of the text. Also, I may insert code snippets to technical posts sometimes.
    • Therefore, the framework had better support Markdown and/or AsciiDoc.
    • I know how to use LaTeX. My slides for my CS1101S classes are all typed in Latex with Beamer package. However, although LaTeX is very powerful, I have to say its syntax is way too complex.
      • In fact, the Next theme also supports math equation rendering by either MathJax or Katex.

Given all the factors mentioned above, I choose Hexo.js in the end.

Why am I using theme Next?

  • I have tried other themes before. They are just not nice enough. I do not like the styling.
  • I am not a front-end guy or an expert in design, CSS & JavaScript. I do not and cannot create my own theme. I do not have time to do so as well.
  • I need to integrate some common 3rd-party services, such as Disqus for comments and Google Analytics for traffic monitoring. It would be great if the theme provides native support for those services.

Taken all into consideration, I choose theme Next finally.