A server side include system
JavaScript HTML
Switch branches/tags
Clone or download
Pull request Compare This branch is 1 commit ahead, 13 commits behind yanni4night:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
.travis.yml
Gruntfile.js
README.md
appveyor.yml
index.js
package.json

README.md

node-ssi

Note: I've swapped around the file and virtual declarations as, ASFAI, they didn't match the WAMP / MAMP usage.

NPM version Downloads Build Status Dependency status Build status Built with Grunt

A server-side-include system for nodejs.

We only support parts of nginx ssi syntax:

  <!--# include file="sibling/file.shtml" -->
  <!--# include virtual="/child/sibling/file.shtml" -->

  <!--# set var="k" value="v" -->

  <!--# echo var="n" default="default" -->

  <!--# if expr="test" -->
  <!--# elif expr="" -->
  <!--# else -->
  <!--# endif -->

Note:

  • virtual includes are always relative to the baseDir provided in the options.
  • file includes are relative to the current file.

usage

var SSI = require('node-ssi');
var ssi = new SSI({
        baseDir: './html/',
        encoding: 'utf-8'
        payload: {
            v: 5
        }
    });

// handle a file
ssi.compileFile('index.html', {payload:{title: 'Index'}}, function(err, content){

    });

//handle a content
ssi.compile('<!--# echo var="v" default="default" -->', function(err,content){

    });

test

grunt test

changelog

  • 2015-04-09[10:30:00]:swapped file and virtual definitions
  • 2014-11-03[17:00:51]:support special chars like \n,\v etc.
  • 2014-12-04[12:39:20]:thanks for @nfriedly,we fixed some bugs and support more features

todo

better lexer

license

MIT