BREAKING CHANGES
- React, jQuery and Element interfaces moved to dedicated packages at
linkify-react
,linkify-jquery
andlinkify-element
respectively: - Remove default
class="linkified"
from all discovered links. Opt back in by setting theclassName
option:linkifyStr(str, { className: 'linkified' })
- Remove default
target="_blank"
attribute for discovered URLs. Opt back in by setting thetarget
option:linkifyHtml(str, { target: (href, type) => type === 'url' && '_blank' })
- React component: Remove outer
<span>
tag wrapper in favour of tag-lessReact.Fragment
for React >=16. To opt back-in, settagName='span'
:<Linkify tagName='span'>{content}</Linkify>
- AMD module interface is no longer provided. Use an ESM bundler instead.
- 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.
- Custom plugin API is not compatible with previous API in Linkify v2
- Dropped support for Internet Explorer versions 9 and 10. IE11 is still supported
- Dropped support for React versions <15
Deprecations
- Use dedicated packages
linkify-string
andlinkify-html
instead oflinkifyjs/string
andlinkifyjs/html
. The embedded packages will be removed in v4.0 - Use dedicated plugin packages
linkify-plugin-[PLUGIN]
instead oflinkifyjs/plugin/[PLUGIN]
. The embedded packages will be removed in v4.0
All Changes
- Full Internationalized Domain (IDN) and Emoji domain support πΊπ³πβοΈππ! Detect URLs, #hashtags and @mentions in any language
- ~10x faster startup; ~4x faster combined startup + first run
- Custom protocols with
linkify.registerCustomProtocol('protocol')
- Modernized codebase and build system
- Add new
rel
option at top level as an alternate way of including it inattributes
- New and improved plugin API
- TypeScript definitions included in published packages
linkify.find()
output includes start and end indexes for where in the string a link was found- Plugins no longer need to be called on linkify after import
// Before import * as linkify from 'linkifyjs' import hashtag from 'linkifyjs/plugins/hashtag' hashtag(linkify) // After import * as linkify from 'linkifyjs' import 'linkifyjs/plugins/hashtag'