| # Templish | |||||
| A templating language for JavaScript, using JavaScript. | |||||
| ## Installation | |||||
| Install with NPM: | |||||
| npm install --save templish | |||||
| ## Usage | |||||
| A simple example: | |||||
| ``` JavaScript | |||||
| //First, require the library | |||||
| var Templish = require("templish"); | |||||
| //Create a templish template | |||||
| var t = new Templish("<title>{{conf.title}}</title>", ["conf"]); | |||||
| //Create an environment | |||||
| var env = { | |||||
| conf: { | |||||
| title: "Hello, World!" | |||||
| } | |||||
| } | |||||
| //Execute the template | |||||
| t.exec(env, function(err, res) { | |||||
| console.log(res); //<title>Hello, World!</title> | |||||
| }); | |||||
| //Execute the template again, this time with a different environment | |||||
| env = { | |||||
| conf: { | |||||
| title: "Good Morning, Earth!" | |||||
| } | |||||
| } | |||||
| t.exec(env, function(err, res) { | |||||
| console.log(res); //<title>Good Morning, Earth!</title> | |||||
| }); | |||||
| ``` | |||||
| We can do more complex things, even with asynchronous functions: | |||||
| ``` JavaScript | |||||
| var fs = require("fs"); | |||||
| var Templish = require("templish"); | |||||
| //Create a templish template | |||||
| var t = new Templish( | |||||
| "<title>{{fs.readFile('someFile', 'UTF8', cb)}}</title>", | |||||
| ["fs"] | |||||
| ); | |||||
| //Create an environment, this time with the `fs` method to let us access files | |||||
| var env = { | |||||
| fs: fs | |||||
| } | |||||
| //Execute the template | |||||
| t.exec(env, function(err, res) { | |||||
| console.log(res); //If we assume the `someFile` file contains "hi, world": | |||||
| //<title>hi, world</title> | |||||
| }); | |||||
| ``` | |||||
| We can have multiple statements: | |||||
| ``` JavaScript | |||||
| var Templish = require("templish"); | |||||
| //Create a templish template | |||||
| var t = new Templish("\ | |||||
| <title>{{ \ | |||||
| var str = 'Hello World'; \ | |||||
| return str; \ | |||||
| }}</title>", | |||||
| [] | |||||
| ); | |||||
| //Execute the template | |||||
| t.exec({}, function(err, res) { | |||||
| console.log(res) //<title>Hello World</title> | |||||
| }); | |||||
| ``` | |||||
| Notice that with multiple statements, you have to include the `return` statement yourself. | |||||
| Of course, in practice, you would probably want your templates to be individual files, and not inline in the script file, not that Templish cares, as long as it receives a string. |