Problème variable avec layout Jekyll

Par ILeG3nDz, il y a 11 ans


Hello les amis,

J'ai construis mes deux templates Jekyll (un qui reprendre blog-detail et l'autre projet-detail). Bref, ce qui me pose problème, c'est que je n'arrive pas à fournir les informations type title, date, category, etc. sur ma page détail une fois compilée.

Voici un petit exemple :

<div class="row columns small-2 large-4">Client :</div>
<div class="columns small-2 large-8"><a href="" target="_blank">{{ post.title }}</a></div>
<div class="row columns small-2 large-4">Date :</div>
<time datetime="2014-08-05" class="columns small-2 large-8">{{ post.date }}</time>
<p>{{ content }}</p> // Une courte description

Le problème est que seul "content" est prit en compte, mon title/date ne s'affichent pas. Je pense qu'il s'agit d'une incompréhension de ma part sur le fonctionnement des templates :(

Auriez-vous une petite idée ?

Merci beaucoup !

7 réponses

maximeshr, il y a 11 ans

Petite question : post est-il une variable instanciée ? Si oui, essaye @post.title et @post.date.

ILeG3nDz, il y a 11 ans

Hello Maxime,

Je viens de faire le test, aucun changement. Heuu, je ne connais pas les variables "instanciée", quel est la différence ?

maximeshr, il y a 11 ans

La variable instanciée "post" est une instance de la classe "Post". C'est un objet en somme ^^'

Pour le reste c'est étrange, ton projet est-il sur un repo git ou disponible autre part que sur ta machine ?
Je vais regarder si ça ne me saute pas aux yeux en lançant Jekyll.

Je te fais un feedback après ;)

maximeshr, il y a 11 ans

Je vais faire un fork et regarder à ça.
Mais le soucis vient du fait que ta variable "post" n'est clairement pas définie.

Si tu souhaites afficher tous les post. Utilise un {% for post in posts %}.

maximeshr, il y a 11 ans

Pull request effectuée sur Github.

Tu dois utiliser la variable "page" et ajouter les éléments que tu souhaites ajouter dans ton fichier .md comme par exemple :


layout: portfolio-detail
title: Premier portfolio
date: 2014-07-04 18:15:31
category: portfolio
img: img-portfolio
client: maximeshr
client_age: 25


et dans ton layout par exemple :

<p class="client __info"><span class="client__ name">{{ page.client }}</span> <span class="client__age">({{ page.client_age }})</span></p>

_____________________________

Vraiment sympa comme design :-)
Bien à toi et bonne continuation,

Maxime

ILeG3nDz, il y a 11 ans

Salut Maxime,

C'est parfait ! Un grand merci à toi pour ton aide et le temps passer, je retiens mon erreur avec "page" à la place de "post" :)

Merci pour le design :) !