UNPKG

@huiyu/string-template

Version:

A simple and customizable Javascript string template/

99 lines (76 loc) 2.11 kB
# Javascript String Template [![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://raw.githubusercontent.com/huiyu/string-template/master/LICENSE) [![Build Status](https://travis-ci.org/huiyu/string-template.svg?branch=master)](https://travis-ci.org/huiyu/string-template) A simple and customizable Javascript string template. ## Examples ### Basic ```javascript var Template = require("@huiyu/string-template") var template = new Template("Hello, ${target}") template.render({target: "world"}) // -> "Hello, world" ``` ### Nested objects ```javascript var template = new Template("${person.name}'s age is ${person.age}") template.render({ person: { name: "Jack". age: 40 } }) // -> "Jack's age is 40" ``` ### Arrays ```javascript var template = new Template("${company.employees[1].name}'s age is ${company.employees[1].age}") template.render({ compnay: { employees: [ { name: "Jack", age: 40 }, { name: "Hugo", age: 25 } ] } }) // -> "Hugo's age is 25" ``` ### Escape character ```javascript template = new Template("Hello: \\${target}") template.render({target: "world"}) // -> "Hello, ${target}" ``` ## Custom ### Replace missing key ```javascript var template = new Template("Hello, ${target}", { missingKeyReplacement: "world" }) template.render({target: "javascript"}) // -> "Hello, javascript" template.render({}) // -> "Hello, world" template = new Template("Hello, ${target}") template.render({}) // -> throw TypeError ``` ### Custom escape character ```javascript var template = new Template("Hello, $${target}", { escapeChar: "$" }) template.render({target: "world"}) // -> "Hello, ${target}" ``` ### Custom macro markup ```javascript var template = new Template("Hello, $[target]", { macroStart: "$[", macroEnd: "]" }) template.render({target: "world"}) // -> "Hello, world ``` ### Parsing values ```javascript var template = new Template("Hello, ${target}") template.render({ target: "${person.name}", person: { name: "Jack" } }) // -> "Hello, Jack" ``` ## License MIT