You can specify the permalinks for your site in _config.yml or in the front-matter for each post.


Besides the following variables, you can use any attributes in the permalink.

Variable Description
:year Published year of posts (4-digit)
:month Published month of posts (2-digit)
:i_month Published month of posts (Without leading zeros)
:day Published day of posts (2-digit)
:i_day Published day of posts (Without leading zeros)
:title Filename
:id Post ID
:category Categories. If the post is uncategorized, it will use the default_category value.

You can define the default value of each variable in the permalink through the permalink_defaults setting:

lang: en


Given a post named in the source/_posts folder with the following content.

title: Hello World
date: 2013-07-14 17:01:34
- foo
- bar
Setting Result
:year/:month/:day/:title/ 2013/07/14/hello-world
:year-:month-:day-:title.html 2013-07-14-hello-world.html
:category/:title foo/bar/hello-world

Multi-language Support

To create a multi-language site, you can modify the new_post_name and permalink settings like this:

new_post_name: :lang/
permalink: :lang/:title/

When you create a new post, the post will be saved to:

$ hexo new "Hello World" --lang tw
# => source/_posts/tw/

and the URL will be: