A filter is used to modify some specified data. filter ใช้มาเป็นการแก้ไขข้อมูลเฉพาะ hexo ส่งข้อมูลเข้า filter ตามลำดับและ filter จะแก้ไขข้อมูลตามลำดับ ความคิดนี้มาจาก WordPress This concept was borrowed from WordPress.
Synopsis
hexo.extend.filter.register(type, function() { |
You can define the priority
. ผู้ใช้สามารถตั้งค่า priority
ได้ ค่าของ priority
ยิ่งต่ำหมายถึงว่าจะ execute ยิ่งก่อนตัวอื่น ส่วนค่า default ของ priority
คือ 10. The default priority
is 10. We recommend using user-configurable priority value that user can specify in the config, e.g. hexo.config.your_plugin.priority
.
Execute Filters
hexo.extend.filter.exec(type, data, options); |
Option | Description |
---|---|
context |
Context |
args |
Arguments. This must be an array. |
The first argument passed into each filter is data
. argument ตัวแรกคือ data
การแก้ไขค่าของdata
จะเป็นการส่ง data
เข้า filter และส่งค่าใหม่กลับมา ถ้าไม่มีข้อมูลส่งกลับมา ค่าของ data
จะคงอยู่เหมือนเดิม ผู้ใช้สามารถใช้ args
มาชี้ถึง argument อื่นๆใน filter ยกตัวอย่างเช่น: If nothing is returned, the data remains unmodified. You can even use args
to specify other arguments in filters. For example:
hexo.extend.filter.register("test", function (data, arg1, arg2) { |
ผู้ใช้สามารถใช้วิธีต่อไปเพื่อ execute filter:
hexo.execFilter(type, data, options); |
Unregister Filters
hexo.extend.filter.unregister(type, filter); |
Example
// Unregister a filter which is registered with named function |
// Unregister a filter which is registered with commonjs module |
Filter List
ต่อไปเป็นตารางของ filter ท่ีใช้ใน hexo
before_post_render
Executed before a post is rendered. Refer to post rendering to learn the execution steps.
ยกตัวอย่างเช่น การเปลี่ยนตัวอักษรเป็นตัวเล็ก:
hexo.extend.filter.register("before_post_render", function (data) { |
after_post_render
Executed after a post is rendered. 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
Used to determine the permalink of posts.
hexo.extend.filter.register("post_permalink", function (data) { |
after_render
Executed after rendering finishes. execute หลังการเสร็จสิ้นของ rendering สำหรับข้อมูลเพิ่มเติม ไปดูได้ที่ rendering
after_clean
execute หลัง generation ของไฟล์ และ cache จะลบออกด้วยคำสั่ง hexo clean
hexo.extend.filter.register("after_clean", function () { |
server_middleware
Add middleware to the server. เพิ่ม middleware ไปถึง server app
เป็น instance ของ Connect
ยกตัวอย่างเช่น เพิ่ม X-Powered-By: Hexo
ไปให้ response header:
hexo.extend.filter.register("server_middleware", function (app) { |