2017-04-14 7 views
1

Ich habe eine Jekyll-Sammlung _persons, mit mehreren Volks-Profilen. Jetzt möchte ich mehrere Layouts für jede Person erstellen, z. B. eine Unterseite "Publikationen" und eine "Bio" -Seite für dieselbe Person.Anwenden mehrerer Layouts auf die gleiche Sammlung Artikel in Jekyll

Wie kann ich verschiedene Layouts mit demselben Personenobjekt verknüpfen? Ich würde auch Sub-URLs wie verwenden, wie zum Beispiel:

  • \personA\publications\
  • \personA\bio\

Antwort

2

Unter der Annahme, dass "bios" der Inhaltstyp sind, die Sie mit der Bearbeitung wird, könnte man ein erstellen Symlink in Ihrem Projektstamm von _bios zu _publications:

# Unix/Linux 
ln -s _bios _publications 

Wenn Sie Windows verwenden, werden Sie überprüfen müssen aus mklink.

setzen Sie dann Ihre config.yml so zusammen:

collections: 
    bios: 
    output: true 
    publications: 
    output: true 
defaults: 
    - 
    scope: 
     path: "_bios" 
    values: 
     layout: bio 
     permalink: /biographies/:title/ 
    - 
    scope: 
     path: "_publications" 
    values: 
     layout: publication 
     permalink: /publications/:title/ 

bearbeiten Abschlags-Dateien für Ihre Leute im _bios Verzeichnis und nicht das Layout oder als Link in ihrem frontmatter angeben.

Wenn Ihre Website erstellt wird, erhalten Sie Permalinks wie example.com/publications/personA und example.com/bios/personA. Sie können wie gewohnt site.publications und site.bios durchlaufen.

Sie müssen die bio und publication Layouts definieren, und diese haben Zugriff auf alle Daten, die Sie in der Frontmatter Ihrer bio Sammelobjekte definieren.

Kredit für diese Idee: https://github.com/jekyll/jekyll/issues/3041#issuecomment-267730851

Es könnte mehr semantische sein, eine Sammlung _persons als ein einzelner Punkt der Wahrheit zu haben und zwei Symlinks aus dieser Sammlung zu machen.

Viel Glück!

+0

Interessanter Ansatz - danke. Ich werde es ausprobieren. – alexsb

Verwandte Themen