ボックスは指定されたフォルダ内のファイルを処理するために使用されるコンテナです。 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 |
同期的にファイルをレンダリングする |