## Install {%= include("install-npm", {save: true}) %} ## Usage ```js var placeholders = require('{%= name %}')(options); placeholders('/site/blog/:path', {path: 'foo-bar.md'}); //=> '/site/blog/foo-bar.md' ``` ## Options Options may be passed to the main function. ```js var placeholders = require('{%= name %}')(options); ``` ### options.regex Pass a custom regex to use for replacements. **Type**: `{RegExp}` **Default**: the default regex matches es6 delimiters and lodash template syntax. **Example** Match [printf-like](https://en.wikipedia.org/wiki/Printf_format_string) strings: ```js var placeholders = require('{%= name %}')({ regex: /%([^%]+)%/ }); ``` ### options.data Pass a `data` object on the main function to use for resolving values. **Type**: `{Object}` **Default**: `undefined` **Example** ```js var placeholders = require('{%= name %}')({ data: {foo: 'one', bar: 'two'} }); placeholders(':foo/:bar/:baz', {baz: 'three'}) //=> 'one/two/three' ``` ### returns a function when no data is passed This allows you to reuse the same pattern with different data, like a compiled template. ```js var placeholders = require('{%= name %}')({ regex: /%([^%]+)%/ }); var fn = placeholders('foo/%bar%/%baz%'); fn({bar: 'one', baz: 'two'}) //=> 'foo/one/two' fn({bar: 'a', baz: 'b'}) //=> 'foo/a/b' ```