web-dev-qa-db-fra.com

Comment rendre une page de démarque Jekyll sur l'index des sites

Je manque probablement quelque chose de simple mais je n'ai aucun moyen de tester Jekyll localement.

J'utilise des pages GitHub pour rendre Jekyll, pour commencer, je veux seulement rendre le contenu de démarque sur la principale index.html à partir d'une page de démarque.

La structure est:

Index.html

---
layout: default
---

_ dispositions
- default.html

//html stuff..
<section>

{{page.content}}

</section>

Dans le dossier racine, j'ai une page appelée content.md que je souhaite rendre pour {{page.content}} la mise en page s'affiche mais la section des étiquettes de liquide est vide.

Comment puis-je rendre content.md?

Exemple: https://github.com/wycks/wordpress-gears-jekyll

36
Wyck

Il se passe quelques choses ici.

  1. Dans ton _layouts/default.html fichier (et l'un des autres _layouts fichiers de répertoires d'ailleurs), au lieu de:

    {{ page.content }}
    

    vous devez utiliser:

    {{ content }}
    
  2. Jekyll vous permet uniquement d'inclure des fichiers d'un niveau racine du site _includes répertoire. Vous devez donc déplacer votre content.md de la racine vers ce répertoire (en le faisant s'il n'existe pas déjà).

  3. Enfin, vous devez réellement appeler le fichier include à partir de votre fichier index.html. Cela peut être fait en modifiant le contenu de votre fichier index.html en:

    ---
    layout: default
    ---
    
    {% include content.md %}
    

Cela configurera le comportement que vous recherchez.


Je voudrais souligner deux autres choses:

  1. Vous constaterez peut-être que la modification de l'extension de votre fichier d'index de .html à .md fonctionne mieux. Remarque importante: vous devez utiliser .html si vous voulez la pagination. Selon la documentation de pagination Jekyll , cette fonctionnalité ne fonctionne que lorsque le fichier est nommé index.html.

  2. Si tout ce que vous faites dans votre fichier d'index appelle un include qui ne réside que sur cette page, vous pourriez tout aussi bien mettre simplement le contenu directement dans le fichier d'index.

39
Alan W. Smith

include vous permet uniquement d'inclure des fichiers directement sous _includes/. Il y a aussi include_relative qui vous permet d'utiliser des chemins et d'inclure d'autres endroits. L'inclusion doit cependant être relative au fichier donné:

{% include_relative somedir/footer.html %}

Il y a un problème avec l'une ou l'autre méthode d'inclusion que je ne peux pas résoudre: si le fichier que vous incluez a un contenu, Jekyll ne le supprimera pas. Vous ne pouvez donc pas utiliser la matière première pour stocker des métadonnées spécifiques, comme par exemple "titre". Bien sûr, vous pouvez utiliser des variables - {% assign title = "My Title" %} mais ce n'est pas équivalent, parce que si vous voulez que la chose que vous incluez fasse partie d'une collection ou soit rendue indépendamment, vous devez avoir un premier plan.

1
spinkus