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). Uma prioridade mais baixa significa que o filtro será executado primeiro. A prioridade padrão é 10.
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); |
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){ |