2016-05-24 9 views
3

Ich baue eine akademische Zeitschrift auf Jekyll 3.0.3 mit periodischen Ausgaben. Im Moment versuche ich, ein automatisch erstelltes Inhaltsverzeichnis zu erstellen, das alle Probleme gemeinsam nutzen können, indem ich Includes verwende, um es hinzuzufügen, und die Seiten über einen Wert in einem 'Order'-Wert in der YAML-Kopfzeile anordne. Ich verwende Sammlungen, um die Probleme zu trennen. Die erste Ausgabe befindet sich beispielsweise in einem Ordner mit der Bezeichnung _issue01.Übergeben Sie include-Parameter, um Ordner aus Sammlungen in Jekyll auszuwählen

Zweite Ausgabe in _issue02 usw. ich in einem Parameter von den Orten zu passieren versuche ich, umfassen sie die Syntax:

{% include toc.html foo=site.issue01 %} 

Und dann auf die toc.html erhalten die foo mit:

{% assign documents = {{include.foo}} | sort: 'order' %} 

Der Filter beschwert:

Error: Liquid error (line 13): Cannot sort a null object.

Ich versuchte einen anderen Ansatz, der den Cue von diesem thread nimmt.

{% capture foo %}{{ site.issue01 }}{% endcapture %} 
{% include foo.html %} 

Aber das scheint das Ganze als eine Zeichenfolge zu übergeben:

Error: undefined method `sort' for #

Antwort

2

ich die Antwort gefunden:

In der Datei, wo Sie die toc aufnehmen möchten:

{% include toc.html bar=site.issue01 %} 

Und in der toc.html ist der Trick, Klammern zu verwenden:

{% assign documents = (include.bar | sort: 'order') %}