Collection

Collectionのサポートは確定しておらず、変更される可能性があります。

これは実験的な機能であり、APIはこの機能が安定するまでは変更される可能性が高いです。

PostとPageですべてがまかなえるわけではありません。関わっているオープンソースプロジェクトにおける決めごとをまとめたり、チームメンバーの紹介をしたり、カンファレンスでの発表の記録を残したりしたくなることもあるでしょう。 Collectionを使えば、新しいタイプのドキュメント、つまり通常ではPageやPostのように振る舞い、しかし一方で、固有の属性と名前空間を持ったもの、を定義することができます。

Collectionの使い方

ステップ1:Jekyllにあなたのコレクションを読み込ませる

サイトの_config.ymlに以下を追加します(my_collectionは自身のコレクション名に置き換えてください)。

collections:
- my_collection

この設定でコレクションのメタデータを指定することもできます。

collections:
  my_collection:
    foo: bar

ステップ2:コンテンツを追加する

対応するフォルダー(例えば、<source>/_my_collection)を作成し、ドキュメントを追加します。 YAML front-matterがある場合は、それはデータとして読み込まれ、無い場合は、すべてのものはそのままドキュメントのcontent属性に挿入されます。

注:フォルダーの名前は、config.ymlファイルに定義したコレクション名に、_文字を前置したものと同じでなければなりません。

ステップ3:必要に応じてコレクションのドキュメントを個別ファイルに書き出す

コレクション内の各ドキュメントの公開用ファイル出力版をJekyllで生成したい場合は、_config.ymlにおけるcollectionメタデータのoutputキーをtrueに設定します。

collections:
  my_collection:
    output: true

この例では、コレクション内の各ドキュメントごとに1つのファイルが生成されます。 例えば、_my_collection/some_subdir/some_doc.mdがある場合、それは、設定されたLiquidとMarkdownコンバータを使ってレンダリングされ、<dest>/my_collection/some_subdir/some_doc.htmlに書き出されます。

パーマリンクがある記事に関しては、ドキュメントのURLはコレクションのpermalinkメタデータを設定することでカスタマイズできます。

collections:
  my_collection:
    output: true
    permalink: /awesome/:path/

例えば、_my_collection/some_subdir/some_doc.mdがある場合、それは<dest>/awesome/some_subdir/some_doc/index.htmlに書き出されることになります。

変数 解説

collection

コレクションのラベル

path

コレクションのディレクトリに対するドキュメントの相対パス

output_ext

出力ファイルの拡張子

Liquid属性

コレクション

各コレクションには、Liquid変数siteを通してアクセス可能です。例えば、_albumsにあるalbumsコレクションにアクセスしたい場合は、site.albumsを使います。 各コレクションそれ自体は、ドキュメントの配列です(例えば、site.albums は、site.pagessite.postsと同じようなドキュメントの配列です)。これらのドキュメントの属性にアクセスする方法については、以下を参照してください。

また、コレクションにはsite.collectionsを通してアクセスできますが、これには、_config.ymlで指定がなされているならそのメタデータと、次の情報とがあります。

変数 解説

label

コレクションの名前(例:my_collection)。

docs

ドキュメントの配列。

relative_directory

コレクションのソースディレクトリのパス(サイトソースからの相対パス)。

directory

コレクションのソースディレクトリのフルパス。

output

個別ファイルとしてコレクションのドキュメントを出力するか否かの指定。

ドキュメント

ドキュメントの対応するファイルに備えられたYAML front-matterのものに加えて、各ドキュメントは、次の属性を持っています。

変数 解説

content

(出力前の)ドキュメントの内容。YAML front-matterを備えていない場合、ファイルにある内容のすべてがこれに該当する。YAML front-matterが使われている場合は、ファイルにおけるfront-matterの終端を示す`---`以降の内容がこれに該当する。

output

contentに基づくドキュメントのレンダリング出力。

path

ドキュメントのソースファイルのフルパス。

relative_path

ドキュメントのソースファイルのパス(サイトソースからの相対パス)。

url

出力されたコレクションのURL。ファイルは、サイトの設定ファイルにおけるrenderキーに、それが属するコレクションの名前が含まれているときに限り、出力先に書き出される。

collection

ドキュメントのコレクションの名前。