Jade is considered deprecated. Use Pug instead. See the official Pug migration guide: https://pugjs.org/api/migration-v2.html#project-rename
Globbing with Jade the easy way.
Expands Jade include
and extends
statements to allow globbing and placeholders.
Based on gulp-css-globbing
.
Install gulp-jade-globbing
as a development dependency using npm:
npm install --save-dev gulp-jade-globbing
var jade = require('gulp-jade');
var jadeGlobbing = require('gulp-jade-globbing');
gulp.task('jade', function(){
gulp.src(['src/index.jade'])
.pipe(jadeGlobbing())
.pipe(jade())
.pipe(gulp.dest('build'));
});
//- ...
include ../foo/bar/**/*.jade
//- ...
gulp.task('jade', function(){
gulp.src(['src/views/**/*.jade'])
.pipe(jadeGlobbing({
placeholder: {
'modules': 'src/modules/**/*.jade',
'layout': 'src/layout/**/*',
'default-template': 'src/layout/templates/default.jade',
}
ignore: [
'src/views',
'src/layout/templates'
]
}))
.pipe(jade())
.pipe(gulp.dest('build'));
});
extends {default-template}
block includes
include ../../utilities/**/*.jade
include ../../base/*.jade
include {modules}
include {layout}
block container
h1 Hello World!
block includes
doctype html
html
head
meta(charset='utf-8')
title Hello?
body
block container
gulp-jade-globbing
can be called with an options object:
gulp.task('jade', function(){
gulp.src(['src/index.jade'])
.pipe(jadeGlobbing({
placeholder: {
'base': 'src/jade/base/*.jade',
'modules': 'src/jade/modules/**/*.jade',
'layout': 'src/jade/layout/**/*',
'default-template': 'src/jade/layout/templates/default.jade',
}
ignore: ['src/jade/layout/templates']
}))
.pipe(jade())
.pipe(gulp.dest('build'));
});
Type: String
or Array
Folders gulp-jade-globbing should ignore.
Default: []
Type: Object
Placeholders to use within jade files, e.g. {modules}
.
Default: {}