Um generator constrói rotas a partir de arquivos processados.
Resumo
hexo.extend.generator.register(name, function(locals){ |
Um argumento locals será passado para dentro da função, contendo as variáveis do site. Você deve utilizar esse argumento para obter os dados do site, evitando assim, acessar a base de dados diretamente.
Atualizar Rotas
hexo.extend.generator.register('test', function(locals){ |
| Atributo | Descrição |
|---|---|
path |
Caminho, sem incluir o prefixo /. |
data |
Dados |
layout |
Layout. Especifica os layouts para renderização. O valor pode ser uma string ou um array. Se ignorado, a rota retornará data diretamente. |
Quando os arquivos fonte são atualizados, o Hexo executará todos os geradores e recriará as rotas. Atenção: Retornar os dados em vez de acessar o roteador diretamente!
Exemplo
Páginas de Arquivo
Crie uma página de arquivo em archives/index.html. Iremos passar uma lista com todos as postagens como data para os templates. Assim, data é equivalente à variável page nos templates.
Após isso, defina o atributo layout para renderizar a página com os templates do tema. Nesse exemplo são definidos dois layouts: se o layout de archive não existir, o layout de index será utilizado em seu lugar.
hexo.extend.generator.register('archive', function(locals){ |
Páginas de Arquivo com Paginação
Você pode utilizar uma ótima ferramenta oficial chamada hexo-pagination para criar facilmente uma página de arquivos com paginação.
var pagination = require('hexo-pagination'); |
Gerar Todas as Postagens
Percorra a lista de postagens em locals.posts e crie rotas para cada um.
hexo.extend.generator.register('post', function(locals){ |
Copiar Arquivos
Dessa vez não iremos retornar data explicitamente, mas atribuir uma função para que a rota construa fs.ReadStream apenas quando necessário.
var fs = require('hexo-fs'); |