Box é um container usado para processar arquivos em um diretório específico. O Hexo usa dois Boxes diferentes: hexo.source
ehexo.theme
. O primeiro é usado para processar o diretório source
e o segundo para processar o diretório theme
.
Carregar Arquivos
O Box fornece dois métodos para carregar arquivos: process
ewatch
. process
carrega todos os arquivos no diretório. watch
faz o mesmo, mas também começa a assistir as mudanças nos arquivos.
box.process().then(function(){ |
Correspondência Caminho (Path Matching)
O Box fornece muitas maneiras para a correspondência de caminho. Você pode usar uma expressão regular, uma função ou uma string no padrão Express-style. Por exemplo:
posts/:id => posts/89 |
Veja util.Pattern para mais informações.
Processors
Um processor
é um elemento essencial do Box e é usado para processar arquivos. Você pode usar o path matching conforme descrito acima para restringir o que exatamente o processor
deve processar. Registre um novo processor
com o método addProcessor
.
box.addProcessor('posts/:id', function(file){ |
O Box passa o conteúdo dos arquivos correspondentes aos processadores. Esta informação pode então ser lida diretamente do argumento file
no retorno do callback:
Atributo | Descrição |
---|---|
source |
Caminho completo do arquivo. |
path |
Caminho relativo para o Box do arquivo. |
type |
Tipo de arquivo. O valor pode ser create , update , skip ou delete . |
params |
A informação do caminho correspondente. |
O Box também fornece alguns métodos para que você não precise fazer o IO (entrada e saída) de arquivo por conta própria.
Método | Descrição |
---|---|
read |
Ler um arquivo. |
readSync |
Ler um arquivo de forma síncrona. |
stat |
Ler o status de um arquivo. |
statSync |
Ler o status de um arquivo de forma síncrona. |
render |
Renderizar um arquivo. |
renderSync |
Renderizar um arquivo de forma síncrona. |