告诉GULP对不同的域路径使用不同的布局文件

hi3rlvi2  于 2022-12-08  发布在  Gulp
关注(0)|答案(1)|浏览(150)

在我的node.js服务器上使用此代码

// Copy page templates into finished HTML files
function pages() {
  return gulp.src('src/pages/**/*.{html,hbs,handlebars}')
    .pipe(panini({
      root: 'src/pages/',
      layouts: 'src/layouts/',
      partials: 'src/partials/',
      data: 'src/data/',
      helpers: 'src/helpers/'
    }))
    .pipe(gulp.dest(PATHS.dist));
}

它非常适用于页面-其中src/pages/DE中的f.e. start.html用于mydomain.de/DE/start.html,而src/pages/EN中的start.html用于mydomain.de/EN/start.html
但是对于布局,我需要指定语言之类的东西,这就不起作用了。还有两个文件夹- src/layouts/DE和src/layouts/EN都包含一个default.html文件。但是无论我选择哪个域路径,构建系统总是使用EN路径中的文件。有什么建议吗?

ckx4rj1h

ckx4rj1h1#

下面的代码可以完成这项工作

// Copy page templates into finished HTML files
function pages() {
  return gulp.src('src/pages/**/*.{html,hbs,handlebars}')
    .pipe(panini({
      root: 'src/pages/',
      layouts: 'src/layouts/',
      partials: 'src/partials/',
      data: 'src/data/',
      helpers: 'src/helpers/',
      pageLayouts: {
        'DE': 'DE',
        'EN': 'EN',
  }
    }))
    .pipe(gulp.dest(PATHS.dist));
}

只需添加pageLayouts,这意味着src/pages/DE中的所有页面都应使用FILE!!!src/layouts/DE.html -与EN相同。布局中不需要子文件夹。

相关问题