2017-10-28 9 views
1

Ich habe ein paar Fragen zu diesem Thema gesehen, aber keine konnte mein Problem lösen. Ich möchte eine mehrsprachige jekyll Seite haben, ohne ein Plugin zu benutzen. Ich habe eine YAML-Datei mit dieser verschachtelten ListeNavigieren durch verschachtelte Yaml Liste mit Flüssigkeit

menu: 
    fr: 
    home: 
     name:"Acceuil" 
     url:"/" 
    team: 
     name:"Équipe" 
     url:"/equipe" 
    en: 
    home: 
     name:"Home" 
     url:"/home.html" 
    team: 
     name:"Team" 
     url:"/team" 

Ich mag würde ein anderes Menü drucken auf der Seite je lang Option im yaml Titelei. Eine minimale exemple wäre:

--- 
lang: en 
--- 
<ul> 
    {% for item in site.menu.[page.lang] %} 
     <li><a href="{{ item[1].url }}">{{ item[1].name }}</a></li> 
    {% endfor %} 
</ul> 

und dies in raw html

  • Startseite
  • -Team

Aber anstatt meinen Code druckt nichts gedruckt werden soll, ich habe nur zwei Kugeln mit kein Text. Ich kann nicht sehen, was ich falsch mache, könnt ihr mir helfen?

Edit:

Ok, mein einziges Problem war nur, dass ich nicht der Raum zwischen dem Wert Indikator und dem Wert gelegt hat. Jetzt ist das Problem gelöst. Vielen Dank !

Antwort

0

ein Leerzeichen zwischen Doppelpunkten und Werten in der Menüdatei hinzufügen, nach der YAML Spezifikation:

YAML beharrt die „:“ mapping Wertanzeige vom Wert durch Leerzeichen getrennt werden.

Auch die menu: Schlüssel entfernen und das Menü in einer _data/menu.yml namens Datei speichern.

fr: 
    home: 
    name: "Acceuil" 
    url: "/" 
    team: 
    name: "Équipe" 
    url: "/equipe" 
en: 
    home: 
    name: "Home" 
    url: "/home.html" 
    team: 
    name: "Team" 
    url: "/team" 

Dann können Sie diese Daten mit site.data.menu Zugriff direkt auf den lang Schlüssel ohne ein . zwischen menu und page.lang Zugriff:

<ul> 
    {% for item in site.data.menu[page.lang] %} 
     <li><a href="{{ item[1].url }}">{{ item[1].name }}</a></li> 
    {% endfor %} 
</ul> 

Dies erzeugt:

<ul> 

     <li><a href="/home.html">Home</a></li> 

     <li><a href="/team">Team</a></li> 

</ul> 

  • Ich habe einen ähnlichen Ansatz in einer mehrsprachigen Website mit nav.yaml und einem langnav.html enthalten.
+0

Vielen Dank, Leerzeichen zwischen den Wert Indikator und den Wert zu setzen löst das Problem! – Samsa