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 |
ファイルを同期的にレンダリングする |