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:
permalink_defaults:
lang: en
Given a post named hello-world.md
in the source/_posts
folder with the following content.
title: Hello World
date: 2013-07-14 17:01:34
categories:
- 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 |
To create a multi-language site, you can modify the new_post_name
and permalink
settings like this:
new_post_name: :lang/:title.md
permalink: :lang/:title/
When you create a new post, the post will be saved to:
$ hexo new "Hello World" --lang tw
# => source/_posts/tw/Hello-World.md
and the URL will be:
http://localhost:4000/tw/hello-world/