layout | title | prev_section | next_section | permalink |
---|---|---|---|---|
docs |
コレクション |
variables |
datafiles |
/docs/collections/ |
postとpageですべてがまかなえるわけではありません。オープンソースプロジェクトにおける様々なメソッド、チームのメンバー、あるいはカンファレンスでの発表リスト、のようなドキュメントが必要となるかもしれません。コレクションを使えば、新しいタイプのドキュメント、つまり通常ではpageやpostのように振る舞い、しかし一方で、固有の属性と名前空間を持ったもの、を定義することができます。
サイトの_config.yml
に以下を追加します(my_collection
は自身のコレクション名に置き換えてください)。
{% highlight yaml %} collections:
- my_collection {% endhighlight %}
この設定でコレクションのメタデータを指定することもできます。
{% highlight yaml %} collections: my_collection: foo: bar {% endhighlight %}
対応するフォルダー(例えば、<source>/_my_collection
)を作成し、ドキュメントを追加します。YAML front-matterがある場合は、それはデータとして読み込まれ、無い場合は、すべてのものはそのままドキュメントのcontent
属性に蓄積されます。
注:フォルダーの名前は、config.ymlファイルに定義したコレクション名に、_
文字を前置したものと同じでなければなりません。
コレクション内の各ドキュメントの公開用ファイル出力版をJekyllで生成したい場合は、_config.yml
におけるcollectionメタデータのoutput
キーをtrue
に設定します。
{% highlight yaml %} collections: my_collection: output: true {% endhighlight %}
この例では、コレクション内の各ドキュメントごとに1つのファイルが生成されます。例えば、_my_collection/some_subdir/some_doc.md
がある場合、それは、設定されたLiquidとMarkdownコンバータを使ってレンダリングされ、<dest>/my_collection/some_subdir/some_doc.html
に書き出されます。
各コレクションには、site
Liquid変数を通してアクセス可能です。例えば、_albums
にあるalbums
コレクションにアクセスしたい場合は、site.albums
を使います。各コレクションそれ自体は、ドキュメントの配列です(例えば、site.albums
は、site.pages
やsite.posts
と同じようなドキュメントの配列です)。これらのドキュメントの属性にアクセスする方法については、以下を参照してください。
また、コレクションにはsite.collections
を通してアクセスできますが、これには、_config.yml
で指定がなされているならそのメタデータと、次の情報とがあります。
変数 | 解説 |
---|---|
|
コレクションの名前(例: |
|
ドキュメントの配列。 |
|
コレクションのソースディレクトリのパス(サイトソースからの相対パス)。 |
|
コレクションのソースディレクトリのフルパス。 |
|
個別ファイルとしてコレクションのドキュメントを出力するか否かの指定。 |
ドキュメントの対応するファイルに備えられたYAML front-matterのものに加えて、各ドキュメントは、次の属性を持っています。
変数 | 解説 |
---|---|
|
(出力前の)ドキュメントの内容。YAML front-matterを備えていない場合、ファイルにある内容のすべてがこれに該当する。YAML front-matterが使われている場合は、ファイルにおけるfront-matterの終端を示す`---`以降の内容がこれに該当する。 |
|
|
|
ドキュメントのソースファイルのフルパス。 |
|
ドキュメントのソースファイルのパス(サイトソースからの相対パス)。 |
|
出力されたコレクションのURL。ファイルは、サイトの設定ファイルにおける |