Box

Модуль представляет собой контейнер, используемый для обработки файлов в указанной папке. Hexo использует два модуля: hexo.source и hexo.theme. Первый используется для обработки папки с исходниками source с последующим применением указанной темы из папки themes.

Обработка файлов (Load Files)

Модули используют два способа загрузки файлов: process и watch. process обрабатывает все файлы в папке по команде. watch обрабатывает файлы при их изменении.

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

box.watch().then(function () {
// Можно вызвать команду box.unwatch() после, чтобы остановить отслеживание файлов.
});

Сопоставление папок (Path Matching)

Модули поддерживают много способов для нахождения обрабатываемых папок. Можно использовать регулярные выражения, функции или строки шаблонов Express-style. Например:

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

Подробная информация (eng): util.Pattern.

Обработчики

Обработчик является важнейшим элементом модуля и служит для преобразования файлов. Можно использовать сопоставление папок, как описано выше, для ограничения обрабатываемых файлов. Новый обработчик добавляется методом addProcessor

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

Модуль передаёт содержимое соответствующих файлов обработчикам. Информацию можно читать прямо из аргумента file в обратный вызов (callback):

Свойство Описание
source Полный путь к файлу
path Относительный путь к файлу модуля
type Тип файла. Возможные значения create, update, skip, delete.
params Информация о сопоставлении путей.

Box also provides some methods so you don’t have to do file IO by yourself.

Метод Описание
read Чтение файла
readSync Синхронное чтение файла
stat Получение статуса файла
statSync Синхронное получение статуса файла
render Обработка файла
renderSync Синхронная обработка файла