Permalinks

Jekyll supports a flexible way to build your site’s URLs. You can specify the permalinks for your site through the Configuration or in the YAML Front Matter for each post. You’re free to choose one of the built-in styles to create your links or craft your own. The default style is date.

Permalinks are constructed by creating a template URL where dynamic elements are represented by colon-prefixed keywords. For example, the default date permalink is defined as /:categories/:year/:month/:day/:title.html.

Template variables

Variable Description

year

Year from the Post’s filename

month

Month from the Post’s filename

i_month

Month from the Post’s filename without leading zeros.

day

Day from the Post’s filename

i_day

Day from the Post’s filename without leading zeros.

short_year

Year from the Post’s filename without the century.

title

Title from the Post’s filename

categories

The specified categories for this Post. If a post has multiple categories, Jekyll will create a hierarchy (e.g. /category1/category2). Also Jekyll automatically parses out double slashes in the URLs, so if no categories are present, it will ignore this.

Note: these may only apply to posts, not to pages, collections or static files. For example, pretty changes page permalinks from /:path/:basename:output_ext to /:page/:basename/ if the page is HTML, thus “prettyifying” the page permalink. The date, none, and all custom values do not apply to pages. No permalink style applies to static files, and collections have their own means of specifying permalinks. It’s all rather confusing but check out Issue #2691 for more background on the subject, and submit a PR if you’re adventurous enough to fix it all!

Permalink Style URL Template

date

/:categories/:year/:month/:day/:title.html

pretty

/:categories/:year/:month/:day/:title/

none

/:categories/:title.html

Given a post named: /2009-04-29-slap-chop.textile

URL Template Resulting Permalink URL

None specified, or permalink: date

/2009/04/29/slap-chop.html

pretty

/2009/04/29/slap-chop/index.html

/:month-:day-:year/:title.html

/04-29-2009/slap-chop.html

/blog/:year/:month/:day/:title

/blog/2009/04/29/slap-chop/index.html