A node conect middleware component to support shtml-style includes.
For example, the following in an html file:
<!-- #include file="test.html" -->
will be replaced with the contents of test.html. Note that only the file= directive is supported; virtual= will be ignored.
To install, do the following
npm install connect-include --save
Then include as a middleware component to connect:
var include = require('connect-include');
connect().use(include('/my/web/root'));
To enable debugmode (prints out the file path which was included as an html comment), include like this:
connect().use(include('/my/web/root', {
debug: true
}));
If you're using Grunt, include as follows in Gruntfile.js
:
module.exports = function (grunt) {
// load all grunt tasks
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
// include connect-include
var ssInclude = require("connect-include");
grunt.initConfig({
// ...
connect: {
// ...
livereload: {
options: {
middleware: function(connect, options) {
// Same as in grunt-contrib-connect
var middlewares = [];
var directory = options.directory || options.base[options.base.length - 1];
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
// Here we insert connect-include, use the same pattern to add other middleware
middlewares.push(ssInclude(directory));
// Same as in grunt-contrib-connect
options.base.forEach(function(base) {
middlewares.push(connect.static(base));
});
middlewares.push(connect.directory(directory));
return middlewares;
}
}
},
// ...