在保持文件夹结构的同时将Jade编译为HTML

时间:2015-11-16 16:57:42

标签: javascript node.js gulp pug gulp-rename

我正在使用Gulp,Gulp Jade和Gulp Rename创建一个带有规范网址的静态网站。

目前这个脚本:

gulp.task('jade', function() {
  return gulp.src('src/views/**/*.jade')
    .pipe(jade({
      pretty: true
    }))
    .pipe(rename(function(path){
        if (path.basename=='index'){
          return;
        }
        path.dirname=path.basename.split('-').join('/');
        path.basename="index";
    }))
    .pipe(gulp.dest('./public/'))
    callback();
});

允许我编译以下文件:

/src/views/index.jade>> /public/index.html(主页)

/src/views/about.jade>> /public/about/index.html(关于页面)

这意味着我可以在http://example.com/(对于index.jade)和http://example.com/about/(对于about.jade)拥有规范网址。

但是,我希望能够在URL结构中拥有多个级别。例如,如果我想在URL http://example.com/about/dave/上有关于Dave的页面,我会这样做:

我想实现这个目标:

/src/views/about/dave.jade>> /public/about/dave/index.html

但结果是:

/src/views/about/dave.jade>> /public/dave/index.html

2 个答案:

答案 0 :(得分:0)

以下是类似的问题:Jade to HTML > index.html inside directory named after jade file您可以找到一个很好的gulp-rename代码示例,它可以正常工作。

答案 1 :(得分:0)

Jade已更名为" Pug"现在,在给定目录作为编译输入时,默认情况下会保留目录结构。

这是一个简单的例子:

帕格来源:

source/
    templates/
      |-- index.pug
      |-- about.pug
    partials/
      |-- navigation.pug

编译命令:

pug source --out ./build

输出为:

build/
    templates/
      |-- index.html
      |-- about.html
    partials/
      |-- navigation.html