2016-04-29 10 views
0

Ich habe zwei .json Datendateien (en.json und en-br.json) in Ordnern _data/i18n/Wie auf Jekyll/Flüssig zwei json Daten zusammenführen

ich alle Daten zugreifen kann indem diese Dateien zum Beispiel:

site.data.i18n.var1 

Was ich tun möchte, ist diese beiden Dateien zusammenführen, indem die Daten aus dem ersten durch die Daten in den zweiten ersetzt, sofern sie den gleichen Index haben. AUS PLUGINS.

en.json:

{ 
"var1", "1111", 
"var2", "2222", 
"var3", "3333", 
"var4": "4444" 
} 

pt-br.json:

{ 
"var1", "5555", 
"var4": "6666" 
} 

Das Ergebnis, das ich würde hoffen:

myVariable.var1: 5555 
myVariable.var2: 2222 
myVariable.var3: 3333 
myVariable.var4: 6666 

Ich habe versucht, diese :

{% assign txt = site.data.i18n.en %} 
{% assign txt = site.data.i18n.pt-br %} 

Aber das zweite überschreibt das erste Löschen der fehlenden Felder.

Antwort

1

Sie können nicht zwei Hash mit Flüssigkeit zusammenführen.

Eine Lösung kann die Verwendung des Jekyll-Konfigurationsmechanismus sein. Mit diesem Mechanismus können Sie jekyll mit mehreren Konfigurationsdateien ausführen (documentation).

von jekyll serve --config _config.yml,_data/lang/en.yml,_data/lang/pt-br.yml läuft, werden Sie Daten haben in en.yml mit Daten in pt-br.yml ‚‘ ‚die spätere Datei in früheren zwingenden Daten‘ verschmolzen.

Hinweis: Sie müssen Ihre Dateien als yaml nicht json formatieren. Vorschlag für en.yml:

lang: 
    "var1": "1111" 
    "var2": "2222" 
    "var3": "3333" 
    "var4": "4444" 

Ihre Variablen sind dann unter site.lang.variableName zur Verfügung.

Hinweis: Wenn Sie github-Seiten verwenden, müssen Sie lokal generieren und von Hand veröffentlichen.