1 # preserve [![NPM version](https://badge.fury.io/js/preserve.svg)](http://badge.fury.io/js/preserve)
3 > Temporarily substitute tokens in the given `string` with placeholders, then put them back after transforming the string.
5 Useful for protecting tokens, like templates in HTML, from being mutated when the string is transformed in some way, like from a formatter/beautifier.
7 **Example without `preserve`**
9 Let's say you want to use [js-beautify] on a string of html with Lo-Dash/Underscore templates, such as: `<ul><li><%= name %></li></ul>`:
11 js-beautify will render the template unusable (and apply incorrect formatting because of the unfamiliar syntax from the Lo-Dash template):
21 **Example with `preserve`**
31 For the record, this is just a random example, I've had very few issues with js-beautify in general. But with or without js-beautify, this kind of token mangling does happen sometimes when you use formatters, beautifiers or similar tools.
34 ## Install with [npm](npmjs.org)
47 ### [.before](index.js#L23)
49 Replace tokens in `str` with a temporary, heuristic placeholder.
52 * `returns` **{String}**: String with placeholders.
55 tokens.before('{a\\,b}');
59 ### [.after](index.js#L44)
61 Replace placeholders in `str` with original tokens.
63 * `str` **{String}**: String with placeholders
64 * `returns` **{String}** `str`: String with original tokens.
67 tokens.after('{__ID1__}');
73 Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/preserve/issues)
79 + [github/jonschlinkert](https://github.com/jonschlinkert)
80 + [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
83 Copyright (c) 2015-2015, Jon Schlinkert.
84 Released under the MIT license
88 _This file was generated by [verb](https://github.com/assemble/verb) on January 10, 2015._
90 [js-beautify]: https://github.com/beautify-web/js-beautify