2012-07-15 9 views
5

In meinem _config.yml finden Ich habe:Struggling Array in Jekyll Konfigurationsdatei (Seitennavigation)

navigation: 
- text: Home 
    url: index.html 
- text: About 
    url: about.html 
- text: Blog 
    url: blog.html 
- text: Portfolio 
    url: portfolio.html 

In meinem default.html Layout habe ich:

<ul class="nav-list"> 
    {% for link in site.navigation %} 
    {% assign current = nil %} 
    {% if page.url == link.url %} 
     {% assign current = 'current' %} 
    {% endif %} 

    <li class="nav-list-item{% if forloop.first %}first{% endif %} {{ current }} {% if forloop.last %}nav-list-item-last{% endif %}"> 
     <a class="{{ current }}" href="{{ link.url }}">{{ link.text }}</a> 
    </li> 
    {% endfor %} 
</ul> 

Aus irgendeinem Grund, dies nicht funktioniert . Warum könnte das sein?

+0

Es funktioniert für mich. Mit Ausnahme der Markierung der aktuellen Seite, da "page.url" den Pfad enthält, wie "/index.html", werden die Gleichheitsprüfungen fehlschlagen. Wie funktioniert das nicht für dich? Absolut keine Ausgabe? Uninterpretierte Flüssigkeit in der Ausgabe? Einfach den aktuellen Artikel nicht markieren? – manatwork

+0

Es kann nicht scheinen, "site.navigation" überhaupt zu finden. Wenn ich den Inhalt von '_config.yml' komplett entleere und einfach die obige Eingabe einlege, ist das die Einrichtung, die ich gerade habe. –

+0

Möglicherweise nicht relevant, aber versuchen Sie dies lokal oder auf GitHub? (Ich habe nur lokal getestet.) Können Sie über Ihre _config.yml auf andere Einstellungen zugreifen? Sind Sie sicher, dass die Elemente des Navigationsarrays mit Leerzeichen und nicht mit Tabulatoren eingerückt sind? – manatwork

Antwort

4

Ich habe gerade herausgefunden, dass Sie den Server neu starten und jekyll --server erneut ausführen müssen und die _config.yml Variablen werden zugänglich sein.

Dann nach dem herauszufinden, kam zurück zu dieser Seite und war im Begriff, diese Antwort zu posten, klickte add/show 4 more comments und sah, dass dies auch von der OP gefunden wurde. Also posten Sie es als Antwort.

+0

Danke. Sollte es als Antwort selbst gepostet haben, oops! –

+0

@OliverJosephAsh Ich vergebe dir. – ThomasReggi

0

Neben der anderen Antwort: Sie können - wie Sie in Ihrer Antwort erwähnt - verwenden Ctrl +C den aktuell laufenden Server (im CLI) zu beenden. Aber, können Sie auch starten Sie den Server mit

jekyll server -w 

Jekyll zu sagen, für Änderungen in Ihren Dateien zu beobachten. Während dies für Änderungen an der _config.yml nicht funktioniert, funktioniert es für alle anderen Dateien. Beachten Sie, dass dies nicht funktioniert, einschließlich der Option --safe, damit Sie keine Fehler erhalten. Um sie abzufangen, empfehle ich dennoch, von Zeit zu Zeit jekyll --safe build auszuführen, um zu sehen, ob Sie Syntaxfehler haben. Das gleiche gilt für das Ausführen von jekyll doctor/jekyll hyde manchmal während Ihres Entwicklungsprozesses.

Verwandte Themen