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) {  |