Existem dois métodos para renderizar arquivos ou strings no Hexo: o método assíncrono hexo.render.render
e o método síncrono hexo.render.renderSync
. Os dois métodos são bastante semelhantes, desta forma, apenas o método hexo.render.render
assíncrono será um pouco mais discutido nos parágrafos abaixo.
Renderizar uma String
Ao renderizar uma string, você deve especificar uma engine
para permitir que o Hexo conheça o mecanismo de renderização que deverá ser usado.
hexo.render.render({text: 'example', engine: 'swig'}).then(function(result){ |
Renderizar um Arquivo
Ao renderizar um arquivo, não é necessário especificar uma engine
porque o Hexo detectará automaticamente o mecanismo de renderização mais apropriado com base na extensão do arquivo. Mas se for a caso, você também pode definir explicitamente a engine
.
hexo.render.render({path: 'path/to/file.swig'}).then(function(result){ |
Opções de Renderização
Você pode passar um conjunto de opções em formato de objeto no segundo argumento.
hexo.render.render({text: ''}, {foo: 'foo'}).then(function(result){ |
Filtros after_render
Quando a renderização estiver completa, o Hexo executará os filtros after_render
correspondentes. Por exemplo, podemos usar este recurso para implementar um minificador para arquivos JavaScript.
var UglifyJS = require('uglify-js'); |
Verificar se um Arquivo é Renderizável
Você pode usar o método isRenderable
ou isRenderableSync
para verificar se um caminho de arquivo é renderizável. O retorno do método será true
apenas se um renderizador correspondente for registrado.
hexo.render.isRenderable('layout.swig') // true |
Obter a Extensão de Saída
Use o método getOutput
para obter a extensão da saída renderizada. Se um arquivo não foi renderizado, o método retornará uma string vazia.
hexo.render.getOutput('layout.swig') // html |