filter ใช้มาเป็นการแก้ไขข้อมูลเฉพาะ hexo ส่งข้อมูลเข้า filter ตามลำดับและ filter จะแก้ไขข้อมูลตามลำดับ ความคิดนี้มาจาก WordPress
Synopsis
hexo.extend.filter.register(type, function(){ |
ผู้ใช้สามารถตั้งค่า priority
ได้ ค่าของ priority
ยิ่งต่ำหมายถึงว่าจะ execute ยิ่งก่อนตัวอื่น ส่วนค่า default ของ priority
คือ 10.
Execute Filters
hexo.extend.filter.exec(type, data, options); |
Option | Description |
---|---|
context |
Context |
args |
Arguments. This must be an array. |
argument ตัวแรกคือ data
การแก้ไขค่าของdata
จะเป็นการส่ง data
เข้า filter และส่งค่าใหม่กลับมา ถ้าไม่มีข้อมูลส่งกลับมา ค่าของ data
จะคงอยู่เหมือนเดิม ผู้ใช้สามารถใช้ args
มาชี้ถึง argument อื่นๆใน filter ยกตัวอย่างเช่น:
hexo.extend.filter.register('test', function(data, arg1, arg2){ |
ผู้ใช้สามารถใช้วิธีต่อไปเพื่อ execute filter:
hexo.execFilter(type, data, options); |
Unregister Filters
hexo.extend.filter.unregister(type, filter); |
Filter List
ต่อไปเป็นตารางของ filter ท่ีใช้ใน hexo
before_post_render
execute ก่อนการ render ของโพสต์ สำหรับขั้นตอนของ execution ไปดูท่ี post rendering ได้
ยกตัวอย่างเช่น การเปลี่ยนตัวอักษรเป็นตัวเล็ก:
hexo.extend.filter.register('before_post_render', function(data){ |
after_post_render
execute หลังการ render ของโพสต์ สำหรับขั้นตอนของ execution ไปดูท่ี post rendering ได้
ยกตัวอย่างเช่น แทน @username
ด้วยลิงค์ท่ีชึ้ไปถึงโปรไฟล์ของ Twitter
hexo.extend.filter.register('after_post_render', function(data){ |
before_exit
execute ก่อนการท่ีจะจบการใช้โปรแกรม hexo – รันหลังการเรียก hexo.exit
hexo.extend.filter.register('before_exit', function(){ |
before_generate
execute ก่อนการเริ่มต้นของ generation
hexo.extend.filter.register('before_generate', function(){ |
after_generate
execute หลังการเสร็จสิ้นของ generation
hexo.extend.filter.register('after_generate', function(){ |
template_locals
แก้ไข local variables ใน template
ยกตัวอย่างเช่น เพิ่มเวลาปัจจุบันไปถึง local variable ของ template
hexo.extend.filter.register('template_locals', function(locals){ |
after_init
execute หลัง initialization ของ hexo – รันหลังการเสร็จสิ้นของ hexo.init
hexo.extend.filter.register('after_init', function(){ |
new_post_path
execute เพิ่อให้ path แก่โพสต์ใหม่เมื่อการสร้่างโพสต์ใหม่มา
hexo.extend.filter.register('new_post_path', function(data, replace){ |
post_permalink
ใช้มาเพื่อสร้างลิงค์ถาวรของโพสต์
hexo.extend.filter.register('post_permalink', function(data){ |
after_render
execute หลังการเสร็จสิ้นของ rendering สำหรับข้อมูลเพิ่มเติม ไปดูได้ที่ rendering
after_clean
execute หลัง generation ของไฟล์ และ cache จะลบออกด้วยคำสั่ง hexo clean
hexo.extend.filter.register('after_clean', function(){ |
server_middleware
เพิ่ม middleware ไปถึง server app
เป็น instance ของ Connect
ยกตัวอย่างเช่น เพิ่ม X-Powered-By: Hexo
ไปให้ response header:
hexo.extend.filter.register('server_middleware', function(app){ |