box เป็น container ที่ใช้มาจัดการไฟล์ภายใน folder เฉพาะ Hexo ใช้ box ที่แตกต่างกันสองตัว ซึ้งก็คือ hexo.source
และ hexo.theme
ตัวแรกใช้มาจัดการ folder source
และตัวท่ีสองใช้มาจัดการ folder theme
Files Loading
box สนับสนุนวิธีการโหลดไฟล์สองวิธี ซึ้งก็คือ process
และ watch
วิธีตัว process
จะโหลดไฟล์ทั้งหมดใน folder ส่วนวิธีตัว watch
นอกจากจะมีการกระทำที่เหมือนวิธีตัว process
แล้วแถมยังเฝ้าดูการเปลี่ยนแปลงของไฟล์ที่อยู่ใน folder นั้นด้วย
box.process().then(function(){ |
Path Matching
box สนับสนุนวิธีหลายอย่างสำหรับ path matching คุณสามารถใช้ regExp function หรือ Express-style pattern string เวลาทำเรื่อง path mathching
posts/:id => posts/89 |
สำหรับข้อมูลเพิ่มเติม สามารถดูได้ที่ util.Pattern
Processors
processor เป็น element จำเป็นสำหรับ box และใช้มาจัดการไฟล์ คุณสามารถใช้ path matching ที่กล่าวข้างบนมาจำกัดขอบแขดไฟล์ที่อยากจัดการจริงๆ คุณลงทะเบียน processor ตัวใหม่ได้ด้วยวิธี addProcessor
box.addProcessor('posts/:id', function(file){ |
box ส่งเนื้อหาของไฟล์ที่ถูกคัดเลือกไปให้ processor ข้อมูลที่เกี่ยวกับปฎิบัติการนี้จะอ่านได้จาก file
ที่เป็น argument ของ callback ได้
Attribute | Description |
---|---|
source |
Full path of the file |
path |
Relative path to the box of the file |
type |
File type. The value can be create , update , skip , delete . |
params |
The information from path matching. |
box ยังสนับสนุนวิธีหลายวิธีที่ให้ความสะดวกว่าคุณไม่ต้องทำ IO ของไฟล์ด้วยตนเอง
Method | Description |
---|---|
read |
Read a file |
readSync |
Read a file synchronously |
stat |
Read the status of a file |
statSync |
Read the status of a file synchronously |
render |
Render a file |
renderSync |
Render a file synchronously |