Существует два метода обработки файлов или строк для рендеринга: асинхронный hexo.render.render и синхронный hexo.render.renderSync. Unsurprisingly, the two methods are very similar so only the asynchronous hexo.render.render will be further discussed in the below paragraphs.
Обработка строки
При рендеринге строки 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 |
Disable Nunjucks tags
If you are not using a tag plugin and want to use {{ }} or {% %} in your post without using content escaping, you can disable processing of Nunjucks tag in existing renderer by:
// following example only applies to '.md' file extension |