1.0.1 • Published 7 years ago

gulp-pug-globbing v1.0.1

Weekly downloads
3
License
-
Repository
-
Last release
7 years ago

gulp-pug-globbing

Globbing with pug the easy way.

Expands pug include and extends statements to allow globbing and placeholders.

Based on gulp-css-globbing.

Install

Install gulp-pug-globbing as a development dependency using npm:

npm install --save-dev gulp-pug-globbing

Usage without options

gulpfile

var pug          = require('gulp-pug');
var pugGlobbing  = require('gulp-pug-globbing');

gulp.task('pug', function(){
  gulp.src(['src/index.pug'])
    .pipe(pugGlobbing())
    .pipe(pug())
    .pipe(gulp.dest('build'));
});

src/index.pug

//- ...
include ../foo/bar/**/*.pug
//- ...

Advanced example

gulp task

gulp.task('pug', function(){
  gulp.src(['src/views/**/*.pug'])
    .pipe(pugGlobbing({
      placeholder: {
        'modules': 'src/modules/**/*.pug',
        'layout': 'src/layout/**/*',
        'default-template': 'src/layout/templates/default.pug',
      }
      ignore: [
        'src/views',
        'src/layout/templates'
      ]
    }))
    .pipe(pug())
    .pipe(gulp.dest('build'));
});

page

extends {default-template}

block includes
  include ../../utilities/**/*.pug
  include ../../base/*.pug
  include {modules}
  include {layout}

block container
  h1 Hello World!

template to extend

block includes
doctype html
html
  head
    meta(charset='utf-8')
    title Hello?

  body
    block container

Options

gulp-pug-globbing can be called with an options object:

gulp.task('pug', function(){
  gulp.src(['src/index.pug'])
    .pipe(pugGlobbing({
      placeholder: {
        'base': 'src/pug/base/*.pug',
        'modules': 'src/pug/modules/**/*.pug',
        'layout': 'src/pug/layout/**/*',
        'default-template': 'src/pug/layout/templates/default.pug',
      }
      ignore: ['src/pug/layout/templates']
    }))
    .pipe(pug())
    .pipe(gulp.dest('build'));
});

ignore

Type: String or Array

Folders gulp-pug-globbing should ignore.

Default: []

placeholder

Type: Object

Placeholders to use within pug files, e.g. {modules}.

Default: {}