Рендеринг

  • 2018-12-03

Существует два метода обработки файлов или строк для рендеринга: асинхронный hexo.render.render и синхронный hexo.render.renderSync. Нет ничего удивительного в похожести этих методов. Ниже описываются только асинхронные методы.

Обработка строки

При рендеринге строки Hexo необходимо указать каким обработчиком (engine) её обрабатывать.

1
2
3
hexo.render.render({text: 'example', engine: 'swig'}).then(function(result){
// ...
});

Обработка файла

При обработке файла, не нужно указывать engine, потому что Hexo сам обнаружит соответствующий рендер автоматически в зависимости от расширения файла. Конечно, возможно и явно задать обработчик.

1
2
3
hexo.render.render({path: 'path/to/file.swig'}).then(function(result){
// ...
});

Опции обработчика

Можно задать опции в качестве второго аргумента.

1
2
3
hexo.render.render({text: ''}, {foo: 'foo'}).then(function(result){
// ...
});

Фильтр after_render

При окончании обработки Hexo выполнит соответствующие фильтры, заданные в переменной after_render. Например эта функция запустит минификацию JavaScript’а.

1
2
3
4
5
6
var UglifyJS = require('uglify-js');

hexo.extend.filter.register('after_render:js', function(str, data){
var result = UglifyJS.minify(str);
return result.code;
});

Проверка существует ли обработчик для типа файла

Можно использовать метод isRenderable или isRenderableSync для проверки зарегистрирован ли обработчик для типа файла. Только когда соответствующий обработчик был зарегистрирован будет возвращёно true.

1
2
hexo.render.isRenderable('layout.swig') // true
hexo.render.isRenderable('image.png') // false

Определение расширения на выходе

Метод getOutput получает расширение на выходе обработчика. Если передать необрабатываемый файл, то обработчик вернёт пустую строку.

1
2
hexo.render.getOutput('layout.swig') // html
hexo.render.getOutput('image.png') // '''

扫码领红包

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

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

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

原始链接: https://cyc.oy99.com/ru/api/rendering.html

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