パーマリンク

パーマリンクは、ページやポスト、コレクションを出力するパスです。ソースコードのディレクトリ構成と出力するディレクトリ構成を変えることも可能です。

Front Matter

パーマリンクを設定するシンプルな方法は、front matterを使用することです。front matterのpermalink変数に、好きな出力パスを設定します。

例えば、/my_pages/about-me.htmlのページの出力するURLを/about/にしたい場合は、ページのfront matterを次のようにセットします。

---
permalink: /about/
---

グローバル

パーマリンクを全てのページのfront matterで設定するのは大変です。幸運なことに、Jekyllでは_config.ymlでサイト全体のパーマリンクの構成を設定できます。

全体的なパーマリンクを設定するには、_config.ymlpermalink変数を使用します。望む出力になるように置換用変数(placeholders)を使用できます。例えば:

permalink: /:categories/:year/:month/:day/:title:output_ext

ページや(postsdraftsを除く)コレクションには時刻やカテゴリが無いことに注意してください(ページの場合、上記の:title:basenameと同等です)。これらのパーマリンクスタイルは出力時には無視されます。

パーマリンクスタイルの例は、postsコレクションなら/:categories/:year/:month/:day/:title:output_ext、ページや(postsdraftsを除く)コレクションなら/:title.htmlです。

置換用変数(Placeholders)

使用できる全置換用変数(Placeholders)のリストです。

変数 説明

year

ポストのファイル名から取得した4桁の年。ドキュメントのfront matterのdateで上書きされる可能性があります。

short_year

ポストのファイル名から取得した西暦の下2桁。ドキュメントのfront matterのdateで上書きされる可能性があります。

month

ポストのファイル名から取得した月(2桁)。ドキュメントのfront matterのdateで上書きされる可能性があります。

i_month

ポストのファイル名から取得した月(10 の位の0なし)。ドキュメントのfront matterのdateで上書きされる可能性があります。

short_month

3文字表記の月。“Jan”など。

long_month

4.0

月のフルネーム。“January”など。

day

ポストのファイル名から取得した日(2桁)。ドキュメントのfront matterのdateで上書きされる可能性があります。

i_day

ポストのファイル名から取得した日(10 の位の0なし)。ドキュメントのfront matterのdateで上書きされる可能性があります。

y_day

ポストのファイル名から取得した、その年の何日目か。 (001..366)

w_year

4.0

週の所属する年。1月の始めと12月の終わりは月の所属する年と異なる場合があります。

week

4.0

その年の何週目か。ただし、1月の日が大部分を占める週から始まります。 (01..53)

w_day

4.0
<p月曜日を1とする曜日。(1..7)</p>

short_day

4.0

3文字表記の曜日。“Sun”など

long_day

4.0

曜日名。“Sunday”など。

hour

ポストのfront matterのdateから取得した24時間表記の時。(00..23)

minute

ポストのfront matterのdateから取得した分。(00..59)

second

ポストのfront matterのdateから取得した秒。(00..59)

title

ドキュメントのファイル名から取得したタイトル。front matterのslugで上書きされる可能性があります。

slug

ドキュメントのファイル名からのタイトルをスラグ化(数字と文字を除くすべての文字はハイフンに置き換えらる)したもの。front matterのslugで上書きされる可能性があります。

categories

ポストのカテゴリ。ポストに複数のカテゴリがある場合、Jekyllは/category1/category2の様に階層化します。また、JekyllはURL内の二重スラッシュを自動的に修復します。そのため、カテゴリが存在しない場合、無視されます。

slugified_categories

4.1

このポストのslugifiedカテゴリ。カテゴリが複数の単語で構成されている場合、Jekyllは全てのアルファベットを小文字にし、アルファベットでない文字をハイフンに置き換えます。(例 "Work 2 Progress""work-2-progress"となります)

ポストに複数のカテゴリがある場合、Jekyllは階層化します(例 /work-2-progress/category2)。また、JekyllはURL内の二重スラッシュを自動的に解析するため、カテゴリが存在しない場合は無視されます。

組み込みフォーマット

Jekyllはポストに、以下の便利な組み込みスタイルを提供します。

パーマリンクスタイル URLテンプレート

date

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

pretty

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

ordinal

/:categories/:year/:y_day/:title:output_ext

weekdate

4.0

/:categories/:year/W:week/:short_day/:title:output_ext

none

/:categories/:title:output_ext

permalink: /:categories/:year/:month/:day/:title/と書く代わりに、permalink: prettyとすることができます。

front matterでのパーマリンクの指定

組み込みパーマリンクスタイルはfront matterでは認識されません。ですので、 permalink: prettyは機能しません。

コレクション

コレクション(postsdraftを含む)は、_config.ymlのコレクションの設定でグローバルパーマリンクを上書きできるオプションがあります。

collections:
  my_collection:
    output: true
    permalink: /:collection/:name

コレクションは以下の置換用変数を使用できます。

変数 説明

:collection

どのコレクションかのラベル。

:path

コレクションのディレクトリからの相対パス。ドキュメントのベースファイル名を含みます。

:name

ドキュメントのベースファイル名。空白及びアルファベット以外の文字はハイフンに置き換えられます。

:title

:titleテンプレート変数はfront matterslugがある場合はその値を取得します。無い場合、:title:nameは同じ値です。ファイル名から作成されたスラグとも言えます。

:output_ext

出力ファイルの拡張子。(デフォルトで含まれており、通常は不要です。)

ページ

ぺーじでは、front matterを用いてグローバルパーマリンクを上書きでき、_config.ymlのfront matterデフォルトを介してパーマリンクを設定していた場合、無視されます

ページは以下の置換用変数を使用できます。

変数 説明

:path

ページのベースファイル名を除いた、サイトのソースディレクトリへのページの相対パス。

:basename

ページのベースファイル名

:output_ext

出力ファイルの拡張子。(デフォルトで含まれており、通常は不要です。)