Initial commit
[yaffs-website] / node_modules / preserve / README.md
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
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.
6
7 **Example without `preserve`**
8
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>`:
10
11 js-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
23 Correct.
24
25 ```html
26 <ul>
27   <li><%= name %></li>
28 </ul>
29 ```
30
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.
32
33 ## Install
34 ## Install with [npm](npmjs.org)
35
36 ```bash
37 npm i preserve --save
38 ```
39
40 ## Run tests
41
42 ```bash
43 npm test
44 ```
45
46 ## API
47 ### [.before](index.js#L23)
48
49 Replace tokens in `str` with a temporary, heuristic placeholder.
50
51 * `str` **{String}**    
52 * `returns` **{String}**: String with placeholders.  
53
54 ```js
55 tokens.before('{a\\,b}');
56 //=> '{__ID1__}'
57 ```
58
59 ### [.after](index.js#L44)
60
61 Replace placeholders in `str` with original tokens.
62
63 * `str` **{String}**: String with placeholders    
64 * `returns` **{String}** `str`: String with original tokens.  
65
66 ```js
67 tokens.after('{__ID1__}');
68 //=> '{a\\,b}'
69 ```
70
71
72 ## Contributing
73 Pull 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
83 Copyright (c) 2015-2015, Jon Schlinkert.
84 Released 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