สร้างฟังก์ชัน filter ใน Eleventy (11ty)

#11ty20 ต.ค. 2567

สร้างฟังก์ชัน filter ใน Eleventy (11ty)

เรามาดูวิธีการสร้างฟังก์ชัน หรือ filter ใน Eleventy (11ty) กันครับ โดยเราจะสร้างฟังก์ชันโดยใช้ addNunjucksFilter ใน eleventyConfig คับ ไปดูตัวอย่างโค้ดกัน

export default async function (eleventyConfig) {

    eleventyConfig.addNunjucksFilter("stringify", function (value) {
        return JSON.stringify(value, null, 2);
    });

    eleventyConfig.addNunjucksFilter("sortById", (value) => {
        return value.sort((a, b) => a.id - b.id)
    })

};

จากโค้ด เราได้สร้างฟังก์ชัน stringify กับ sortById โดย

  • stringify จะเป็นฟังก์ชันที่จะ return JSON.stringify ออกไป
  • sortById จะทำการ sort ข้อมูล โดยใช้ฟิลล์ id คับ

เมื่อตอนสร้างเราจะทำการ addNunjucksFilter เพื่อเพิ่มเข้าไปในส่วน filter คับ

ต่อไปเราไปดูวิธีการใช้งานกันบ้าง ตัวอย่างตามโค้ดด้านล่าง

{% set data_reverse = data_ex | sortById %}

จากโค้ดเราก็ใช้ | sortById เพื่อ sort ข้อมูลใน data_ex