盒子是一个用于处理指定文件夹中文件的容器。Hexo 使用两种不同的盒子:hexo.source 和 hexo.theme。前者用于处理 source 文件夹,后者用于处理 theme 文件夹。
加载文件
盒子提供两种加载文件的方法:process 和 watch。process 加载文件夹中的所有文件。watch 也执行相同的操作,但也会开始监视文件更改。
| box.process().then(function () { | 
路径匹配
盒子提供多种路径匹配方式。您可以使用正则表达式、函数或 Express 风格的模式字符串。例如
| posts/:id => posts/89 | 
更多信息请参见 util.Pattern。
处理器
处理器是 Box 的一个重要组成部分,用于处理文件。您可以使用上面描述的路径匹配来限制处理器应该处理的内容。使用 addProcessor 方法注册新的处理器。
| box.addProcessor("posts/:id", function (file) { | 
盒子将匹配文件的內容傳遞給处理器。然后,您可以直接从回调中的 file 参数中读取这些信息
| 属性 | 描述 | 
|---|---|
| source | 文件的完整路径 | 
| path | 相对于盒子文件的相对路径 | 
| type | 文件类型。该值可以是 create、update、skip、delete。 | 
| params | 路径匹配的信息。 | 
盒子还提供了一些方法,因此您不必自己进行文件 IO。
| 方法 | 描述 | 
|---|---|
| read | 读取文件 | 
| readSync | 同步读取文件 | 
| stat | 读取文件的状态 | 
| statSync | 同步读取文件的状态 | 
| render | 渲染文件 | 
| renderSync | 同步渲染文件 |