Générer une liste de pages (pas de postes) dans une catégorie donnée
Je suis en utilisant Jekyll comme un générateur statique pour un site web (pas un blog), et je veux avoir généré automatiquement la liste de toutes les pages sur ma page index. Plus précisément, je veux avoir les différentes catégories et la liste de tous les articles dans chaque catégorie séparément. Voici un exemple de ce que je parle, si vous éprouvez de la difficulté à suivre. Est-il un moyen de le faire dans Jekyll (par exemple, GitHub pages)? J'ai vu le les variables de page de documentation mais qui semble spécifique à l'article du blog format.
- 'Voici un exemple de ce à quoi je parle, si vous éprouvez de la difficulté à suivre.' FWIW, cette page n'est pas généré automatiquement - je ajouter des entrées manuellement, quand je pense qu'ils sont finis et de haute qualité.
- J'avais juste décidé de faire la même chose, gwern.
- vous souhaitez peut-être envisager de changer la accepté de répondre... 😉
Vous devez vous connecter pour publier un commentaire.
Lors de la construction de mon propre site, je suis tombé sur ce même problème, et j'ai trouvé une (à mon humble avis) facile et la solution solide. Espérons que cela est utile pour toutes les personnes désireuses de faire quelque chose de similaire.
Le Problème
Donné un sous-ensemble de pages (sans poteaux) sur le site, la liste des sous rubriques en fonction de leur catégorie. Par exemple: étant donné un ensemble de pages que nous considérons ressources pages (ou les pages de référence, ou quelle que soit la logique de regroupement de pages que vous souhaitez afficher sont), nous voulons la liste sous leurs catégories (ex. code, explication, etc.).
La Solution
Pour obtenir le comportement que nous voulons, nous devons apporter des modifications à trois endroits:
_config.yml
resources.md
resource-file-X.md
_config.yml
Dans
_config.yml
, nous devons ajouter une liste de toutes les catégories/mots-clés/tags (ou ce que vous voulez l'appeler) qui apparaissent dans les fichiers de ressources. Voici ce que j'ai dans la mienne:Vous pouvez appeler la variable de quoi que ce soit, j'ai choisi
category-list
, assurez-vous que vous utilisez la même variable dans lesresource.md
fichier.Remarque: L'ordre dans lequel vous placez les éléments dans la liste correspond à l'ordre dans lequel ils seront répertoriés sur le
resource.md
page.resource-file-X.md
Ce sont les fichiers que vous souhaitez indexer et liés sur le
resources.md
page. Tout ce que vous devez faire est d'ajouter deux variables du fichier en haut de chacun de ces fichiers. La première est d'indiquer que ce fichier est un ressources fichier.La deuxième est d'indiquer quelles sont les catégories que vous voulez que ce fichier soit indexé sous. Vous pouvez indice des sous autant de catégories que vous le souhaitez, et si vous voulez une page de l'onu indexés, quitter la liste vide. Ma référence pour un bon EINTR la manutention dans des C a les catégories suivantes:
resources.md
C'est le fichier qui va générer la liste des pages, basé sur leurs catégories respectives. Tout ce que vous devez faire est d'ajouter le code suivant dans ce fichier (ou quel que soit le fichier que vous souhaitez la liste pour être sur):
Code Panne
Juste une petite explication de comment cela fonctionne:
_config.yml
.resource
, puis pour chacune des catégories que le fichier appartient, si l'un d'entre eux correspond à la catégorie dans la liste, l'affichage d'un lien vers cette page.Remarque: les variables
category-list
dans_config.yml
etcategories
dans les fichiers de ressources peut être appelé à tout ce que vous voulez, assurez-vous que vous utilisez les mêmes variables dans le fichier de génération de la liste.Une autre Remarque: Lorsque vous modifiez
_config.yml
, vous devez redémarrer complètement Jekyll, même si vous avez le--watch
option, vous devez vous arrêter et de le redémarrer. Il m'a fallu un certain temps à comprendre pourquoi mes modifications n'ont pas pris effet!Le Produit Final
Vous pouvez voir le produit final de la page de ressources sur mon site, bien que je viens de mettre cet ensemble aujourd'hui donc, au moment de cette rédaction, c'est loin d'être complète, mais vous pouvez consulter ma bio si vous le souhaitez sur la page d'accueil.
Espérons que cette aide!
ressource
fichier ? où dois-je le mettre ? merciIl y a une manière plus propre de faire cela en utilisant un liquide de type "contient" propriété
sur _config.yml ajouter votre index de catégories
sur votre page.md à l'intérieur de l'avant, question d'ajouter un ou plusieurs des catégories disponibles dans la _config.yml
sur votre modèle pour obtenir toutes les pages dans la catégorie fruits que vous faites:
Vous devez différencier les pages et les messages (articles). Liste de tous les messages triés par catégorie n'est pas un problème du tout. Vous pouvez faire une boucle à travers le site.catégories, il contient le nom de la catégorie et une liste de tous les postes dans cette catégorie.
Liste de toutes les pages est possible, aussi, vous pouvez faire une boucle à travers le site.des pages. Mais une page n'appartenant pas à une catégorie spécifique (uniquement les messages).
Quand je prends un coup d'oeil à votre posté exemple, à l'aide de catégories sur les postes, puis de la boucle à travers le site.catégories semble être la voie à suivre. Il va vous obtenir exactement le résultat souhaité.
show_drafts: true
dans votre _config.yml 😉Il y a quelques variations/simplifications possibles (réponse du felipesk). Peut-être due à l'amélioration de Jekyll.
Il est AUCUN indice nécessaires dans
_config.yml
.Si la liste des pages sont ne figurent pas sur la page mais par exemple dans un doc, vous pouvez ajouter de la catégorie aussi de la doc:
Et ensuite l'utiliser comme ceci:
Avec les postes cela peut même être plus courte:
Pourquoi cela ne fonctionne que pour les postes, je ne pouvais pas comprendre encore.
Le point intéressant est que cet extrait peut être utilisé partout (si vous mélangez docs/articles/pages)!
Donc, il suffit de l'ajouter comme un
_includes
et de l'utiliser comme:Je travaille avec le thème Minimes Erreurs