Skip to content



Repository files navigation

English | 简体中文 | 繁體中文



Mercymorn is a powerful and highly customizable GoHugo theme for personal blogs. Mercymorn focuses on elegance, simplicity, modernity, and code correctness. Also, I hope you would enjoy Mercymorn like a mercymorn and share Mercymorn like a mercymorn! Just like what your blog and articles do! 😝



Browser support

Mercymorn uses CSS variables and let statements extensively. These features are supported by the following browsers:

  • Chrome 49+
  • Firefox 44+
  • Edge 15+
  • Opera 36+
  • Safari 10+

Internet Explorer does not support CSS variables.

Quick Start

Install Hugo (extended version)

For Arch Linux users:

~ $ sudo pacman -S hugo
~ $ hugo new site blog

For users of other systems, see:

Install Mercymorn

~ $ cd blog
~/blog $ git init
~/blog $ git submodule add --depth 1 themes/mercymorn


  1. Replace config.toml with config examples.

    ~/blog $ rm config.toml && cp themes/mercymorn/config-examples/en/config.toml config.toml
  2. Create a new post and the about page:

    ~/blog $ hugo new "posts/"
    ~/blog $ hugo new "about/"
  3. Now:

    ~/blog $ hugo server -D

Customize Mercymorn

Mercymorn uses SCSS via Hugo Pipes to generate CSS instead of static CSS file and provides a _custom.scss for customization.

Just create a ~/blog/assets/scss/custom/_custom.scss and add your own styles into this file. Your _custom.scss will override ~/blog/themes/mercymorn/assets/scss/custom/_custom.scss and your custom CSS will be applied correctly.

Actually, you can override any template of theme in Hugo, see this unofficial mirror page:

Update Mercymorn

~/blog $ git submodule update --rebase --remote

If failed, try:

  1. Delete mercymorn folder, e.g.

    ~/blog $ rm -rf themes/mercymorn
  2. Clone Mercymorn again

    ~/blog $ git clone --depth 1 themes/mercymorn

Note that Mercymorn makes some brand new features or breaking changes sometimes, so please be sure to check the modification history of config.toml and update the related items after the update!

Awesome Mercymorn

See #2.

Supported Front Matter

Click to expand!
Name Description Notes
title * string
linkTitle * string
subtitle displayed below the title string, Markdown supported
date * string
lastmod * string
publishDate * string
expiryDate * string
<taxonomies> eg: categories, tags, series * array
description * string, Markdown supported
summary * string, Markdown supported
images * array
slug * string
url * string
draft * boolean
isCJKLanguage * boolean
weight * integer
type * string, if equal to "poetry", will use a special layout for it
layout * string
outputs * array
aliases * array
markup * string
meta set false to disable post-meta boolean
toc display TOC boolean, override enableTOC in config.toml
tocNum display TOC number boolean, override displayTOCNum in config.toml
anchor enable headings anchor boolean, override enableHeadingsAnchor in config.toml
displayCopyright display post-copyright boolean, override displayPostCopyright in config.toml
badge display updated-badge boolean, override displayUpdatedBadge in config.toml
gitinfo display post-gitinfo boolean, override displayPostGitInfo in config.toml
share display post-share boolean, override displayPostShare in config.toml
related display related-posts boolean, override displayRelatedPosts in config.toml
katex add KaTeX support boolean, override enableKaTeX in config.toml
mathjax add MathJax support boolean, override enableMathJax in config.toml
mermaid add Mermaid support boolean, override enableMermaid in config.toml
comments set false to disable comments in mainSections or set true to enable comments in non-mainSections boolean
smallCaps small caps? boolean, override enableSmallCaps in config.toml
dropCap drop cap? boolean, override enableDropCap in config.toml
dropCapAfterHr drop cap after every horizontal rule tag? boolean, override enableDropCapAfterHr in config.toml
deleteHrBeforeDropCap delete horizontal rule tag before drop cap? boolean, override deleteHrBeforeDropCap in config.toml
indent indent instead of margin? boolean, override paragraphStyle in config.toml
indentFirstParagraph indent the first paragraph? boolean, override indentFirstParagraph in config.toml
align normal, justify, center string, if equal to "normal", will override enableJustify in config.toml
original original? You can add the following 8 terms if you set false. The author is required, other optional boolean, override original in config.toml
author author of original post string
link link of original post string, URL
copyright license of the post string, Markdown supported
website author’s website string
email author’s email string
motto author’s description string
avatar author’s avatar string, URL
twitter author’s twitter id string
disqus_url * string, if not set, will use Permalink as default
disqus_identifier * string, if not set, will use RelPermalink as default
disqus_title * string, if not set, will use Title as default

*: see and


You can’t spell aWEsoME without MEME! 😝







No packages published


  • HTML 54.1%
  • SCSS 32.5%
  • JavaScript 13.2%
  • Shell 0.2%