UNPKG

gulp-html-partial

Version:

Gulp plugin for including HTML files into each other. Supports nested partials and passing parameters as attributes.

98 lines (80 loc) 2.56 kB
# gulp-html-partial Gulp plugin for including HTML files into each other. Made for fun and my personal needs, but I'll appreciate if anyone will use it \\( ゚ヮ゚)/ I know, there are some long-time solutions like [gulp-file-include](https://github.com/coderhaoxin/gulp-file-include), but I wanted to create something on my own with html-like syntax. Supports nested partials and passing parameters as attributes. # Requirements - [gulp](http://gulpjs.com/) (>=3.9.1) (guess it'll work with older versions too) - [Node](http://nodejs.org/) (>=6.5.0) (not sure 4.x will handle all ES6 stuff) # Installation `npm install --save-dev gulp-html-partial` # Usage #### in HTML: Files are included in `src` and `dist` directories. **index.html:** ```html <div class="container"> <partial src="_1.html" title="Some title"></partial> </div> ``` **_1.html:** ```html <div> <div class="title">@@title</div> <span>Some span</span> <div> Some text </div> </div> <partial src="_2.html" param="Nested partial" dashed-param="Some-dashed-param"></partial> <partial src="_3.html" param="I don't exist :("></partial> ``` **_2.html:** ```html <div class="wtf"> Some text <div class="header">@@param</div> <div class="block">@@dashed-param</div> </div> <p>Some text</p> ``` **Results in:** ```html <div class="container"> <div> <div class="title">Some title</div> <span>Some span</span> <div>Some text</div> </div> <div class="wtf">Some text <div class="header">Nested partial</div> <div class="block">Some-dashed-param</div> </div> <p>Some text</p> </div> ``` #### in `gulpfile.js`: ```js const gulp = require('gulp'); const htmlPartial = require('gulp-html-partial'); gulp.task('html', function () { gulp.src(['src/*.html']) .pipe(htmlPartial({ basePath: 'src/partials/' })) .pipe(gulp.dest('build')); }); ``` # Options ```js const defaults = { basePath: '', tagName: 'partial', variablePrefix: '@@' } ``` - `basePath` - base path for your partials, relative to `gulpfile.js` - `tagName` - name of your partial tag, must have at least `src` attribute with path to partial file - `variablePrefix` - prefix of variable keys passed as attributes into partials # Notes - missing partials defaults to empty string - errors fire as logs, not as events, to make sure every, not only the first one, missing partial will be described - but I guess there is a way to make that work with events too