Существует два метода обработки файлов или строк для рендеринга: асинхронный hexo.render.render
и синхронный hexo.render.renderSync
. Нет ничего удивительного в похожести этих методов. Ниже описываются только асинхронные методы.
Обработка строки
При рендеринге строки Hexo необходимо указать, каким обработчиком (engine
) её обрабатывать.
hexo.render.render({text: 'example', engine: 'swig'}).then(function(result){ |
Обработка файла
При обработке файла не нужно указывать engine
, потому что Hexo сам обнаружит соответствующий рендер автоматически в зависимости от расширения файла. Конечно, возможно и явно задать обработчик.
hexo.render.render({path: 'path/to/file.swig'}).then(function(result){ |
Опции обработчика
Можно задать опции в качестве второго аргумента.
hexo.render.render({text: ''}, {foo: 'foo'}).then(function(result){ |
Фильтр after_render
При окончании обработки Hexo выполнит соответствующие фильтры, заданные в переменной after_render
. Например, эта функция запустит минификацию JavaScript’а.
var UglifyJS = require('uglify-js'); |
Проверка, существует ли обработчик для типа файла
Можно использовать метод isRenderable
или isRenderableSync
для проверки, зарегистрирован ли обработчик для типа файла. Только когда соответствующий обработчик был зарегистрирован, будет возвращёно значение true
.
hexo.render.isRenderable('layout.swig') // true |
Определение расширения на выходе
Метод getOutput
получает расширение на выходе обработчика. Если передать необрабатываемый файл, то обработчик вернёт пустую строку.
hexo.render.getOutput('layout.swig') // html |