Я использую Gulp, Gulp Jade и Gulp Rename для создания статического сайта с каноническими URL-адресами.
В настоящее время этот скрипт:
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
(о странице)
Это означает, что у меня могут быть канонические URL-адреса на http://example.com/ (для index.jade) и http://example.com/about/ (для about.jade).
Однако я хочу иметь более 1 уровня в структуре URL. Например, если бы мне нужна была страница о Дейве по URL-адресу http://example.com/about/dave/
, я бы сделал следующее:
Я хочу добиться этого:
/src/views/about/dave.jade
>> /public/about/dave/index.html
Но результат таков:
/src/views/about/dave.jade
>> /public/dave/index.html