Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Node.js
  3. linkify-it

linkify-it

MITJavaScript

A robust JavaScript library for detecting links and emails in plain text with full Unicode and international domain support.

Visit WebsiteGitHubGitHub
724 stars68 forks0 contributors

What is linkify-it?

linkify-it is a JavaScript library that identifies and parses links, emails, and custom patterns in plain text. It solves the problem of accurately detecting URLs and emails in user-generated content, supporting Unicode characters, international domains, and extensible rules for specialized use cases like social media mentions.

Target Audience

Developers building applications that process plain text, such as markdown parsers, chat platforms, comment systems, or content editors where automatic link detection is required.

Value Proposition

Developers choose linkify-it for its reliability, full Unicode support, and extensibility—allowing custom protocols and validation rules without sacrificing performance or accuracy in diverse text environments.

Overview

Links recognition library with full unicode support

Use Cases

Best For

  • Adding link detection to markdown or rich-text editors
  • Parsing URLs and emails in chat or messaging applications
  • Extending link recognition with custom protocols like `git:` or `skype:`
  • Handling international domains and Unicode text in user inputs
  • Implementing social media mention parsing (e.g., Twitter handles)
  • Optimizing text processing with quick pre-check methods like `.pretest()`

Not Ideal For

  • Projects needing automatic link rendering or rich text embedding out-of-the-box
  • High-throughput systems processing terabytes of text where minimal latency is critical
  • Teams wanting pre-configured social media mentions without writing custom validation code
  • Environments restricted to server-side rendering with zero JavaScript runtime

Pros & Cons

Pros

Full Unicode Support

Handles astral characters and international text seamlessly, as emphasized in the README for accurate pattern detection across diverse languages.

Extensible Rule System

Allows adding custom protocols and validators, enabling support for mentions like Twitter handles through the API's validate and normalize functions.

Configurable Fuzzy Matching

Detects URLs without explicit schemes and emails without prefixes, with options like fuzzyIP and termination characters to tailor behavior.

International Domain Recognition

Supports non-Latin characters and custom TLDs via the .tlds() method, making it suitable for global applications without false positives.

Cons

No Built-in Sanitization

Lacks security features for link sanitization, requiring additional libraries or code to prevent XSS attacks when displaying detected links.

Complex Customization

Adding custom patterns like social media mentions involves writing regex validators and normalizers, as shown in the Twitter example, which can be error-prone and time-consuming.

Performance Overhead Risk

The extensive Unicode processing and fuzzy matching may introduce latency in real-time applications compared to simpler, less accurate detection libraries.

Frequently Asked Questions

Quick Stats

Stars724
Forks68
Contributors0
Open Issues7
Last commit1 month ago
CreatedSince 2015

Tags

#npm-package#link-detection#markdown-processing#email-parsing#text-parsing#unicode-support#regex-library

Built With

J
JavaScript
N
Node.js

Links & Resources

Website

Included in

Node.js65.5k
Auto-fetched 8 hours ago

Related Projects

speakingurlspeakingurl

Generate a slug – transliteration with a lot of options

Stars1,118
Forks84
Last commit2 years ago
normalize-urlnormalize-url

Normalize a URL

Stars876
Forks122
Last commit1 month ago
url-patternurl-pattern

easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.

Stars588
Forks43
Last commit5 years ago
humanize-urlhumanize-url

Humanize a URL: https://sindresorhus.com → sindresorhus.com

Stars252
Forks7
Last commit4 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub