Box is a container used for processing files in a specified folder. Hexo uses two different boxes: hexo.source and hexo.theme. The former is used to process the source folder and the latter to process the theme folder.
Load Files
Box provides two methods for loading files: process and watch. process loads all files in the folder. watch does the same, but also starts watching for file changes.
box.process().then(function(){ |
Path Matching
Box provides many ways for path matching. You can use a regular expression, a function or an Express-style pattern string. For example:
posts/:id => posts/89 |
See util.Pattern for more info.
Processors
A processor is an essential element of Box and is used to process files. You can use path matching as described above to restrict what exactly the processor should process. Register a new processor with the addProcessor method.
box.addProcessor('posts/:id', function(file){ |
Box passes the content of matched files to processors. This information can then be read straight from the file argument in the 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 also provides some methods so you don’t have to do file IO by yourself.
| 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 |