Jekyll не создает страницы в подпапках
Я использую страницы GitHub и создаю несколько страниц в подпапке. Кажется, это не создание страниц, которые я создал в подпапке. Все остальные страницы работают нормально. Структура каталогов выглядит так:
/
/index.html
/_config.yaml
/_includes
/_layouts
/_posts
/tag
/tag/personal.html
/tag/videos.html
Страницы внутри каталога /tag
не генерируются Jekyll. Кроме того, обычно GitHub отправляет электронное письмо, если Jekyll build не удается, но в этом случае этого не произошло. Кроме того, если я выполняю какие-либо другие изменения, это работает, поэтому сборка, по-видимому, не прерывается.
/tag/personal.html
находится здесь:
---
layout: default
title: Tag-personal
permalink: /tag/personal/index.html
tagspec: personal
---
<div id="tagpage">
<h1>Posts tagged personal</h1>
{% include tags.html %}
</div>
и /_includes/tags.html
:
{% 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: Я использую страницы GitHub и не имею доступа к экземпляру Jekyll на моей машине разработки (Windows).
Ответы
Ответ 1
Я нашел преступника. Это было то, что в Jekyll v1.0 были введены абсолютные постоянные ссылки для страниц в подкаталогах. До версии v.1.1 он не участвует. Однако начиная с v1.1 абсолютные постоянные ссылки стали откатом, что означает, что Jekyll по умолчанию использует абсолютные постоянные ссылки вместо относительных постоянных ссылок.
Страницы создавались в /tag/tag/personal.html
и т.д.
Было два решения:
- Укажите
relative_permalinks: false
в _config.yaml
- Сделать ссылку на константу относительно подкаталога.
Я выбрал первый вариант.
Ответ 2
Джошуа Пауэлл предоставил пошаговые инструкции в ответ на аналогичный вопрос о Github.
-
Измените _config.yml
, чтобы добавить следующую строку (или развернуть массив, если он существует)
include: ['_pages']
где _pages
- имя папки, в которой вы хотите сохранить свои файлы. (Это также работает для вложенных папок, если вы явно добавляете их, например, ['_pages', '_pages/foo']
.)
-
Переместите ваши страницы в эту папку. (Этими страницами могут быть HTML, Markdown или что-то еще, что Jekyll делает, когда оно помещено в корневую папку.)
-
Дайте им переднюю материю с подходящей постоянной ссылкой, включая конечную косую черту, например permalink: "/about/"
.