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