|
1 | 1 | # Linkify Changelog |
2 | 2 |
|
| 3 | +## v4.1.0 |
| 4 | + |
| 5 | +- Drop support for Safari 10 |
| 6 | +- Reduce core bundle file size by ~30% |
| 7 | +- Restore support for email address with scheme local part |
| 8 | +- Allow hashtags with emojis |
| 9 | + |
3 | 10 | ## v4.0.2 |
4 | 11 |
|
5 | | -* Fix email address detection with domains containing numbers |
| 12 | +- Fix email address detection with domains containing numbers |
6 | 13 |
|
7 | 14 | ## v4.0.1 |
8 | 15 |
|
9 | | -* Restore nl2br option for linkify-html |
10 | | -* Fixed duplicate key warning in linkify-react with multiple children |
| 16 | +- Restore nl2br option for linkify-html |
| 17 | +- Fixed duplicate key warning in linkify-react with multiple children |
11 | 18 |
|
12 | 19 | ## v4.0.0 |
13 | 20 |
|
14 | 21 | ### BREAKING CHANGES |
15 | | -* Removed deprecated `linkifyjs/string`, `linkifyjs/html`, `linkifyjs/plugins/*` |
| 22 | + |
| 23 | +- Removed deprecated `linkifyjs/string`, `linkifyjs/html`, `linkifyjs/plugins/*` |
16 | 24 | packages. Use `linkify-string`, `linkify-html` and `linkify-plugin-*` instead. |
17 | | -* Refactored scanner internals break custom link plugins created with Linkify v3 |
18 | | -* Links that begin with `mailto:` now have type `url` instead of `email` |
19 | | -* Drop official IE 11 support |
| 25 | +- Refactored scanner internals break custom link plugins created with Linkify v3 |
| 26 | +- Links that begin with `mailto:` now have type `url` instead of `email` |
| 27 | +- Drop official IE 11 support |
20 | 28 |
|
21 | 29 | ### Added |
22 | | -* `linkify-plugin-ip` plugin for detecting IPv4 and IPv6 addresses |
23 | | -* `linkify-plugin-keyword` plugin for detecting arbitrary keywords |
24 | | -* `linkify.find()` function accepts an `options` argument for output formatting |
25 | | -* New `render` option to override link rendering |
26 | | -* Second `optionalSlashSlash` argument for `registerCustomProtocol` to allow links that don't require `//` after `scheme:` |
27 | | -* Link token methods `toFormattedString(options)`, `toFormattedHref(options)` and `toFormattedObject(options)` that accept a `linkify.Options` object |
28 | | -* More granular scanner tokens for improved plugin flexibility |
29 | | -* `linkify-react`: New `as` property (alias for `tagName`) |
| 30 | + |
| 31 | +- `linkify-plugin-ip` plugin for detecting IPv4 and IPv6 addresses |
| 32 | +- `linkify-plugin-keyword` plugin for detecting arbitrary keywords |
| 33 | +- `linkify.find()` function accepts an `options` argument for output formatting |
| 34 | +- New `render` option to override link rendering |
| 35 | +- Second `optionalSlashSlash` argument for `registerCustomProtocol` to allow links that don't require `//` after `scheme:` |
| 36 | +- Link token methods `toFormattedString(options)`, `toFormattedHref(options)` and `toFormattedObject(options)` that accept a `linkify.Options` object |
| 37 | +- More granular scanner tokens for improved plugin flexibility |
| 38 | +- `linkify-react`: New `as` property (alias for `tagName`) |
30 | 39 |
|
31 | 40 | ### Fixed |
32 | | -* Improved link detection with mixed languages |
33 | | -* Consistent option availability across interfaces (including `truncate`) |
34 | | -* `linkify-html`: Improved HTML entity parsing |
| 41 | + |
| 42 | +- Improved link detection with mixed languages |
| 43 | +- Consistent option availability across interfaces (including `truncate`) |
| 44 | +- `linkify-html`: Improved HTML entity parsing |
35 | 45 |
|
36 | 46 | ## v3.0.5 |
37 | 47 |
|
38 | | -* Fix potential Cross-Site Scripting issue when using `linkify-html` |
| 48 | +- Fix potential Cross-Site Scripting issue when using `linkify-html` |
39 | 49 |
|
40 | 50 | ## v3.0.4 |
41 | 51 |
|
42 | | -* Expose ES6 modules with `"module"` field in `package.json` |
| 52 | +- Expose ES6 modules with `"module"` field in `package.json` |
43 | 53 |
|
44 | 54 | ## v3.0.3 |
45 | 55 |
|
46 | | -* Add linkifyjs ES6 module build |
| 56 | +- Add linkifyjs ES6 module build |
47 | 57 |
|
48 | 58 | ## v3.0.2 |
49 | 59 |
|
50 | | -* Correctly detect hashtags with underscores |
51 | | -* Fix plugin import bug |
52 | | -* Fix `linkify-string` and `linkify-html` type declarations |
| 60 | +- Correctly detect hashtags with underscores |
| 61 | +- Fix plugin import bug |
| 62 | +- Fix `linkify-string` and `linkify-html` type declarations |
53 | 63 |
|
54 | 64 | ## v3.0.1 |
55 | 65 |
|
56 | | -* Fix React component type declarations |
57 | | -* Include LICENSE file in all published packages |
| 66 | +- Fix React component type declarations |
| 67 | +- Include LICENSE file in all published packages |
58 | 68 |
|
59 | 69 | ## v3.0.0 |
60 | 70 |
|
61 | 71 | ### BREAKING CHANGES |
62 | | -* React, jQuery and Element interfaces moved to dedicated packages at `linkify-react`,`linkify-jquery` and `linkify-element` respectively: |
63 | | -* Remove default `class="linkified"` from all discovered links. Opt back in by setting the `className` option: |
| 72 | + |
| 73 | +- React, jQuery and Element interfaces moved to dedicated packages at `linkify-react`,`linkify-jquery` and `linkify-element` respectively: |
| 74 | +- Remove default `class="linkified"` from all discovered links. Opt back in by setting the `className` option: |
64 | 75 | ```js |
65 | | - linkifyStr(str, { className: 'linkified' }) |
| 76 | + linkifyStr(str, { className: "linkified" }); |
66 | 77 | ``` |
67 | | -* Remove default `target="_blank"` attribute for discovered URLs. Opt back in by setting the `target` option: |
| 78 | +- Remove default `target="_blank"` attribute for discovered URLs. Opt back in by setting the `target` option: |
68 | 79 | ```js |
69 | 80 | linkifyHtml(str, { |
70 | | - target: (href, type) => type === 'url' && '_blank' |
71 | | - }) |
| 81 | + target: (href, type) => type === "url" && "_blank", |
| 82 | + }); |
72 | 83 | ``` |
73 | | -* React component: Remove outer `<span>` tag wrapper in favour of tag-less `React.Fragment` for React >=16. To opt back-in, set `tagName='span'`: |
| 84 | +- React component: Remove outer `<span>` tag wrapper in favour of tag-less `React.Fragment` for React >=16. To opt back-in, set `tagName='span'`: |
74 | 85 | ```jsx |
75 | | - <Linkify tagName='span'>{content}</Linkify> |
| 86 | + <Linkify tagName="span">{content}</Linkify> |
76 | 87 | ``` |
77 | | -* AMD module interface is no longer provided. Use an ESM bundler instead. |
78 | | -* Plugins imported after linkify is called on a string for the first time will not longer work. Import all plugins _before_ calling a linkify core or interface function. |
79 | | -* Custom plugin API is not compatible with previous API in Linkify v2 |
80 | | -* Dropped support for Internet Explorer versions 9 and 10. IE11 is still supported |
81 | | -* Dropped support for React versions <15 |
| 88 | +- AMD module interface is no longer provided. Use an ESM bundler instead. |
| 89 | +- Plugins imported after linkify is called on a string for the first time will not longer work. Import all plugins _before_ calling a linkify core or interface function. |
| 90 | +- Custom plugin API is not compatible with previous API in Linkify v2 |
| 91 | +- Dropped support for Internet Explorer versions 9 and 10. IE11 is still supported |
| 92 | +- Dropped support for React versions <15 |
82 | 93 |
|
83 | 94 | ### Deprecations |
84 | | -* Use dedicated packages `linkify-string` and `linkify-html` instead of `linkifyjs/string` and `linkifyjs/html`. The embedded packages will be removed in v4.0 |
85 | | -* Use dedicated plugin packages `linkify-plugin-[PLUGIN]` instead of `linkifyjs/plugin/[PLUGIN]`. The embedded packages will be removed in v4.0 |
| 95 | + |
| 96 | +- Use dedicated packages `linkify-string` and `linkify-html` instead of `linkifyjs/string` and `linkifyjs/html`. The embedded packages will be removed in v4.0 |
| 97 | +- Use dedicated plugin packages `linkify-plugin-[PLUGIN]` instead of `linkifyjs/plugin/[PLUGIN]`. The embedded packages will be removed in v4.0 |
86 | 98 |
|
87 | 99 | ### All Changes |
88 | | -* Full Internationalized Domain (IDN) and Emoji domain support 🇺🇳🌍✈️🎉💃! Detect URLs, #hashtags and @mentions in any language |
89 | | -* ~10x faster startup; ~4x faster combined startup + first run |
90 | | -* Custom protocols with `linkify.registerCustomProtocol('protocol')` |
91 | | -* Modernized codebase and build system |
92 | | -* Add new `rel` option at top level as an alternate way of including it in `attributes` |
93 | | -* New and improved plugin API |
94 | | -* TypeScript definitions included in published packages |
95 | | -* `linkify.find()` output includes start and end indexes for where in the string a link was found |
96 | | -* Plugins no longer need to be called on linkify after import |
| 100 | + |
| 101 | +- Full Internationalized Domain (IDN) and Emoji domain support 🇺🇳🌍✈️🎉💃! Detect URLs, #hashtags and @mentions in any language |
| 102 | +- ~10x faster startup; ~4x faster combined startup + first run |
| 103 | +- Custom protocols with `linkify.registerCustomProtocol('protocol')` |
| 104 | +- Modernized codebase and build system |
| 105 | +- Add new `rel` option at top level as an alternate way of including it in `attributes` |
| 106 | +- New and improved plugin API |
| 107 | +- TypeScript definitions included in published packages |
| 108 | +- `linkify.find()` output includes start and end indexes for where in the string a link was found |
| 109 | +- Plugins no longer need to be called on linkify after import |
| 110 | + |
97 | 111 | ```js |
98 | 112 | // Before |
99 | | - import * as linkify from 'linkifyjs' |
100 | | - import hashtag from 'linkifyjs/plugins/hashtag' |
101 | | - hashtag(linkify) |
| 113 | + import * as linkify from "linkifyjs"; |
| 114 | + import hashtag from "linkifyjs/plugins/hashtag"; |
| 115 | + hashtag(linkify); |
102 | 116 |
|
103 | 117 | // After |
104 | | - import * as linkify from 'linkifyjs' |
105 | | - import 'linkifyjs/plugins/hashtag' |
| 118 | + import * as linkify from "linkifyjs"; |
| 119 | + import "linkifyjs/plugins/hashtag"; |
106 | 120 | ``` |
107 | 121 |
|
108 | | - |
109 | 122 | ## v2.1.9 |
110 | 123 |
|
111 | | -* Move optional dependencies to peerdependencies (#282) |
112 | | -* Fix `npm install` displays vulnerabilities. (#265) |
113 | | -* Fix typo (#275) |
| 124 | +- Move optional dependencies to peerdependencies (#282) |
| 125 | +- Fix `npm install` displays vulnerabilities. (#265) |
| 126 | +- Fix typo (#275) |
114 | 127 |
|
115 | 128 | ## v2.1.8 |
116 | 129 |
|
117 | | -* Allow mentions with inner @ sign for federated mentions - thanks @juliushaertl! |
118 | | -* Drop official support for Internet Explorer 8 and Node.js 6 (still supported unofficially but may break in future releases) |
119 | | -* Update dev dependencies |
| 130 | +- Allow mentions with inner @ sign for federated mentions - thanks @juliushaertl! |
| 131 | +- Drop official support for Internet Explorer 8 and Node.js 6 (still supported unofficially but may break in future releases) |
| 132 | +- Update dev dependencies |
120 | 133 |
|
121 | 134 | ## v2.1.7 |
122 | 135 |
|
123 | | -* Update dependencies (#243) |
124 | | -* Ignore .babelrc file (854e6fc) |
| 136 | +- Update dependencies (#243) |
| 137 | +- Ignore .babelrc file (854e6fc) |
125 | 138 |
|
126 | 139 | ## v2.1.6 |
127 | 140 |
|
128 | | -* Fix a bug where unique element IDs aren't unique (#215) |
129 | | -* Update tlds.js (#213) |
130 | | -* Automated browser test fixes (#224) |
131 | | -* Add partialProtocolMailtoStates to domainStates (#210) |
132 | | -* Use Object.defineProperty to extend String prototype so that 'linkify' function is not enumerable (#197) |
133 | | -* Allow null overrides in options for target and className (#189) |
| 141 | +- Fix a bug where unique element IDs aren't unique (#215) |
| 142 | +- Update tlds.js (#213) |
| 143 | +- Automated browser test fixes (#224) |
| 144 | +- Add partialProtocolMailtoStates to domainStates (#210) |
| 145 | +- Use Object.defineProperty to extend String prototype so that 'linkify' function is not enumerable (#197) |
| 146 | +- Allow null overrides in options for target and className (#189) |
134 | 147 |
|
135 | 148 | ## v2.1.5 |
136 | 149 |
|
137 | | -* React plugin compatibility updates |
| 150 | +- React plugin compatibility updates |
138 | 151 |
|
139 | 152 | ## v2.1.4 |
140 | 153 |
|
141 | | -* Add explicit support for mailto: addresses (#186) |
142 | | -* Add support for mentions containing dots (#185) |
143 | | -* URL followed by ` ` now works as expected in linkify-html (#184) |
144 | | -* Small dependency updates (#183) |
145 | | -* Drop deprecated babel-preset-es2015-loose dependency (#172) |
146 | | -* Web workers support (#168) |
| 154 | +- Add explicit support for mailto: addresses (#186) |
| 155 | +- Add support for mentions containing dots (#185) |
| 156 | +- URL followed by ` ` now works as expected in linkify-html (#184) |
| 157 | +- Small dependency updates (#183) |
| 158 | +- Drop deprecated babel-preset-es2015-loose dependency (#172) |
| 159 | +- Web workers support (#168) |
147 | 160 |
|
148 | 161 | ## v2.1.3 |
149 | 162 |
|
150 | | -* Links in angle brackets (#166) |
| 163 | +- Links in angle brackets (#166) |
151 | 164 |
|
152 | 165 | ## v2.1.2 |
153 | 166 |
|
154 | | -* Single quotes should be treated as punctuation (#165) |
| 167 | +- Single quotes should be treated as punctuation (#165) |
155 | 168 |
|
156 | 169 | ## v2.1.1 |
157 | 170 |
|
158 | | -* Detect additional whitespace characters (#163) |
| 171 | +- Detect additional whitespace characters (#163) |
159 | 172 |
|
160 | 173 | ## v2.1.0 |
161 | 174 |
|
162 | 175 | ### BREAKING CHANGES |
163 | 176 |
|
164 | | -* The `dist/jquery.linkify.js` 1.x legacy browser files have been permanently |
165 | | -removed from the release bundle. |
166 | | - * Use `linkify.js` and `linkify-jquery.js` instead. |
167 | | -* The deprecated `newLine` option from linkify 1.x has been completely removed. |
168 | | - * Use the [`nl2br` option](https://linkify.js.org/docs/options.html#nl2br) instead. |
| 177 | +- The `dist/jquery.linkify.js` 1.x legacy browser files have been permanently |
| 178 | + removed from the release bundle. |
| 179 | + - Use `linkify.js` and `linkify-jquery.js` instead. |
| 180 | +- The deprecated `newLine` option from linkify 1.x has been completely removed. |
| 181 | + - Use the [`nl2br` option](https://linkify.js.org/docs/options.html#nl2br) instead. |
169 | 182 |
|
170 | 183 | ### Features |
171 | 184 |
|
172 | | -* [New React.js interface](https://linkify.js.org/docs/linkify-react.html) |
173 | | -* [@mention plugin](https://linkify.js.org/docs/plugin-mention.html) |
174 | | -* [GitHub-style ticket/issue reference plugin](https://linkify.js.org/docs/plugin-ticket.html) |
175 | | -* Improved option definitions |
176 | | - * Options that take functions with value and type arguments can now be |
| 185 | +- [New React.js interface](https://linkify.js.org/docs/linkify-react.html) |
| 186 | +- [@mention plugin](https://linkify.js.org/docs/plugin-mention.html) |
| 187 | +- [GitHub-style ticket/issue reference plugin](https://linkify.js.org/docs/plugin-ticket.html) |
| 188 | +- Improved option definitions |
| 189 | + - Options that take functions with value and type arguments can now be |
177 | 190 | specified as objects, where each key is the target link type. |
178 | 191 |
|
179 | 192 | ### Deprecations |
180 | 193 |
|
181 | | -* The `linkAttributes` option is deprecated in favour of just **`attributes`**. |
182 | | -* The `linkClass` option is deprecated in favour of **`className`**. |
183 | | -* The default `.linkified` class is deprecated and will be fully removed |
184 | | -in a future release. |
| 194 | +- The `linkAttributes` option is deprecated in favour of just **`attributes`**. |
| 195 | +- The `linkClass` option is deprecated in favour of **`className`**. |
| 196 | +- The default `.linkified` class is deprecated and will be fully removed |
| 197 | + in a future release. |
185 | 198 |
|
186 | 199 | To maintain compatibility with versions >= 2.1, make sure options objects |
187 | 200 | include these properties instead of `linkAttributes` and `linkClass` |
188 | 201 |
|
189 | 202 | ### All Changes |
190 | 203 |
|
191 | | -* Build optimizations to make compiled AMD payload smaller |
192 | | -* Bugfix in quick-es3 task |
193 | | -* Make better use of ES6 modules and rollup |
194 | | -* Tickets plugin (#156) |
195 | | -* Additional Mentions features, enhancements, and tests (#155) |
196 | | -* Mentions plugin (#111) |
197 | | -* Revamped options utility (#154) |
198 | | -* Linkify React Interface (#150) |
199 | | -* Development upgrades (#153) |
| 204 | +- Build optimizations to make compiled AMD payload smaller |
| 205 | +- Bugfix in quick-es3 task |
| 206 | +- Make better use of ES6 modules and rollup |
| 207 | +- Tickets plugin (#156) |
| 208 | +- Additional Mentions features, enhancements, and tests (#155) |
| 209 | +- Mentions plugin (#111) |
| 210 | +- Revamped options utility (#154) |
| 211 | +- Linkify React Interface (#150) |
| 212 | +- Development upgrades (#153) |
200 | 213 |
|
201 | 214 | ## v2.0.5 |
202 | 215 |
|
203 | | -* Correct trailing symbol parsing (#149) |
204 | | -* Linkify element fixes (#148) |
| 216 | +- Correct trailing symbol parsing (#149) |
| 217 | +- Linkify element fixes (#148) |
205 | 218 |
|
206 | 219 | ## v2.0.4 |
207 | 220 |
|
208 | | -* Optimize class code to reduce file size (#147). |
209 | | -* Update test and dev dependencies |
210 | | -* Allow uglify to mangle properties, except for the specified ones (#146) |
211 | | -* Updated tlds.js (#121) |
| 221 | +- Optimize class code to reduce file size (#147). |
| 222 | +- Update test and dev dependencies |
| 223 | +- Allow uglify to mangle properties, except for the specified ones (#146) |
| 224 | +- Updated tlds.js (#121) |
212 | 225 |
|
213 | 226 | ## v2.0.3 |
214 | 227 |
|
215 | | -* Fixing element interface invalid DOM node error (#141) |
| 228 | +- Fixing element interface invalid DOM node error (#141) |
216 | 229 |
|
217 | 230 | ## v2.0.1 |
218 | 231 |
|
219 | | -* Updated build system and development dependencies |
220 | | -* IE8 Support |
221 | | -* Internal API updates |
| 232 | +- Updated build system and development dependencies |
| 233 | +- IE8 Support |
| 234 | +- Internal API updates |
222 | 235 |
|
223 | 236 | ## v2.0.0 |
224 | 237 |
|
225 | | -* New link-detection technique based on lexicographical analysis via two-stage scanner - essentially regexp with more flexibility. |
226 | | -* Faster, less destructive DOM manipulation. |
227 | | -* Node.js API via `var linkify = require('linkifyjs');` |
228 | | -* Internal plugin system so you can require only features you need. e.g., `require('linkifyjs/plugins/hashtag')(linkify);` |
229 | | -* Browser modules (Browserify, AMD) |
230 | | -* Mocha Unit tests |
231 | | -* ES6 Implementation |
232 | | -* Updated documentation |
233 | | -* Repository name change |
| 238 | +- New link-detection technique based on lexicographical analysis via two-stage scanner - essentially regexp with more flexibility. |
| 239 | +- Faster, less destructive DOM manipulation. |
| 240 | +- Node.js API via `var linkify = require('linkifyjs');` |
| 241 | +- Internal plugin system so you can require only features you need. e.g., `require('linkifyjs/plugins/hashtag')(linkify);` |
| 242 | +- Browser modules (Browserify, AMD) |
| 243 | +- Mocha Unit tests |
| 244 | +- ES6 Implementation |
| 245 | +- Updated documentation |
| 246 | +- Repository name change |
0 commit comments