2016-06-21 14 views
0

Ich würde gerne meine Beitragselemente in Abschnitte unterteilen, indem irgendwie mehrere Elemente erstellen und dann in Flüssigkeit verwenden.Wie gruppiere Beitrag "Elemente" in Jekyll

Zum Beispiel habe ich versucht, dies zu setzen in der Post Titelei:

element: some text 
element: some other text 
element: even more text 

Aber wenn ich versuche, die in Flüssigkeit zu verweisen:

{% for elemento in post.element %} 
     {{ elemento }} 
{% endfor %} 

dann nur noch das letzte "Element" ist berücksichtigt.

Dies lässt mich denken, dass Sie nicht mehrere Variablen mit dem gleichen Namen haben und durch sie durchlaufen können, weil Jekyll nur die letzte lesen und die vorherigen mit dem gleichen Namen ignorieren würde.

Ich möchte nicht verschiedene Variablennamen (wie in Element1, Element2 usw.) verwenden, da jeder Beitrag eine andere Anzahl von Elementen haben würde.

Was wäre ein Weg, das zu erreichen?

Vielen Dank.

Antwort

3

Sie können ein Elemente Array in Ihrer Front Angelegenheit verwenden.

elements : 
- valueOne 
- valueTwo 

oder

elements: [valueOne, valueTwo] 

Sie können dann Schleife in Elemente:

aus Ihrem Beitrag oder ein Layout

<ul> 
{% for element in page.elements %} 
    <li>{{ element }}</li> 
{% endfor %} 
</ul> 

aus dem Inneren einer site.posts Schleife:

{% for post in site.posts %} 
    {% for element in posts.elements %} 
    <li>{{ element }}</li> 
    {% endfor %} 
{% endfor %} 
+0

Danke, das hat perfekt funktioniert und war was ich gesucht habe. Ich musste nur "Seite" durch "Post" ersetzen. – Dakatine

+0

auch, ich habe die Variable element.element statt nur "element" anderen whise, die wie folgt aussehen würde: {"element" => "text"}. Ich habe die Antwort entsprechend bearbeitet. – Dakatine

+0

Ich habe meine Antwort präzisiert. Sie können Seite oder Post verwenden, es hängt vom Kontext ab. Und wenn Sie 'element.element' verwenden müssen, haben Sie ein' elements: [element: value1, element: value2] '- Array, und Sie haben das gleiche Problem mit dem letzten Wert, der den vorherigen überschreibt. Angemessener Gebrauch ist 'Elemente: [valueOne, valueTwo]' 'mit zitierten Werten oder nicht. –

Verwandte Themen