Я знаю {{page.previous.url}} и {{page.next.url}} доступен для сообщений, но, к сожалению, Я использую структуру страницы для этих страниц проектов в своем блоге.в Jekyll RB & GH Pages, отображающий следующую и предыдущую страницу (не сообщение)
В конце каждого проекта, я хотел бы иметь подвал, который имеет
[ < - Previous Project (if available)] [ Home ] [ Next Project -> (if available) ]
док структуры
root
-- project1/
- /img
- /index.md
-- project2/
- /img
- /index.md
-- project3/
- /img
- /index.md
index.html
Возможно ли это ж/Jekyll без каких-либо плагинов?
Update
Потому что нет «индекса» доступен на текущей странице вы находитесь, я думаю, что я буду иметь Переберите site.pages
, сопоставьте site.page.title с page.title, а затем добавить и вычесть forloop.index для next и previous ссылок.
Является ли это единственным способом или я чрезмерным?
пример кода, что я имею в виду ниже:
{% for entry in site.pages %}
{% if entry.title == page.title %}
index is: {{ forloop.index }} <br />
sites.pages is {{ site.pages[forloop.index].url }} <br />
{% assign prev = forloop.index | minus:1 %}
{% assign next = forloop.index | plus:1 %}
{% assign prevUrl = site.pages[prev].url %}
{% assign nextvUrl = site.pages[next].url %}
{% assign currentURL = site.pages[forloop.index].url %}
previous page is: <em>{{ prevUrl }}</em> <br />
current page is: <em>{{ currentUrl }}</em> <br />
next page is: <em>{{ nextUrl }}</em>
{% endif %}
{% endfor %}
EDIT ответ 2
JoostS был отправной точкой я нуждался. Я пошел вперед и включил свой код, потому что то, что мне нужно, немного отличается от их (в него был включен main.css, а также несколько других страниц, которые не должны были быть включены в Loop). Спасибо за тонну за помощь!
, чтобы построить массив ж/Project-Only Страницы
{% assign sorted_pages2 = site.pages %}
{% assign sorted_pages = "" | split: "" %}
{% for item in sorted_pages2 %}
{% if item.type == "project" %}
{% assign sorted_pages = sorted_pages | push: item %}
{% endif %}
{% endfor %}
{% for item in sorted_pages %}
{% if item.url == page.url %}
{% assign this_i = forloop.index0 %}
{% assign num_of_pages = forloop.length %}
{% assign last_i = forloop.length | minus: 1 %}
{% assign next_i = forloop.index0 | plus: 1 %}
{% assign prev_i = forloop.index0 | minus: 1 %}
{% endif %}
{% endfor %}
Для отображения Следующая и предыдущая УСЛОВНО
<div class="flex f-row project-footer">
<div>
{% if prev_i < 0 %}
<!-- Sorted_Last{{ sorted_pages[last_i].url }} -->
{% else %}
<a href="{{ sorted_pages[prev_i].url }}">
<span>Previous Project</span>
</a>
{% endif %}
</div>
<div>
<a href="/">
<span>Home</span>
</a>
</div>
<div>
{% if num_of_pages > next_i %}
<a href="{{ sorted_pages[next_i].url }}">
<span>Next Project</span>
</a>
{% endif %}
</div>
</div>
Да, вы можете запросить все страницы. См. Jekyll Docs. – JoostS
Вы можете использовать 'site.pages' для этого. – JoostS
Вы можете пропустить их, да, но нет места страницы.индекса для «текущей страницы». Я добавил код, чтобы объяснить, что я думаю, может быть, решение. –