Jekyll ne génère pas de pages dans les sous-dossiers
j'utilise des Pages GitHub et j'ai créé des pages dans un sous-dossier. Il ne semble pas générer les pages que j'ai créé dans le sous-dossier. Toutes les autres pages fonctionnent bien. La structure de répertoire est comme ceci:
/
/index.html
/_config.yaml
/_includes
/_layouts
/_posts
/tag
/tag/personal.html
/tag/videos.html
Les pages à l'intérieur de l' /tag
les répertoires ne sont pas générés par Jekyll. En outre, GitHub envoie généralement un e-mail si Jekyll build échoue, mais ne l'a pas fait, dans ce cas. En outre, si je fais d'autres changements, il fonctionne, de sorte que la construction ne semble pas échouer.
/tag/personal.html
est ici:
---
layout: default
title: Tag-personal
permalink: /tag/personal/index.html
tagspec: personal
---
<div id="tagpage">
<h1>Posts tagged personal</h1>
{% include tags.html %}
</div>
et /_includes/tags.html
c'est ici:
{% for tag in post.tags %}
{% if tag == page.tagspec %}
{% assign ispostviable = true %}
{% endif %}
{% endfor %}
<ul class="posts">
{% for post in site.posts %}
{% if ispostviable == true %}
<li><a href="{{ post.url }}"></li>
{% endif %}
{% endfor %}
</ul>
PS: j'utilise des Pages Github et je n'ai pas accès à une instance Jekyll sur ma machine de développement (Windows).
2 réponses
j'ai trouvé le coupable. C'était dans Jekyll v1.0, permalinks absolus pour les pages dans les sous-répertoires ont été introduits. Jusqu'à v1.1, c'est de l'opt-in. En commençant par v1.1, cependant, absolue permaliens est devenu opt-out, sens Jekyll utilise par défaut absolu de permaliens au lieu de par rapport permaliens.
Les pages ont été produites à /tag/tag/personal.html
et ainsi de suite.
Il y avait deux solutions:
- Spécifier
relative_permalinks: false
_config.yaml
- marque permalinks relatifs au sous-répertoire.
j'ai choisi la première option.
Joshua Powell a fourni étape-par-étape directions en réponse à une question similaire sur Github.
Modifier
_config.yml
pour ajouter la ligne suivante (ou développez le tableau, s'il en existe)include: ['_pages']
où
_pages
est le nom du dossier dans lequel vous souhaitez conserver vos fichiers. (Cela fonctionne aussi pour les dossiers imbriqués si vous ajoutez explicitement, par exemple,['_pages', '_pages/foo']
.)déplacez vos pages dans ce dossier. (Ces pages peuvent être HTML, Markdown, ou tout ce que Jekyll rend quand il est placé dans le dossier racine.)
leur donner la matière première avec un permalink approprié incluant une barre oblique de queue, par exemple,
permalink: "/about/"
.