Box

  • 2018-12-03

「Box」是 Hexo 用来处理特定文件夹中的文件的容器,在 Hexo 中有两个 Box,分别是 hexo.sourcehexo.theme,前者用于处理 source 文件夹,而后者用于处理主题文件夹。

载入文件

Box 提供了两种方法来载入文件:process, watch,前者用于载入文件夹内的所有文件;而后者除了执行 process 以外,还会继续监视文件变动。

1
2
3
4
5
6
7
box.process().then(function(){
// ...
});

box.watch().then(function(){
// 之后可调用 box.unwatch(),停止监视文件
});

比对路径

Box 提供了多种比对路径的模式,您可以以使用正则表达式(regular expression)、函数、或是一种类似于 Express 的路径字符串,例如:

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

您可以以参考 util.Pattern 以获得更多信息。

处理器(Processor)

处理器(Processor)是 Box 中非常重要的元素,它用于处理文件,您可以使用上述的路径对比来限制该处理器所要处理的文件类型。使用 addProcessor 来添加处理器。

1
2
3
box.addProcessor('posts/:id', function(file){
//
});

Box 在处理时会把目前处理的文件内容(file)传给处理器,您可以通过此参数获得该文件的数据。

属性 描述
source 文件完整路径
path 文件相对于 Box 的路径
type 文件类型。有 create, update, skip, delete
params 从路径对比中取得的信息

Box 还提供了一些方法,让您无须手动处理文件 I/O。

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

扫码领红包

2018双11超级红包
PC访问链接: 2018双11超级红包 预售开启 汇聚全球潮流新品

淘口令:¥20Y0b6q4eHR¥ (复制此行再打开手机淘宝客访问)

最后更新: 2018年12月03日 09:29

原始链接: https://cyc.oy99.com/zh-cn/api/box.html

× 多少都行~
打赏二维码
×
  • {title}