简单写了下 handlebars 带目录层级的 partials 注册,可以写成
{{> a/b }} {{! 相当于 partials/a/b.hbs }}
因为用了 with 块,没有给定数据导致整个 partial 没有展开,把我坑了很久
with
好难 ,另外 koa 的 app.use 是什么设计,卡我很久,还是不懂
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 = [] } }
每个人都有属于自己的一片森林,也许我们从来不曾走过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢。愿这里,成为属于你的小森林。
好难
,另外 koa 的
app.use是什么设计,卡我很久,还是不懂