ทำ paging ใน Eleventy (11ty)
#11ty20 ต.ค. 2567
ทำ paging ใน Eleventy (11ty)
เรามาดูวิธีการทำ paging ใน 11ty กันครับ โดยเราจะมีไฟล์ json possums.json อยู่ใน path _data/possums.json โดยมีข้อมูลตามนี้
[
{
name: "Fluffy",
age: 2,
},
{
name: "Snugglepants",
age: 5,
},
{
name: "Lord Featherbottom",
age: 4,
},
{
name: "Pennywise",
age: 9,
},
];
จากนั้นเราก็สร้างไฟล์ possum-pages.njk เพื่อทำเป็นไฟล์ paging ตามตัวอย่างโค้ดด้านล่าง
---
pagination:
data: possums
size: 1
alias: possum
permalink: "possums/{{ possum.name | slugify }}/"
---
{{ possum.name }} is {{ possum.age }} years old
จากโค้ด เราจะมี pagination โดยใช้ data จาก possums ซึ่งเป็น json ชื่อ possums.json อยู่ใน _data
ตรงส่วนของ size จะบอกว่า แต่ละ paging จะมี data size เท่าไหร่ จากตัวอย่างเราจะมี data 4 row จากนั้น เรากำหนด size = 1 เท่ากับว่า 11ty จะสร้าง page เท่ากับ 4 page
จากนั้น เราจะกำหนด alias ชื่อ possum
เรากำหนด permalink เวลาจะสร้างแต่ละ page เป็น possums/{{ possum.name | slugify }}/
ตรงชื่อ จะเห็นว่าเรามี slugify โดย slugify เป็นฟังก์ชันที่จะทำการแปลง string เป็น string ที่เป็น url ได้