2016-05-29 11 views
1

Ich habe eine Datendatei mit Bildern erstellt, die ich normalerweise für Beiträge verwenden.Verwenden von Variablen in Jekylls Front Matter

Jetzt möchte ich diese Bildpfade in meinen Postheadern verwenden.

--- 
layout: page 
image: 
- site.data.images.ImageKey 
--- 

Und mein HTML sieht aus wie

{% for image in page.images %} 
      <div> 
       <div class="img-thumbnail"> 
        <img class="img-responsive" src="{{site.baseurl}}{{image.url}}" alt="{{image.title}}"> 
       </div> 
      </div> 
{% endfor %} 

Aber hier etwas nicht stimmt. Es wird kein Bild gerendert.

Es funktioniert, wenn ich Werte in der Fronter-Materie direkt verwenden.

+2

Sie können keine flüssigen Variablen in der Front verwenden. –

+1

Okay. Ich dachte, das ist ein Problem. Dann werde ich Grunt verwenden, um das zu liefern. – PeterLiguda

+1

@PeterLiguda - David Jacquel ist 100% korrekt (wie immer!). Aber wenn Ihre Frage lautet: Gibt es eine Möglichkeit, ein Element in einer Datendatei zu referenzieren, um es in einem Post oder einer Seite zu verwenden und die Front des Posts oder der Seite zu verwenden? Sie können. Wenn Sie Ihre Frage aktualisieren, würde ich gerne antworten und Ihnen zeigen, wie. – TBB

Antwort

3

Ich habe das Problem/die Anfrage gelöst.

Mein _data\images.yml sieht aus wie

Image_Key_Name 
    url: /assets/file.png 
    alt: .... 
    title: .... 
    copyright: .... 

Mein _posts\postXYZ.md

--- 
layout: post 
author: Ben 

titleImages: 
    - Image_Key_ Name 
    - Another_Image_Key_Name 

abc... 
--- 

Und mein _layouts\post.html

jetzt iteriert über die Tasten und sie als Array-Index verwendet.

<div class="title-images"> 
    {% for titleImageKey in page.titleImages %} 
    {% assign titleImage = site.data.images[titleImageKey] %} 
    <img src="{{site.baseurl}}{{titleImage.url}}" alt="{{titleImage.title}}" /> 
    {% endfor %} 

Das war's!

+0

Gute Idee Mann :) –