Jekyllに用意されているページネーション機能を利用する
ページネーション
Jekyllのコンフィグ(_config.yml)にページネーション時のアイテム数を設定する
paginate: 5
トップページに設定する
<article class="top-content">
<ul class="posts">
{% raw %}{% for post in paginator.posts %}{% endraw %}
<li>
<a class="post-title" href="{% raw %}{{ post.url | prepend: site.baseurl }}{% endraw %}">
{% raw %}{{ post.title }}{% endraw %}
</a>
<p class="post-excerpt">
{% raw %}{{ post.excerpt }}{% endraw %}
</p>
</li>
{% raw %}{% endfor %}{% endraw %}
</ul>
{% raw %}{% if paginator.total_pages > 1 %}{% endraw %}
<div class="pagenation">
{% raw %}{% if paginator.previous_page %}{% endraw %}
<a href="{% raw %}{{ paginator.previous_page_path | prepend: site.baseurl | replace: '//', '/' }}{% endraw %}">« Prev</a>
{% raw %}{% else %}{% endraw %}
<span>« Prev</span>
{% raw %}{% endif %}{% endraw %}
{% raw %}{% for page in (1..paginator.total_pages) %}{% endraw %}
{% raw %}{% if page == paginator.page %}{% endraw %}
<em>{% raw %}{{ page }}{% endraw %}</em>
{% raw %}{% elsif page == 1 %}{% endraw %}
<a href="{% raw %}{{ '/index.html' | prepend: site.baseurl | replace: '//', '/' }}{% endraw %}">{% raw %}{{ page }}{% endraw %}</a>
{% raw %}{% else %}{% endraw %}
<a href="{% raw %}{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: ':num', page }}{% endraw %}">{% raw %}{{ page }}{% endraw %}</a>
{% raw %}{% endif %}{% endraw %}
{% raw %}{% endfor %}{% endraw %}
{% raw %}{% if paginator.next_page %}{% endraw %}
<a href="{% raw %}{{ paginator.next_page_path | prepend: site.baseurl | replace: '//', '/' }}{% endraw %}">Next »</a>
{% raw %}{% else %}{% endraw %}
<span>Next »</span>
{% raw %}{% endif %}{% endraw %}
</div>
{% raw %}{% endif %}{% endraw %}
</article>