コンテンツコレクション
コレクションは、ゴーストサイト上のポストが編成されているかのバックボーンだけでなく、彼らが住んでURLです。
あなたは、たとえば、コンテンツの異なる別個の種類を表すサイトの主要なセクションとしてのコレクションと考えることができます blog
と podcast
。
コレクションは、主に2つの目的を果たします:
- ページ番号付きのインデックスルート上でそれらに含まれるすべての投稿を表示するには
- その記事のURL構造を決定し、どこサイト上で彼ら「ライブ」にします。このため、ポストは今までのコレクションにすることができます。
ポストは、どちらかのブログやポッドキャストでなければならない、それは両方をすることはできません。
デフォルトの収集
default routes.yamlファイル ゴーストが付属して、ルート上の1つだけのコレクションが含まれ /
、サイト全体の構造を定義するURLを。
collections:
/:
permalink: /{slug}/ template: index
ここでは、ホームのルートは site.com
使用して、すべての記事を表示する index.hbs
テンプレートファイルを、そしてによって決定されたURLに各ポストをレンダリング {slug}
ゴーストエディタで作成します。
要するに:これはなぜ幽霊がデフォルトでどのように動作するかを正確に+です!
カスタムホームページを使用します
デフォルトのコレクションを編集する最も最小限の例の一つは、新しい場所に移動し、カスタムのホーム・ページ用のスペースを確保することです。
routes:
/: home
collections: /blog/: permalink: /blog/{slug}/ template: index
上の前のセクションからの例を使用して 、カスタムルート、自宅の /
ルートは今と呼ばれる静的なテンプレートを指している home.hbs
-とメインコレクションが今の負荷に移動されました site.com/blog/
。各ポストのURLもが付いています /blog/
。
コレクションのフィルタリング
多くのように {{#get}} ヘルパー、コレクションはむしろそれのすべてよりも、あなたのサイト上のコンテンツのサブセットのみを含むようにフィルタリングすることができます。
collections:
/blog/:
permalink: /blog/{slug}/ template: blog filter: primary_tag:blog /podcast/: permalink: /podcast/{slug}/ template: podcast filter: primary_tag:podcast
前述の例に戻ると、ゴースト内のポストのすべてがここでは2つのコレクションに分割されている blog
と podcast
。
ブログ集
- 表示されます:
site.com/blog/
- ポストのURL:
site.com/blog/my-story/
- 記事が含まれています
primary_tag
のは、blog
ポッドキャストコレクション
- 表示されます:
site.com/podcast/
- ポストのURL:
site.com/podcast/my-episode/
- 記事が含まれています
primary_tag
のは、podcast
primary_tag
プロパティは、単に 最初の ゴーストのエディタ内のタグリストに登録されたタグ。それは常に一意になりますので、それは主要なタグに対するフィルターに便利です。
ポストはのためのフィルタ特性と一致する場合は 、複数 のコレクション、それは試してみて、常に互いからユニークなコレクションフィルタを維持することが重要ですので、これは、ポストレンダリングおよび収集改ページとの問題につながることができます。 ここでは詳細情報»
コレクションのさまざまな利用方法
コレクションは、あなたのコンテンツやサイト構造を整理するための非常に強力な方法ですので、その唯一の制限はあなたの想像している - と私たちの決まり文句。
インデックスへのデータのロード
多くのように カスタムのルート、コレクションは、コレクションのインデックスにデータを渡すためにdataプロパティを受け入れることができます。たとえば、あなたが呼ばれるコレクションを持っているかもしれません portfolio
どのリストあなたの最も最近の仕事のすべて。しかし、どのようにするために、タイトル、説明、およびメタデータを設定しない こと 、コレクションインデックス?
collections:
/portfolio/:
permalink: /work/{slug}/ template: work filter: primary_tag:work data: tag.work
さて、あなたの work.hbs
テンプレートは、あなたからのすべてのデータへのアクセス(およびメタデータ)を持つことになります work
タグ。そして、忘れてはいけない。 site.com/tag/work/
今もにリダイレクトされます site.com/portfolio/
-ので、無重複コンテンツ!
マルチLANGサイトを作成します
コレクションのための別の本当に人気の使用は、複数の言語でコンテンツを公開し、ロケールごとに異なる領域とURLパターンを作成するサイトです。
collections:
/:
permalink: /{slug}/ template: index filter: tag:-de /de/: permalink: /de/{slug}/ template: index-de filter: tag:de
これは、サイトの既定の言語であることをベースURLを設定し、追加追加することになり site.com/de/
、ドイツのすべての記事のセクションを、でタグ付けされました de
。メインコレクション除外任意の重複を避けるために、これらの同じポスト。