Configuration File Introduction

  • root _config.yml is the hexo work folder config file
  • with hexo version < 5.0.0, melody.yml is the theme-melody config file which you should copy the theme _config.yml to the hexo work folder's source/_data/melody.yml
  • with hexo version >= 5.0.0, you should create a _config.melody.yml in the hexo work folder with the contents of the theme's _config.yml.
  • hereinafter collectively referred to as melody.yml.


Set the root _config.yml, not the melody.yml!

language: en

The default language is en.

Language support list

Language Author
default(en) Molunerfinn
zh-Hans Molunerfinn
en Molunerfinn

Theme Color v1.5.6+

Now you can change most of the theme color to whatever you like.

Set the melody.yml, for example:


color values must be quoted like "#000" not #000 or may cause error!

  enable: true # or false -> to use the default theme
  main: "#000"
  paginator: "#000"
  button_hover: "#49B1F5"
  text_selection: "#000"
  link_color: "#000"
  hr_color: "#000"
  meta_color: "#000"
  header_text_color: "#000" # v1.7.0+
  footer_text_color: "#000" # v1.7.0+


Highlight Theme

theme-melody supports the Material Theme code highlight and full five color schemes:

  • default
  • darker
  • pale night
  • light
  • ocean v1.5.5+

set the melody.yml

highlight_theme: default




pale night


ocean v1.5.5+

Copy Support

As you can see, in the top-right corner of code area, it's a copy icon for you to copy the code by clicking.

Code Word Wrap v1.5.6+

By default, hexo-highlight generate the code in long lines. If you don't want a scroll bar in your code area, then you can enable this feature.

set the melody.yml

code_word_wrap: true

And find the root _config.yml, you can see:

  enable: true
  line_number: true
  auto_detect: false
  # ...

now change the line_number to false:

  enable: true
  line_number: false # <- change this
  auto_detect: false

And then run hexo clean & hexo g to generate new code!

Take a look:


Before set the code_word_wrap:

After set the code_word_wrap:

Social Icons

Be careful!

Since v1.6, social icon's format is icon-name prefix: url not icon-name: url, be careful!

Set the social icons and url on the top of site. The format is icon-name prefix: url.

Hexo-theme-melody supports font-awesome v4 & font-awesome v5. By default is the v4 version.

v4 version

if you just want to show v4 icons, you just need to check the font-awesome v4 for icon name and the prefix is always fa.

For example, set the melody.yml

  github fa:
  weibo fa:
  rss fa: https://Molunerfinn/atom.xml

That's all.

v5 version

if you want to show v5 icons, you need to check font-awesome v5 free icons, and the prefix will be fab,fas or so, you need to write down the right prefix or it won't be displayed.


And you need to add font-awesome v5's link to melody.yml.

For example, set the melody.yml

  github fab:
  weibo fab:
  rss fas: https://Molunerfinn/atom.xml

// ...

    fontawesome:[email protected]/css/font-awesome.min.css
  // ...


In the top-right area, there are nav menu items. Hexo has default path for / and /archives. If you want to add more menu items such as tags and categories, follow this:

  1. get to your hexo blog root folder.
  2. type hexo new page tags
  3. you will find source/tags/
  4. modify the

More information about pages, please check the theme-pages for more details.

title: tags
date: 2018-01-05 00:00:00
type: "tags"


the type must be tags! So as the categories.

Then set the melody.yml

  Home: /
  Archives: /archives
  Tags: /tags
  Categories: /categories

you can even change the menu-item's name.

For example:

  Blog: /
  Posts: /archives
  MyTags: /tags
  MyCategories: /categories


Auto Excerpt v1.5.0+

Now, if you do not set auto_excerpt options in melody.yml, your posts will be all shown in the index page. If you add <!-- more --> mark in your post, it will be replaced by a Read More button. If you don't want to add <!-- more --> in every posts, you can set auto_excerpt to auto cut your post in the index page.


Notice: using this feature may cause error with the code area. So if you want to show code in the index page, then you'd better not use this feature!

set the melody.yml:

  enable: true
  length: 150

Top Img

Top Img is the theme-melody most magic option. It can have true or false or specific img url values.

set the melody.yml

top_img: true    # false or specific img url

There are Screenshots of the three different values:

  • top_img: true

For the index site page

For the post page

  • top_img: false

For the index site page

For the post page

  • top_img: https://xxxxx.jpg

For the index site page

For the post page

Set the specific post-item's self top-img

Just add the top_img & url in your post header in the specific md file

title: Hi, theme-melody!
  - hexo
  - hexo theme
top_img: https://xxxxxxx.jpg   # < add top_img to here
date: 2017-09-07


After that, your specific post will have it's own top-img instead of the theme top-img value

Top Img Height v1.7.0+

Since v1.7.0 you can control the top_img_height! The default value is 60 which means the top_img will occupy 60% of the page height. So if you like, you can set the value to 100 to have a full page top_img!

Set the melody.yml

top_img_height: 60

Post Meta

Post Meta is a option to show the information of a post.

Set the melody.yml

  date_type: created # or updated or both(v1.7.0+)
  categories: true # or false
  tags: true # or false

In the top of a post, you can see the date of post and the categories of post. In the bottom of a post, you can see the tags of post.

The following Screenshots shows the tags:

Post Copyright v1.1.0+

Show the copyright & license for your blog post!

Set the melody.yml.

  enable: true
  license: CC BY-NC-SA 3.0


Post QR Code v1.1.0+

Show your own QR code in the end of a post to readers. The QR code img & the text of it depends on you.

Set the melody.yml

  - itemlist:
      img: https://xxxx1.jpg
      text: 支付宝打赏
  - itemlist:
      img: https://xxxx2.jpg
      text: 微信打赏


Post Adv Area v1.4.0+

Get a adv area for your post! You can put an adv or a music player and so on. It's up to you.

Set the melody.yml

  enable: true
  info: # the adv you want to show

For example:

  enable: true
  info: <a href=""><img src="" width="728" height="90"></a>


Since v1.7.0, you can set the melody.yml to control the sidebar to automatically show in specific page or not. The default sidebar_display value is post, means the sidebar will automatically display in the post page.

sidebar_display: post # all/index/post/index-none/post-none/hidden

All options are described below

  • all: all page will automatically show the sidebar
  • index: just the index page will automatically show the sidebar
  • post: just the post page will automatically show the sidebar
  • index-none: just the index page won't automatically show the sidebar
  • post-none: just the post page won't automatically show the sidebar
  • hidden: all the page won't automatically show the sidebar


Set the melody.yml. Please select an image of equal length and width.

avatar: https://xxxx.jpg


Follow Me v1.5.4+

Set the melody.yml.

  enable: true
  url: ''
  text: 'Follow Me'


In the sidebar, you can set some links to your friends or some web pages. The format is name: url

set the melody.yml

links_title: Links   # Set the links title



You can have a toc catalog for your post. It's in your sidebar and will auto expand headers depends on your scroll top.

Since v1.5.6 you can choose to show the number of toc list or not.

set the melody.yml

  enable: true # or false
  number: true # or false. Since v1.5.6

Set the specific post-item's self toc-number

Just add the toc_number in your post header in the specific md file

title: Hi, theme-melody!
  - hexo
  - hexo theme
toc_number: false   # < add toc_number to here. Since v1.5.6
date: 2017-09-07


After that, your specific post will have it's own top-number control instead of the theme toc-number value


enable: true

enable: false

number: false


Since is an option to show people the age of your site. It's position is in the bottom of the page.

set the melody.yml

since: 2013


footer_custom_text is an option for you to show some texts in the footer area. It supports HTML.

set the melody.yml

footer_custom_text: Hi, welcome to my <a href="">blog</a>!

hitokoto v1.7.0+

if you set:

footer_custom_text: hitokoto

then the footer_custom_text will generate random text for your site!

See demo:




Like the anime.js clicking effects

Set the melody.yml

fireworks: true

Try to click the page body!



Set the melody.yml and chekcout ribbon.js for more details.

  enable: true
  size: 150
  alpha: 0.6
  zIndex: -1
  click_to_change: false