Box 是一個容器,用於處理指定資料夾中的檔案。Hexo 使用兩種不同的 Box:hexo.source
和 hexo.theme
。前者用於處理 source
資料夾,後者用於處理 theme
資料夾。
載入檔案
Box 提供了兩種載入檔案的方法: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 也提供了一些方法,因此您不必自己進行檔案 I/O。
方法 | 描述 |
---|---|
read |
讀取檔案 |
readSync |
同步讀取檔案 |
stat |
讀取檔案狀態 |
statSync |
同步讀取檔案狀態 |
render |
渲染檔案 |
renderSync |
同步渲染檔案 |