Boxは、指定されたフォルダ内のファイルを処理するために使用されるコンテナです。Hexoは、hexo.sourceとhexo.themeという2つの異なるBoxを使用します。前者はsourceフォルダを処理するために使用され、後者はthemeフォルダを処理するために使用されます。
ファイルの読み込み
Boxは、ファイルを読み込むための2つのメソッドを提供します。processとwatchです。processは、フォルダ内のすべてのファイルを読み込みます。watchも同様ですが、ファイル変更の監視も開始します。
box.process().then(function () { |
パスのマッチング
Boxは、パスのマッチングに多くの方法を提供します。正規表現、関数、またはExpressスタイルのパターン文字列を使用できます。例えば
posts/:id => posts/89 |
詳細については、util.Patternを参照してください。
プロセッサ
プロセッサはBoxの重要な要素であり、ファイルを処理するために使用されます。上記のようにパスのマッチングを使用して、プロセッサが正確に何を処理するかを制限できます。addProcessorメソッドで新しいプロセッサを登録します。
box.addProcessor("posts/:id", function (file) { |
Boxは、マッチしたファイルの内容をプロセッサに渡します。この情報は、コールバックのfile引数から直接読み取ることができます。
| 属性 | 説明 |
|---|---|
source |
ファイルのフルパス |
path |
ファイルへのBoxの相対パス |
type |
ファイルの種類。値はcreate、update、skip、deleteのいずれかになります。 |
params |
パスのマッチングからの情報。 |
Boxは、ファイルIOを自分で行う必要がないように、いくつかのメソッドも提供しています。
| メソッド | 説明 |
|---|---|
read |
ファイルを読み込む |
readSync |
ファイルを同期的に読み込む |
stat |
ファイルのステータスを読み取る |
statSync |
ファイルのステータスを同期的に読み取る |
render |
ファイルをレンダリングする |
renderSync |
ファイルを同期的にレンダリングする |