盒子是一个用于处理指定文件夹中文件的容器。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 |
同步渲染文件 |