A recursive injection of partials based on their path name for gulp
npm install gulp-inject-partials[![NPM version][npm-image]][npm-url]
[![Build Status][travis-image]][travis-url]
[![Dependency Status][depstat-image]][depstat-url]
[![Code Climate][codeclimate-image]][codeclimate-url]
> A recursive injection of partials based on their path name for gulp.
Gulp-inject-partials parses target file, located defined placeholders and injects file contents based on their relative path. See Basic usage and More examples below.
Gulp-inject-partials is based/inspired by gulp-inject.
Note: NodeJs v4 or above is required.
Install gulp-inject-partials as a development dependancy:
``shell`
npm install --save-dev gulp-inject-partials
Each pair of comments are the injection placeholders (aka. tags, see options.start and options.end).
index.html
`html`
`
partial/_mypartial.htmlhtml`
This text is in partial`
gulpfile.jsjavascript
var gulp = require('gulp');
var injectPartials = require('gulp-inject-partials');
gulp.task('index', function () {
return gulp.src('./src/index.html')
.pipe(injectPartials())
.pipe(gulp.dest('./src'));
});
``
Results inhtml`
This text is in partial
Nesting partials works same way as single level injection. When injecting partials, gulp-inject-partials will parse parent file in search for partials to inject. Once it finds a partial will then recursively parse child partial.
index.html
`html`
`
views/_mypartial.htmlhtml`
This is in partial
`
views/_mypartial2.htmlhtml`
This text is in partial 2`
views/_mypartial3.htmlhtml`
This text is in partial 3`
gulpfile.jsjavascript
var gulp = require('gulp');
var injectPartials = require('gulp-inject-partials');
gulp.task('index', function () {
return gulp.src('./src/index.html')
.pipe(injectPartials())
.pipe(gulp.dest('./src'));
});
``
Results inhtml`
This is in partial
This text is in partial 2
This text is in partial 3
It's possible to change start and end tag by setting option.start and options.end respectivelly.
index.html
`html`
<## partial/_mypartial.html>
##>`
partial/_mypartial.htmlhtml`
This text is in partial`
gulpfile.jsjavascript
var gulp = require('gulp');
var injectPartials = require('gulp-inject-partials');
gulp.task('index', function () {
return gulp.src('./src/index.html')
.pipe(injectPartials({
start: '<## {{path}}>',
end: '##>'
}))
.pipe(gulp.dest('./src'));
});
``
Results inhtml`
This text is in partial
For production purposes we would like inject tags to be removed and have a clean html. This is possible with options.removeTags.
index.html
`html`
`
partial/_mypartial.htmlhtml`
This text is in partial`
gulpfile.jsjavascript
var gulp = require('gulp');
var injectPartials = require('gulp-inject-partials');
gulp.task('index', function () {
return gulp.src('./src/index.html')
.pipe(injectPartials({
removeTags: true
}))
.pipe(gulp.dest('./src'));
});
``
Results inhtml`
This text is in partial
#### options.start
Type: string path
Param (optional): - relative path to source file
Default: path
Used to dynamically set starting placeholder tag, which might contain relative to source file. Even thou this parameter is optional, whithout it no file would be injected.
#### options.end
Type: string path
Param (optional): - relative path to source file
Default: path
Used to dynamically set ending placeholder tag, which might contain relative to source file.
#### options.removeTags
Type: boolean true
Default: false
When the start and end tags will be removed when injecting files.
#### options.quiet
Type: boolean true
Default: false
When gulp task will not render any information to console.
#### options.prefix
Type: string relative/path/to/partials/
Default: (Empty string)
Prefix path to prepend to every route processed e.g. . Note that full route is still relative.
#### options.ignoreError
Type: 'boolean'
Default: false
When true` ignores missing files during the injection and shows just info message
[npm-url]: https://npmjs.org/package/gulp-inject-partials
[npm-image]: https://img.shields.io/npm/v/gulp-inject-partials.png
[travis-url]: http://travis-ci.org/meeroslav/gulp-inject-partials
[travis-image]: https://travis-ci.org/meeroslav/gulp-inject-partials.svg?branch=master
[depstat-url]: https://david-dm.org/meeroslav/gulp-inject-partials
[depstat-image]: https://david-dm.org/meeroslav/gulp-inject-partials.png
[codeclimate-url]: https://codeclimate.com/github/meeroslav/gulp-inject-partials
[codeclimate-image]: https://codeclimate.com/github/meeroslav/gulp-inject-partials/badges/gpa.svg