盒子

盒子是一个用于处理指定文件夹中文件的容器。Hexo 使用两种不同的盒子:hexo.sourcehexo.theme。前者用于处理 source 文件夹,后者用于处理 theme 文件夹。

加载文件

盒子提供两种加载文件的方法:processwatchprocess 加载文件夹中的所有文件。watch 也执行相同的操作,但也会开始监视文件更改。

box.process().then(function () {
// ...
});

box.watch().then(function () {
// You can call box.unwatch() later to stop watching.
});

路径匹配

盒子提供多种路径匹配方式。您可以使用正则表达式、函数或 Express 风格的模式字符串。例如

posts/:id => posts/89
posts/*path => posts/2015/title

更多信息请参见 util.Pattern

处理器

处理器是 Box 的一个重要组成部分,用于处理文件。您可以使用上面描述的路径匹配来限制处理器应该处理的内容。使用 addProcessor 方法注册新的处理器。

box.addProcessor("posts/:id", function (file) {
//
});

盒子将匹配文件的內容傳遞給处理器。然后,您可以直接从回调中的 file 参数中读取这些信息

属性 描述
source 文件的完整路径
path 相对于盒子文件的相对路径
type 文件类型。该值可以是 createupdateskipdelete
params 路径匹配的信息。

盒子还提供了一些方法,因此您不必自己进行文件 IO。

方法 描述
read 读取文件
readSync 同步读取文件
stat 读取文件的状态
statSync 同步读取文件的状态
render 渲染文件
renderSync 同步渲染文件