2016-02-16 1 views
0

Je veux créer un auteur _layout que je pourrais utiliser pour monter une liste de tous les auteurs d'un site Jekyll (en fait, une liste d'hôtes d'un podcast). Je veux que ce soit àJe veux créer un autre répertoire _post dans jekyll

+ \ 
    + _posts 
    + _includes 
    + _layouts 
    + _config.yml 
    + authors <-- Here 

Dans mon site Jekyll, et j'ai déjà vu que Jekyll y affiche des fichiers de démarques.

Cependant, je ne peux pas prendre les auteurs là-bas et l'utiliser pour construire une liste.

J'utilise ce code

<ul> 
    {% for post in site.categories.authors %} 
    <li><a href="{{ site.url }}{{ post.url }}">{{ post.title }}</a></li> 
    {% endfor %} 
</ul> 

Toute suggestion sur la façon dont je dois faire ce que je veux? Je veux que la page soit générer pour renvoyer le nom des hôtes dans une liste, avec des liens pour chacun d'eux, comme

<a href="/authors/foo">This guy</a> 
<a href="/authors/bar">That guy</a> 
<a href="/authors/baz">That other guy</a> 

Et les fichiers à rendre être à:

+ \ 
    + _posts 
    + _includes 
    + _layouts 
    + _config.yml 
    + authors 
    + foo.md 
    + bar.md 
    + baz.md 

Répondre

2

Si vous voulez utiliser des collections, vous devrez les configurer correctement. Mais les collections sont utiles lorsque vous devez ajouter des fichiers de démarques supplémentaires et que vous ne les voulez pas dans _posts.

Vérifiez this answer si vous voulez aller pour les collections.


Mais ce que je crois que ce dont vous avez besoin est Jekyll _data, pas de collections. Pour ce faire, créez un dossier appelé _data dans le site root et ajoutez le fichier authors.yml à cela.

Ensuite, vous ajoutez à authors.yml les données que vous souhaitez appeler:

- ref: 01 
    name: Name Surname 
    url: http://something.com 

- ref: 02 
    name: Name Surname 2 
    url: http://somethingelse.com 

les appeler ensuite par liquide:

{% for author in site.data.authors %} 
<a href="{{ author.url }}">{{ author.name }}</a> 
{% endfor %} 

Je suis désolé si je mal compris votre question .... J'espère vraiment avoir aidé!