tweetParser.js - Live Demo
tweetParser.js is a JavaScript library that parses elements containing Twitter-like content, turning URLs, @usernames, and #hashtags into clickable links. This library supports both x.com (formerly twitter.com) links and is flexible enough for other domains.
- Automatically converts URLs, @usernames, and #hashtags into clickable links.
- Supports customization with CSS classes for easy styling.
- Compatible with both Vanilla JavaScript and jQuery.
- Option to hide the "@" symbol in @usernames and the protocol (
https://) in URLs.
npm install --save-dev tweetparser.js<script src="path/to/tweetParser.min.js"></script>| Parameter | Type | Default | Description |
|---|---|---|---|
urlClass |
String |
tweet_link |
CSS class used for URLs in the tweet text. |
userClass |
String |
tweet_user |
CSS class used for @user profile URLs in the tweet. |
hashtagClass |
String |
hashtag |
CSS class used for hashtag URLs in the tweet. |
target |
String |
_blank |
HTML target attribute for all generated <a> tags. |
searchWithHashtags |
Boolean |
true |
If true, hashtags link to x.com/hashtag/; if false, link to x.com/search?q=. |
parseUsers |
Boolean |
true |
Enables parsing of @user mentions if set to true. |
parseUrls |
Boolean |
true |
Enables parsing of URLs if set to true. |
parseHashtags |
Boolean |
true |
Enables parsing of hashtags if set to true. |
baseURL |
String |
https://x.com |
Base domain for generated links (e.g., https://x.com or https://twitter.com). |
hideUserSymbol |
Boolean |
false |
If true, hides the "@" symbol in displayed usernames. |
hideProtocol |
Boolean |
false |
If true, hides "https://" or "http://" in the displayed text for URLs, but keeps it in href. |
To start using tweetParser.js, apply it to your desired CSS selector. Here’s an example using the .tweet class:
<p class="tweet">This is my awesome tweet! #web #twitter @twitter https://www.twitter.com/</p>// Basic usage
tweetParser('.tweet');
// Usage with custom parameters
tweetParser('.tweet', {
urlClass: "tweet_link", // CSS class for URLs
userClass: "tweet_user", // CSS class for @user profiles
hashtagClass: "hashtag", // CSS class for hashtags
target: "_blank", // Open links in new tab
searchWithHashtags: true, // Hashtags link to hashtag search
parseUsers: true, // Parse @user mentions
parseHashtags: true, // Parse hashtags
parseUrls: true, // Parse URLs
baseURL: "https://x.com", // Base domain for links
hideUserSymbol: true, // Hide "@" symbol in usernames
hideProtocol: true // Hide "https://" in displayed URLs
});If jQuery is included, tweetParser.js can be used as a jQuery plugin:
<script src="path/to/jquery.min.js"></script>
<script src="path/to/tweetParser.min.js"></script>$('.tweet').tweetParser({
urlClass: "tweet_link",
userClass: "tweet_user",
hashtagClass: "hashtag",
target: "_blank",
searchWithHashtags: true,
parseUsers: true,
parseHashtags: true,
parseUrls: true,
baseURL: "https://x.com",
hideUserSymbol: true,
hideProtocol: true
});You can see the library in action in the live demo.
If you’d like to contribute:
- Star the repository on GitHub
- Report issues via the Issues page
- Tweet about it to share with others!
- Ensure your contribution solves a problem.
- For code quality, use JSLint before submitting.
- Keep your contributions small and focused.
- Added
baseURLparameter: Allows easy switching betweenx.comand soon vintagetwitter.com. - New
hideUserSymboloption: Hides the "@" symbol in usernames if set totrue. - New
hideProtocoloption: Hides "https://" or "http://" in displayed URLs, keeping the full URL inhref. - Remove bower support and uses. (was only used in demo).
- v2.2.0: Added Babel, ported to ES6 syntax.
- v2.1.3: Fixed target link parameter issue (#10).
- v2.1.2: Emoji support.
- v2.1.1: Wrapped tweetParser and jQuery compatibility into the same file (#9).
- v2.1.0: Introduced jQuery compatibility file for dual VanillaJS and jQuery support.
- v2.0.2: Code refactoring.
- v2.0.1: Firefox compatibility fix for
textContent. - v2.0.0: Removed jQuery dependencies, but maintained jQuery compatibility as an option.
tweetParser.js is licensed under the MIT License.
