Um filter
(filtro) pode ser utilizado para modificar alguns dados. O Hexo passa os dados para filtros em sequência e os filtros, então, modificam esses dados um após o outro. Este é o mesmo conceito utilizado pelo WordPress.
Resumo
hexo.extend.filter.register(type, function() { |
Você pode definir uma prioridade específica para cada filtro (parâmetro priority
no exemplo acima). Lower priority
means that it will be executed first. A prioridade padrão é 10. We recommend using user-configurable priority value that user can specify in the config, e.g. hexo.config.your_plugin.priority
.
Executar Filtros
hexo.extend.filter.exec(type, data, options); |
Opção | Descrição |
---|---|
context |
Contexto |
args |
Argumentos. Deve ser um array. |
O primeiro argumento passado para cada filtro é data
. O próximo filtro da sequência pode receber o argumento data
modificado ao se retornar um novo valor. Se nada for retornado, data
continua intacto. Você ainda pode utilizar args
para especificar outros argumentos dentro dos filtros. Por exemplo:
hexo.extend.filter.register("test", function (data, arg1, arg2) { |
Você também pode utilizar os seguintes métodos para executar filtros:
hexo.execFilter(type, data, options); |
Remover Filtros
hexo.extend.filter.unregister(type, filter); |
Example
// Unregister a filter which is registered with named function |
// Unregister a filter which is registered with commonjs module |
Lista de Filtros
Abaixo são listados os filtros utilizados pelo Hexo.
before_post_render
Executado antes de uma postagem ser renderizada. Verificar a seção Renderizar para saber mais sobre as etapas de execução.
Por exemplo, para se transformar um título em caixa baixa:
hexo.extend.filter.register("before_post_render", function (data) { |
after_post_render
Executado após a postagem ser renderizado. Verificar a seção Renderizar para saber mais sobre as etapas de execução.
Por exemplo, para substituir @username
por um link para o perfil do Twitter:
hexo.extend.filter.register("after_post_render", function (data) { |
before_exit
Executado quando o Hexo está prestes a ser terminado – isso será executado logo após hexo.exit
ser chamado.
hexo.extend.filter.register("before_exit", function () { |
before_generate
Executado antes do processo de geração ser iniciado.
hexo.extend.filter.register("before_generate", function () { |
after_generate
Executado após o processo de geração ser concluído.
hexo.extend.filter.register("after_generate", function () { |
template_locals
Modifica as variáveis locais nos templates.
Por exemplo, para adicionar a hora atual às variáveis locais dos templates:
hexo.extend.filter.register("template_locals", function (locals) { |
after_init
Executado após a inicialização do Hexo – este será executado logo após hexo.init
ser concluído.
hexo.extend.filter.register("after_init", function () { |
new_post_path
Executado ao criar uma postagem para determinar o caminho das novas postagens.
hexo.extend.filter.register("new_post_path", function (data, replace) { |
post_permalink
Usado para determinar os links permanentes das postagens.
hexo.extend.filter.register("post_permalink", function (data) { |
after_render
Executado após a renderização ser terminada. Mais informações podem ser encontradas na seção de renderização.
after_clean
Executados após os arquivos serem gerados e o cache ser removido com o comando hexo clean
.
hexo.extend.filter.register("after_clean", function () { |
server_middleware
Adiciona um middleware ao servidor. app
é uma instância de Connect.
Por exemplo, para adicionar X-Powered-By: Hexo
ao cabeçalho de resposta:
hexo.extend.filter.register("server_middleware", function (app) { |