Skip to content

Instantly share code, notes, and snippets.

@melborne
Last active August 29, 2015 14:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save melborne/05b470f16f31d0d1a591 to your computer and use it in GitHub Desktop.
Save melborne/05b470f16f31d0d1a591 to your computer and use it in GitHub Desktop.
Jekyll Collections日本語版
layout title prev_section next_section permalink
docs
コレクション
variables
datafiles
/docs/collections/
コレクションのサポートは確定しておらず、変更される可能性があります。

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

postとpageですべてがまかなえるわけではありません。オープンソースプロジェクトにおける様々なメソッド、チームのメンバー、あるいはカンファレンスでの発表リスト、のようなドキュメントが必要となるかもしれません。コレクションを使えば、新しいタイプのドキュメント、つまり通常ではpageやpostのように振る舞い、しかし一方で、固有の属性と名前空間を持ったもの、を定義することができます。

コレクション(Collections)の使い方

ステップ1:コレクションに読み込むようJekyllに伝える

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

{% highlight yaml %} collections:

  • my_collection {% endhighlight %}

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

{% highlight yaml %} collections: my_collection: foo: bar {% endhighlight %}

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

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

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

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

コレクション内の各ドキュメントの公開用ファイル出力版を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に書き出されます。

Liquid属性

コレクション

各コレクションには、siteLiquid変数を通してアクセス可能です。例えば、_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キーに、それが属するコレクションの名前が含まれているときに限り、出力先に書き出される。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment