タイトルが妙に長いけど、11ty(Eleventy)の小ネタです。
静的サイトジェネレーターの11tyを使って、サイトマップやナビゲーション、ページ一覧等を作る際に使う、collections
。
全てのページを出すには、collections.all
を使います。
こんな感じで。
<ul>
{%- for post in collections.all -%}
<li><a href="{{ post.url }}">{{ post.url }}</a></li>
{%- endfor -%}
</ul>
これで全部のページが出るのかな?と思えば、ページ分割したり複数ページを作る際に使うpagination
を使ってると最初の1ページしか出ません。
pagination
のやり方は、front matterに次のように書きます。
---
pagination:
data: entries
size: 1
---
で、まぁこのままじゃ出ないので、どうしたら良いのかなぁと思っていたのですが、addAllPagesToCollections: true
を指定することで分割されたページも全て出るようです。
---
pagination:
data: entries
size: 1
addAllPagesToCollections: true
---
これは、記事一覧を10件とかで分割してる際に、2ページ目以降も一覧に出ると邪魔だから?デフォルトでは出ないようになってるんですかね。
最初なんで出ないのか分かってなかったので、デフォルトで出すようにして出したくないページだけ addAllPagesToCollections: false
を指定する仕様が良かったなぁと思いました。
今回、collections.all
で話してますが、collections.xxx
関係も同じです。
collections
はサイトマップやsitemap.xml、ナビゲーション関係作ったりと色々便利で良いっすね。
そんな感じで小ネタでした。