Подтвердить что ты не робот

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).

4b9b3361

Ответ 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/".