Need help with hugo-icarus-theme?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

210 Stars 141 Forks MIT License 172 Commits 37 Opened issues


Port of Ruipeng Zhang's Hexo theme Icarus to Hugo.

Services available


Need anything else?

Contributors list


Icarus is a responsive and customizable theme for bloggers. It's a port of the same-named theme for Hexo made by Ruipeng Zhang. Noteworthy features of this Hugo theme are the integration of a comment-system powered by Disqus, localization (l10n) support, syntax highlighting for source code and optional widgets for the sidebar.

Please note that this theme is no longer maintained.

A maintained fork of this theme can be found at

Get the theme

I assume you've Git installed. Inside the folder of your Hugo site run

$ cd themes
$ git clone

You should see a folder called

inside the
directory that we created a few moments ago. For more information read the official setup guide of Hugo.


Next, navigate to the

folder at
. In order to get your site running, you need to copy
and all the content of all relevant subfolders such as
into the root folders.

To turn the

folder in a standalone demo site the
property has been set to
. This way you can preview this theme by running
hugo server

Due to the customized

path Hugo will fail to find themes if you copied the
into the root directory of a regular Hugo website.
Make sure you comment out the

property if you use the theme in production.

The config file

Now, let us take a look into the

. Feel free to play around with the settings.


The optional comment system is powered by Disqus. Enter your shortname to enable the comment section under your posts.

disqusShortname = ""

Tip: you can disable the comment section for a single page in its frontmatter:

disable_comments = true


You can also define the items menu entries as you like. First, let us link a post that you've written. We can do this in the frontmatter of the post's content file by setting

menu = "main"

Furthermore, we can add entries that don't link to posts. Back in the

you'll find a section for the menus:
    before = true
    label  = "Home"
    link   = "/"

Define a label and enter the URL to resource you want to link. With

you can decide whether the link should appear before or after all linked posts in the menu. Therefore,
appears before the linked post.


In order to use the full width of the website you can disable the profile on the left and / or the widgets on the right for a single page in the frontmatter:

disable_profile = true
disable_widgets = true

Tell me who you are

This theme also provides a profile section on the left. Add your social network accounts to the profile section on the left by entering your username under

. The links to your account will be create automatically.


Beside the profile section you can add widgets on the right sidebar. The following widgets are available:

  • recent articles
  • category list
  • tag list
  • tag cloud

You can deactivate them under

    recent_articles = false
    categories = true
    tags = true
    tag_cloud = true

Date line

The date line includes: post date, # of words, approximate reading, time tags and categories. However, if you want certain pages to omit the date line, simply put

nodateline = true
in the front matter for that page.

Disable Previous / next article links

To disable the inclusion of a previous/next article link at the bottom of the page, add

noprevnext = true
to the front matter. This feature, along with
can be used to create standalone pages that are less "blog-like"

Localization (l10n)

You don't blog in English and you want to translate the theme into your native locale? No problem. Take a look in the

folder and you'll find a file
that we've copied at the beginning. It contains all strings related to the theme. Just replace the original strings with your own.

Linking thumbnails

After creating a new post you can define a banner by entering the relative path to the image.

banner = "banners/placeholder.png"

This way you can store them either next to the content file or in the


Mathematical equations

Mathematical equations in form of LaTeX or MathML code can be rendered with the support of MathJax. MathML works out of the box. If you're using LaTeX you need to wrap your equation with


You can also print formulas inline. In this case wrap the formula only once with


If you don't need equations, you can disable MathJax but putting

disable_mathjax = true
in your config.toml. This will prevent clients from unnecessarily downloading the MathJax library.

Gallery shortcode

This shortcode you to easily include a gallery into your pages. Copy the code below into your content file and enter the relative paths to your images.

{{< gallery

Nearly finished

In order to see your site in action, run Hugo's built-in local server.

$ hugo server

Now enter

in the address bar of your browser.


Have you found a bug or got an idea for a new feature? Feel free to use the issue tracker to let me know. Or make directly a pull request.


This theme is released under the MIT license. For more information read the license.


Thanks to

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.