好难
,另外 koa 的 app.use 是什么设计,卡我很久,还是不懂
registePartial(){
var partials_path = join(this.theme_path, 'partials')
// 当前遍历的目录
var travel_dirs = []
travel_dirs.push(partials_path) // 遍历根目录
// 遇到的新目录
var new_dirs = []
while(travel_dirs.length > 0)
{
travel_dirs.forEach((dir) => {
var files = readdirSync(dir, {encoding: 'utf-8', withFileTypes: true})
files.forEach((file) => {
// 如果是目录则遍历
if (file.isDirectory())
{
new_dirs.push(join(dir, file.name))
return
}
// .hbs
var reresult = /(?<name>.*)\.hbs$/.exec(relative(partials_path, join(dir, file.name)))
if (reresult != null)
{
var registeName = reresult.groups["name"].split(sep).join('/')
console.log(`handlebars registe: ${registeName}`);
// 注册
this.handlebars.registerPartial(
registeName,
readFileSync(join(dir, file.name), {encoding: 'utf-8'})
)
}
})
})
// 下次遍历
travel_dirs = new_dirs
new_dirs = []
}
}