私は会社の現在のサイトをJekyllで再構築しており、属性(キーと値のペア)を持つオブジェクト(コレクション内のファイル)を使用してコンテンツモデルの構造を設定しようとしています。 YAMLフロントマター)。私のチームに効果的なコンテンツモデリングを実証するために設計された、単純な概念的なもの。Jekyllのコレクションから特定のアイテムを取得
再利用されるサイト上のすべてのものが、そのファイルを含む特定のコレクションによって定義されたオブジェクトの種類のオブジェクトになります。だから私は会社が提供するサービスのための「サービス」コレクション、「クライアント」コレクション、そして各人のためのファイルを備えた「人々」コレクションを持っています。
私が抱えている問題は、コレクション内の特定のアイテムを参照していることです。たとえば、私の投稿に作者が必要です。私は_dataを使ってこのための解決策を見つけましたが、私は著者にページを持たせ、コレクションは自動的に各人のページを出力します。私はページを生成するために_dataを取得することができましたが、アイテムがリストされる順序を制御することはできませんが、コレクションを使用すると、順序を制御する方法がたくさんあります。
私の現在の解決策はハッキリです。私は各人に "ファーストネーム - ラストネーム"と等しいIDを与えていますので、YAMLのフロントマターではid: steve-hickey
と言います。次に、次のコードを使用して、サイトのすべての人をループし、投稿に指定されたauthor-idに一致するものを返します。なければならないように思え
---
id: steve-hickey
first-name: Steve
last-name: Hickey
job: User Experience Strategist & AUX Director
layout: person
nav-area: about
portrait-url:
---
:
ポストレイアウトテンプレート:
---
layout: default
---
<header class="intro post-header">
<h1>{{ page.title }}</h1>
{% assign people = site.people | where:"id", page.author-id %}
{% for person in people %}
<p>Written by <a href="/about/{{ page.author-id }}/">{{ person.first-name }} {{ person.last-name }}</a> on <p>{{ page.date | date: '%B %d, %Y' }}</p></p>
{% endfor %}
</header>
<div class="post-body">
{{ content }}
</div>
ポストのフロントマター:
---
title: User Offboarding
layout: post
nav-area: blog
author-id: steve-hickey
---
人のコレクションから人物ファイルに既に所有している固有の属性に基づいて特定のファイルまたはオブジェクトを識別する方法名前またはURL。そうすることで、私が書く必要のある固有のプロパティをすべて評価するのではなく、特定のオブジェクトを指すことができます。しかし、3日間の検索の後、私はこれに対して良い答えを見つけることができません。
ありがとうございました!私はどこかでこの解決策を見つけることになった。あなたとは少し異なった構文ですが、まったく同じ考えです。あなたのものはそれほど冗長ではないので、私はそれに交換すると思います。 '{%assign author = site.people | 'id'、page.author-id%} {%assign author = author [0]%} ' –