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"); |