UNPKG

2.23 kBMarkdownView Raw
1# preserve [![NPM version](https://badge.fury.io/js/preserve.svg)](http://badge.fury.io/js/preserve)
2
3> Temporarily substitute tokens in the given `string` with placeholders, then put them back after transforming the string.
4
5Useful for protecting tokens, like templates in HTML, from being mutated when the string is transformed in some way, like from a formatter/beautifier.
6
7**Example without `preserve`**
8
9Let'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>`:
10
11js-beautify will render the template unusable (and apply incorrect formatting because of the unfamiliar syntax from the Lo-Dash template):
12
13```html
14<ul>
15 <li>
16 <%=n ame %>
17 </li>
18</ul>
19```
20
21**Example with `preserve`**
22
23Correct.
24
25```html
26<ul>
27 <li><%= name %></li>
28</ul>
29```
30
31For 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.
32
33## Install
34## Install with [npm](npmjs.org)
35
36```bash
37npm i preserve --save
38```
39
40## Run tests
41
42```bash
43npm test
44```
45
46## API
47### [.before](index.js#L23)
48
49Replace tokens in `str` with a temporary, heuristic placeholder.
50
51* `str` **{String}**
52* `returns` **{String}**: String with placeholders.
53
54```js
55tokens.before('{a\\,b}');
56//=> '{__ID1__}'
57```
58
59### [.after](index.js#L44)
60
61Replace placeholders in `str` with original tokens.
62
63* `str` **{String}**: String with placeholders
64* `returns` **{String}** `str`: String with original tokens.
65
66```js
67tokens.after('{__ID1__}');
68//=> '{a\\,b}'
69```
70
71
72## Contributing
73Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/preserve/issues)
74
75## Author
76
77**Jon Schlinkert**
78
79+ [github/jonschlinkert](https://github.com/jonschlinkert)
80+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
81
82## License
83Copyright (c) 2015-2015, Jon Schlinkert.
84Released under the MIT license
85
86***
87
88_This file was generated by [verb](https://github.com/assemble/verb) on January 10, 2015._
89
90[js-beautify]: https://github.com/beautify-web/js-beautify
\No newline at end of file