Box

Boxは、指定されたフォルダ内のファイルを処理するために使用されるコンテナです。Hexoは、hexo.sourcehexo.themeという2つの異なるBoxを使用します。前者はsourceフォルダを処理するために使用され、後者はthemeフォルダを処理するために使用されます。

ファイルの読み込み

Boxは、ファイルを読み込むための2つのメソッドを提供します。processwatchです。processは、フォルダ内のすべてのファイルを読み込みます。watchも同様ですが、ファイル変更の監視も開始します。

box.process().then(function () {
// ...
});

box.watch().then(function () {
// You can call box.unwatch() later to stop watching.
});

パスのマッチング

Boxは、パスのマッチングに多くの方法を提供します。正規表現、関数、またはExpressスタイルのパターン文字列を使用できます。例えば

posts/:id => posts/89
posts/*path => posts/2015/title

詳細については、util.Patternを参照してください。

プロセッサ

プロセッサはBoxの重要な要素であり、ファイルを処理するために使用されます。上記のようにパスのマッチングを使用して、プロセッサが正確に何を処理するかを制限できます。addProcessorメソッドで新しいプロセッサを登録します。

box.addProcessor("posts/:id", function (file) {
//
});

Boxは、マッチしたファイルの内容をプロセッサに渡します。この情報は、コールバックのfile引数から直接読み取ることができます。

属性 説明
source ファイルのフルパス
path ファイルへのBoxの相対パス
type ファイルの種類。値はcreateupdateskipdeleteのいずれかになります。
params パスのマッチングからの情報。

Boxは、ファイルIOを自分で行う必要がないように、いくつかのメソッドも提供しています。

メソッド 説明
read ファイルを読み込む
readSync ファイルを同期的に読み込む
stat ファイルのステータスを読み取る
statSync ファイルのステータスを同期的に読み取る
render ファイルをレンダリングする
renderSync ファイルを同期的にレンダリングする