autolinker
- Version 4.0.0
- Published
- 1.65 MB
- 1 dependency
- MIT license
Install
npm i autolinker
yarn add autolinker
pnpm add autolinker
Overview
Utility to automatically link the URLs, email addresses, phone numbers, hashtags, and mentions (Twitter, Instagram) in a given block of text/HTML
Index
Functions
Classes
Interfaces
Type Aliases
Functions
function excludeUnbalancedTrailingBracesAndPunctuation
excludeUnbalancedTrailingBracesAndPunctuation: (matchedText: string) => string;
Determines if a match found has unmatched closing parenthesis, square brackets or curly brackets. If so, these unbalanced symbol(s) will be removed from the URL match itself.
A match may have an extra closing parenthesis/square brackets/curly brackets at the end of the match because these are valid URL path characters. For example, "wikipedia.com/something_(disambiguation)" should be auto-linked.
However, an extra parenthesis *will* be included when the URL itself is wrapped in parenthesis, such as in the case of:
"(wikipedia.com/something_(disambiguation))"
In this case, the last closing parenthesis should *not* be part of the URL itself, and this method will exclude it from the returned URL.
For square brackets in URLs such as in PHP arrays, the same behavior as parenthesis discussed above should happen:
"[http://www.example.com/foo.php?bar[]=1&bar[]=2&bar[]=3]"
The very last closing square bracket should not be part of the URL itself, and therefore this method will remove it.
Parameter matchedText
The full matched URL/email/hashtag/etc. from the state machine parser. The updated matched text with extraneous suffix characters removed.
function parseMatches
parseMatches: (text: string, args: ParseMatchesArgs) => Match[];
Parses URL, email, twitter, mention, and hashtag matches from the given
text
.
Classes
class AbstractMatch
abstract class AbstractMatch {}
Autolinker.match.AbstractMatch
Represents a match found in an input string which should be Autolinked. A Match object is what is provided in a , and may be used to query for details about the match.
For example:
var input = "..."; // string with URLs, Email Addresses, and Mentions (Twitter, Instagram, Soundcloud)
var linkedText = Autolinker.link( input, { replaceFn : function( match ) { console.log( "href = ", match.getAnchorHref() ); console.log( "text = ", match.getAnchorText() );
switch( match.getType() ) { case 'url' : console.log( "url: ", match.getUrl() );
case 'email' : console.log( "email: ", match.getEmail() );
case 'mention' : console.log( "mention: ", match.getMention() ); } } } );
See the Autolinker class for more details on using the .
constructor
constructor(cfg: AbstractMatchConfig);
Autolinker.match.Match constructor
Parameter cfg
The configuration properties for the Match instance, specified in an Object (map).
property matchedText
protected readonly matchedText: string;
{String} matchedText (required)
The original text that was matched by the Autolinker.matcher.Matcher.
property type
abstract readonly type: MatchType;
{'url'/'email'/'hashtag'/'mention'/'phone'} type
A string name for the type of match that this class represents. Can be used in a TypeScript discriminating union to type-narrow from the
Match
type.Modifiers
@public
method buildTag
buildTag: () => HtmlTag;
Builds and returns an Autolinker.HtmlTag instance based on the Match.
This can be used to easily generate anchor tags from matches, and either return their HTML string, or modify them before doing so.
Example Usage:
var tag = match.buildTag(); tag.addClass( 'cordova-link' ); tag.setAttr( 'target', '_system' );
tag.toAnchorString(); // Google
Example Usage in Autolinker#replaceFn:
var html = Autolinker.link( "Test google.com", { replaceFn : function( match ) { var tag = match.buildTag(); // returns an Autolinker.HtmlTag instance tag.setAttr( 'rel', 'nofollow' );
return tag; } } );
// generated html: // Test google.com
method getAnchorHref
abstract getAnchorHref: () => string;
Returns the anchor href that should be generated for the match.
{String}
method getAnchorText
abstract getAnchorText: () => string;
Returns the anchor text that should be generated for the match.
{String}
method getCssClassSuffixes
getCssClassSuffixes: () => string[];
Returns the CSS class suffix(es) for this match.
A CSS class suffix is appended to the Autolinker#className in the Autolinker.AnchorTagBuilder when a match is translated into an anchor tag.
For example, if Autolinker#className was configured as 'myLink', and this method returns
[ 'url' ]
, the final class name of the element will become: 'myLink myLink-url'.The match may provide multiple CSS class suffixes to be appended to the Autolinker#className in order to facilitate better styling options for different match criteria. See Autolinker.match.Mention for an example.
By default, this method returns a single array with the match's name, but may be overridden by subclasses.
{String[]}
method getMatchedText
getMatchedText: () => string;
Returns the original text that was matched.
{String}
method getOffset
getOffset: () => number;
Returns the offset of where the match was made in the input string. This is the 0-based index of the match.
{Number}
method getType
abstract getType: () => MatchType;
Returns a string name for the type of match that this class represents.
Deprecated
Use instead which can assist in type-narrowing for TypeScript. {String}
method setOffset
setOffset: (offset: number) => void;
Sets the of where the match was made in the input string.
A Autolinker.matcher.Matcher will be fed only HTML text nodes, and will therefore set an original offset that is relative to the HTML text node itself. However, we want this offset to be relative to the full HTML input string, and thus if using Autolinker#parse (rather than calling a Autolinker.matcher.Matcher directly), then this offset is corrected after the Matcher itself has done its job.
Parameter offset
class AnchorTagBuilder
class AnchorTagBuilder {}
Autolinker.AnchorTagBuilder Object
Builds anchor (<a>) tags for the Autolinker utility when a match is found.
Normally this class is instantiated, configured, and used internally by an Autolinker instance, but may actually be used indirectly in a to create instances which may be modified before returning from the . For example:
var html = Autolinker.link( "Test google.com", { replaceFn : function( match ) { var tag = match.buildTag(); // returns an Autolinker.HtmlTag instance tag.setAttr( 'rel', 'nofollow' );
return tag; } } );
// generated html: // Test google.com
constructor
constructor(cfg?: AnchorTagBuilderCfg);
constructor
Parameter cfg
The configuration options for the AnchorTagBuilder instance, specified in an Object (map).
method build
build: (match: AbstractMatch) => HtmlTag;
Generates the actual anchor (<a>) tag to use in place of the matched text, via its
match
object.Parameter match
The Match instance to generate an anchor tag from. The HtmlTag instance for the anchor tag.
method createAttrs
protected createAttrs: (match: AbstractMatch) => { [attrName: string]: string };
Creates the Object (map) of the HTML attributes for the anchor (<a>) tag being generated.
Parameter match
The Match instance to generate an anchor tag from. A key/value Object (map) of the anchor tag's attributes.
method createCssClass
protected createCssClass: (match: AbstractMatch) => string;
Creates the CSS class that will be used for a given anchor tag, based on the
matchType
and the config.Example returns:
- "" // no - "myLink myLink-url" // url match - "myLink myLink-email" // email match - "myLink myLink-phone" // phone match - "myLink myLink-hashtag" // hashtag match - "myLink myLink-mention myLink-twitter" // mention match with Twitter service
Parameter match
The Match instance to generate an anchor tag from. The CSS class string for the link. Example return: "myLink myLink-url". If no was configured, returns an empty string.
class Autolinker
class Autolinker {}
Autolinker Object
Utility class used to process a given string of text, and wrap the matches in the appropriate anchor (<a>) tags to turn them into links.
Any of the configuration options may be provided in an Object provided to the Autolinker constructor, which will configure how the method will process the links.
For example:
var autolinker = new Autolinker( { newWindow : false, truncate : 30 } );
var html = autolinker.link( "Joe went to www.yahoo.com" ); // produces: 'Joe went to yahoo.com'
The method may also be used to inline options into a single call, which may be more convenient for one-off uses. For example:
var html = Autolinker.link( "Joe went to www.yahoo.com", { newWindow : false, truncate : 30 } ); // produces: 'Joe went to yahoo.com'
## Custom Replacements of Links
If the configuration options do not provide enough flexibility, a may be provided to fully customize the output of Autolinker. This function is called once for each URL/Email/Phone#/Hashtag/Mention (Twitter, Instagram, Soundcloud) match that is encountered.
For example:
var input = "..."; // string with URLs, Email Addresses, Phone #s, Hashtags, and Mentions (Twitter, Instagram, Soundcloud)
var linkedText = Autolinker.link( input, { replaceFn : function( match ) { console.log( "href = ", match.getAnchorHref() ); console.log( "text = ", match.getAnchorText() );
switch( match.getType() ) { case 'url' : console.log( "url: ", match.getUrl() );
if( match.getUrl().indexOf( 'mysite.com' ) === -1 ) { var tag = match.buildTag(); // returns an
Autolinker.HtmlTag
instance, which provides mutator methods for easy changes tag.setAttr( 'rel', 'nofollow' ); tag.addClass( 'external-link' );return tag;
} else { return true; // let Autolinker perform its normal anchor tag replacement }
case 'email' : var email = match.getEmail(); console.log( "email: ", email );
if( email === "my@own.address" ) { return false; // don't auto-link this particular email address; leave as-is } else { return; // no return value will have Autolinker perform its normal anchor tag replacement (same as returning
true
) }case 'phone' : var phoneNumber = match.getPhoneNumber(); console.log( phoneNumber );
return '' + phoneNumber + '';
case 'hashtag' : var hashtag = match.getHashtag(); console.log( hashtag );
return '' + hashtag + '';
case 'mention' : var mention = match.getMention(); console.log( mention );
return '' + mention + ''; } } } );
The function may return the following values:
-
true
(Boolean): Allow Autolinker to replace the match as it normally would. -false
(Boolean): Do not replace the current match at all - leave as-is. - Any String: If a string is returned from the function, the string will be used directly as the replacement HTML for the match. - An Autolinker.HtmlTag instance, which can be used to build/modify an HTML tag before writing out its HTML text.
constructor
constructor(cfg?: AutolinkerConfig);
constructor
Parameter cfg
The configuration options for the Autolinker instance, specified in an Object (map).
property version
static readonly version: string;
{String} version
The Autolinker version number in the form major.minor.patch
Ex: 3.15.0
property version
readonly version: string;
The Autolinker version number exposed on the instance itself.
Ex: 0.25.1
{String} version
method link
static link: (textOrHtml: string, options?: AutolinkerConfig) => string;
Automatically links URLs, Email addresses, Phone Numbers, Twitter handles, Hashtags, and Mentions found in the given chunk of HTML. Does not link URLs found within HTML tags.
For instance, if given the text:
You should go to http://www.yahoo.com
, then the result will beYou should go to <a href="http://www.yahoo.com">http://www.yahoo.com</a>
Example:
var linkedText = Autolinker.link( "Go to google.com", { newWindow: false } ); // Produces: "Go to google.com"
Parameter textOrHtml
The HTML or text to find matches within (depending on if the , , , , , and options are enabled).
Parameter options
Any of the configuration options for the Autolinker class, specified in an Object (map). See the class description for an example call. {String} The HTML text, with matches automatically linked.
Automatically links URLs, Email addresses, Phone numbers, Hashtags, and Mentions (Twitter, Instagram, Soundcloud) found in the given chunk of HTML. Does not link URLs found within HTML tags.
For instance, if given the text:
You should go to http://www.yahoo.com
, then the result will be `You should go to <a href="http://www.yahoo.com">http://www.yahoo.com</a>`This method finds the text around any HTML elements in the input
textOrHtml
, which will be the text that is processed. Any original HTML elements will be left as-is, as well as the text that is already wrapped in anchor (<a>) tags.Parameter textOrHtml
The HTML or text to autolink matches within (depending on if the , , , , and options are enabled). {String} The HTML, with matches automatically linked.
method parse
static parse: (textOrHtml: string, options: AutolinkerConfig) => Match[];
Parses the input
textOrHtml
looking for URLs, email addresses, phone numbers, username handles, and hashtags (depending on the configuration of the Autolinker instance), and returns an array of Autolinker.match.Match objects describing those matches (without making any replacements).Note that if parsing multiple pieces of text, it is slightly more efficient to create an Autolinker instance, and use the instance-level method.
Example:
var matches = Autolinker.parse( "Hello google.com, I am asdf@asdf.com", { urls: true, email: true } );
console.log( matches.length ); // 2 console.log( matches[ 0 ].getType() ); // 'url' console.log( matches[ 0 ].getUrl() ); // 'google.com' console.log( matches[ 1 ].getType() ); // 'email' console.log( matches[ 1 ].getEmail() ); // 'asdf@asdf.com'
Parameter textOrHtml
The HTML or text to find matches within (depending on if the , , , , and options are enabled).
Parameter options
Any of the configuration options for the Autolinker class, specified in an Object (map). See the class description for an example call. {Autolinker.match.Match[]} The array of Matches found in the given input
textOrHtml
.Parses the input
textOrHtml
looking for URLs, email addresses, phone numbers, username handles, and hashtags (depending on the configuration of the Autolinker instance), and returns an array of Autolinker.match.Match objects describing those matches (without making any replacements).This method is used by the method, but can also be used to simply do parsing of the input in order to discover what kinds of links there are and how many.
Example usage:
var autolinker = new Autolinker( { urls: true, email: true } );
var matches = autolinker.parse( "Hello google.com, I am asdf@asdf.com" );
console.log( matches.length ); // 2 console.log( matches[ 0 ].getType() ); // 'url' console.log( matches[ 0 ].getUrl() ); // 'google.com' console.log( matches[ 1 ].getType() ); // 'email' console.log( matches[ 1 ].getEmail() ); // 'asdf@asdf.com'
Parameter textOrHtml
The HTML or text to find matches within (depending on if the , , , , and options are enabled). {Autolinker.match.Match[]} The array of Matches found in the given input
textOrHtml
.
class EmailMatch
class EmailMatch extends AbstractMatch {}
Autolinker.match.Email Autolinker.match.AbstractMatch
Represents a Email match found in an input string which should be Autolinked.
See this class's superclass (Autolinker.match.Match) for more details.
constructor
constructor(cfg: EmailMatchConfig);
constructor
Parameter cfg
The configuration properties for the Match instance, specified in an Object (map).
property type
readonly type: string;
{'email'} type
A string name for the type of match that this class represents. Can be used in a TypeScript discriminating union to type-narrow from the
Match
type.Modifiers
@public
method getAnchorHref
getAnchorHref: () => string;
Returns the anchor href that should be generated for the match.
{String}
method getAnchorText
getAnchorText: () => string;
Returns the anchor text that should be generated for the match.
{String}
method getEmail
getEmail: () => string;
Returns the email address that was matched.
{String}
method getType
getType: () => 'email';
Returns a string name for the type of match that this class represents. For the case of EmailMatch, returns 'email'.
{String}
class HashtagMatch
class HashtagMatch extends AbstractMatch {}
Autolinker.match.Hashtag Autolinker.match.AbstractMatch
Represents a Hashtag match found in an input string which should be Autolinked.
See this class's superclass (Autolinker.match.Match) for more details.
constructor
constructor(cfg: HashtagMatchConfig);
constructor
Parameter cfg
The configuration properties for the Match instance, specified in an Object (map).
property type
readonly type: string;
{'hashtag'} type
A string name for the type of match that this class represents. Can be used in a TypeScript discriminating union to type-narrow from the
Match
type.Modifiers
@public
method getAnchorHref
getAnchorHref: () => string;
Returns the anchor href that should be generated for the match.
{String}
method getAnchorText
getAnchorText: () => string;
Returns the anchor text that should be generated for the match.
{String}
method getCssClassSuffixes
getCssClassSuffixes: () => string[];
Returns the CSS class suffixes that should be used on a tag built with the match. See Autolinker.match.Match#getCssClassSuffixes for details.
{String[]}
method getHashtag
getHashtag: () => string;
Returns the matched hashtag, without the '#' character.
{String}
method getServiceName
getServiceName: () => HashtagService;
Returns the configured to point the HashtagMatch to. Ex: 'facebook', 'twitter'.
{String}
method getType
getType: () => 'hashtag';
Returns a string name for the type of match that this class represents. For the case of HashtagMatch, returns 'hashtag'.
{String}
class HtmlTag
class HtmlTag {}
Autolinker.HtmlTag Object
Represents an HTML tag, which can be used to easily build/modify HTML tags programmatically.
Autolinker uses this abstraction to create HTML tags, and then write them out as strings. You may also use this class in your code, especially within a .
## Examples
Example instantiation:
var tag = new Autolinker.HtmlTag( { tagName : 'a', attrs : { 'href': 'http://google.com', 'class': 'external-link' }, innerHtml : 'Google' } );
tag.toAnchorString(); // Google
// Individual accessor methods tag.getTagName(); // 'a' tag.getAttr( 'href' ); // 'http://google.com' tag.hasClass( 'external-link' ); // true
Using mutator methods (which may be used in combination with instantiation config properties):
var tag = new Autolinker.HtmlTag(); tag.setTagName( 'a' ); tag.setAttr( 'href', 'http://google.com' ); tag.addClass( 'external-link' ); tag.setInnerHtml( 'Google' );
tag.getTagName(); // 'a' tag.getAttr( 'href' ); // 'http://google.com' tag.hasClass( 'external-link' ); // true
tag.toAnchorString(); // Google
## Example use within a
var html = Autolinker.link( "Test google.com", { replaceFn : function( match ) { var tag = match.buildTag(); // returns an Autolinker.HtmlTag instance, configured with the Match's href and anchor text tag.setAttr( 'rel', 'nofollow' );
return tag; } } );
// generated html: // Test google.com
## Example use with a new tag for the replacement
var html = Autolinker.link( "Test google.com", { replaceFn : function( match ) { var tag = new Autolinker.HtmlTag( { tagName : 'button', attrs : { 'title': 'Load URL: ' + match.getAnchorHref() }, innerHtml : 'Load URL: ' + match.getAnchorText() } );
return tag; } } );
// generated html: // Test Load URL: google.com
constructor
constructor(cfg?: HtmlTagCfg);
constructor
Parameter cfg
The configuration properties for this class, in an Object (map)
method addClass
addClass: (cssClass: string) => this;
Convenience method to add one or more CSS classes to the HtmlTag. Will not add duplicate CSS classes.
Parameter cssClass
One or more space-separated CSS classes to add. {Autolinker.HtmlTag} This HtmlTag instance, so that method calls may be chained.
method buildAttrsStr
protected buildAttrsStr: () => string;
Support method for , returns the string space-separated key="value" pairs, used to populate the stringified HtmlTag.
{String} Example return:
attr1="value1" attr2="value2"
method getAttr
getAttr: (attrName: string) => string;
Retrieves an attribute from the HtmlTag. If the attribute does not exist, returns
undefined
.Parameter attrName
The attribute name to retrieve. {String} The attribute's value, or
undefined
if it does not exist on the HtmlTag.
method getAttrs
getAttrs: () => { [key: string]: string };
Retrieves the attributes Object (map) for the HtmlTag.
{Object.<String, String>} A key/value object of the attributes for the HtmlTag.
method getClass
getClass: () => string;
Convenience method to retrieve the CSS class(es) for the HtmlTag, which will each be separated by spaces when there are multiple.
{String}
method getInnerHtml
getInnerHtml: () => string;
Backward compatibility method name.
{String}
method getInnerHTML
getInnerHTML: () => string;
Retrieves the inner HTML for the tag.
{String}
method getTagName
getTagName: () => string;
Retrieves the tag name.
{String}
method hasClass
hasClass: (cssClass: string) => boolean;
Convenience method to check if the tag has a CSS class or not.
Parameter cssClass
The CSS class to check for. {Boolean}
true
if the HtmlTag has the CSS class,false
otherwise.
method removeClass
removeClass: (cssClass: string) => this;
Convenience method to remove one or more CSS classes from the HtmlTag.
Parameter cssClass
One or more space-separated CSS classes to remove. {Autolinker.HtmlTag} This HtmlTag instance, so that method calls may be chained.
method setAttr
setAttr: (attrName: string, attrValue: string) => this;
Sets an attribute on the HtmlTag.
Parameter attrName
The attribute name to set.
Parameter attrValue
The attribute value to set. {Autolinker.HtmlTag} This HtmlTag instance, so that method calls may be chained.
method setAttrs
setAttrs: (attrs: { [attr: string]: string }) => this;
Sets one or more attributes on the HtmlTag.
Parameter attrs
A key/value Object (map) of the attributes to set. {Autolinker.HtmlTag} This HtmlTag instance, so that method calls may be chained.
method setClass
setClass: (cssClass: string) => this;
Sets the provided
cssClass
, overwriting any current CSS classes on the HtmlTag.Parameter cssClass
One or more space-separated CSS classes to set (overwrite). {Autolinker.HtmlTag} This HtmlTag instance, so that method calls may be chained.
method setInnerHtml
setInnerHtml: (html: string) => this;
Backwards compatibility method name.
Parameter html
The inner HTML to set. {Autolinker.HtmlTag} This HtmlTag instance, so that method calls may be chained.
method setInnerHTML
setInnerHTML: (html: string) => this;
Sets the inner HTML for the tag.
Parameter html
The inner HTML to set. {Autolinker.HtmlTag} This HtmlTag instance, so that method calls may be chained.
method setTagName
setTagName: (tagName: string) => this;
Sets the tag name that will be used to generate the tag with.
Parameter tagName
{Autolinker.HtmlTag} This HtmlTag instance, so that method calls may be chained.
method toAnchorString
toAnchorString: () => string;
Generates the HTML string for the tag.
{String}
class MentionMatch
class MentionMatch extends AbstractMatch {}
Autolinker.match.Mention Autolinker.match.AbstractMatch
Represents a Mention match found in an input string which should be Autolinked.
See this class's superclass (Autolinker.match.Match) for more details.
constructor
constructor(cfg: MentionMatchConfig);
constructor
Parameter cfg
The configuration properties for the Match instance, specified in an Object (map).
property type
readonly type: string;
{'mention'} type
A string name for the type of match that this class represents. Can be used in a TypeScript discriminating union to type-narrow from the
Match
type.Modifiers
@public
method getAnchorHref
getAnchorHref: () => string;
Returns the anchor href that should be generated for the match.
{String}
method getAnchorText
getAnchorText: () => string;
Returns the anchor text that should be generated for the match.
{String}
method getCssClassSuffixes
getCssClassSuffixes: () => string[];
Returns the CSS class suffixes that should be used on a tag built with the match. See Autolinker.match.Match#getCssClassSuffixes for details.
{String[]}
method getMention
getMention: () => string;
Returns the mention, without the '@' character.
{String}
method getServiceName
getServiceName: () => MentionService;
Returns the configured to point the mention to. Ex: 'instagram', 'twitter', 'soundcloud'.
{String}
method getType
getType: () => 'mention';
Returns a string name for the type of match that this class represents. For the case of MentionMatch, returns 'mention'.
{String}
class PhoneMatch
class PhoneMatch extends AbstractMatch {}
Autolinker.match.Phone Autolinker.match.AbstractMatch
Represents a Phone number match found in an input string which should be Autolinked.
See this class's superclass (Autolinker.match.Match) for more details.
constructor
constructor(cfg: PhoneMatchConfig);
constructor
Parameter cfg
The configuration properties for the Match instance, specified in an Object (map).
property type
readonly type: string;
{'phone'} type
A string name for the type of match that this class represents. Can be used in a TypeScript discriminating union to type-narrow from the
Match
type.Modifiers
@public
method getAnchorHref
getAnchorHref: () => string;
Returns the anchor href that should be generated for the match.
{String}
method getAnchorText
getAnchorText: () => string;
Returns the anchor text that should be generated for the match.
{String}
method getNumber
getNumber: () => string;
Alias of , returns the phone number that was matched as a string, without any delimiter characters.
Note: This is a string to allow for prefixed 0's.
{String}
method getPhoneNumber
getPhoneNumber: () => string;
Returns the phone number that was matched as a string, without any delimiter characters.
Note: This is a string to allow for prefixed 0's.
{String}
method getType
getType: () => 'phone';
Returns a string name for the type of match that this class represents. For the case of PhoneMatch, returns 'phone'.
{String}
class UrlMatch
class UrlMatch extends AbstractMatch {}
Autolinker.match.Url Autolinker.match.AbstractMatch
Represents a Url match found in an input string which should be Autolinked.
See this class's superclass (Autolinker.match.Match) for more details.
constructor
constructor(cfg: UrlMatchConfig);
constructor
Parameter cfg
The configuration properties for the Match instance, specified in an Object (map).
property type
readonly type: string;
{'url'} type
A string name for the type of match that this class represents. Can be used in a TypeScript discriminating union to type-narrow from the
Match
type.Modifiers
@public
method getAnchorHref
getAnchorHref: () => string;
Returns the anchor href that should be generated for the match.
{String}
method getAnchorText
getAnchorText: () => string;
Returns the anchor text that should be generated for the match.
{String}
method getType
getType: () => 'url';
Returns a string name for the type of match that this class represents. For the case of UrlMatch, returns 'url'.
{String}
method getUrl
getUrl: () => string;
Returns the url that was matched, assuming the protocol to be 'http://' if the original match was missing a protocol.
{String}
method getUrlMatchType
getUrlMatchType: () => UrlMatchType;
Returns a string name for the type of URL match that this class represents.
This helps to determine if the match was made in the original text with a prefixed scheme (ex: 'http://www.google.com'), a prefixed 'www' (ex: 'www.google.com'), or was matched by a known top-level domain (ex: 'google.com').
{"scheme"/"www"/"tld"}
Interfaces
interface AbstractMatchConfig
interface AbstractMatchConfig {}
property matchedText
matchedText: string;
property offset
offset: number;
property tagBuilder
tagBuilder: AnchorTagBuilder;
interface AnchorTagBuilderCfg
interface AnchorTagBuilderCfg {}
interface AutolinkerConfig
interface AutolinkerConfig {}
property className
className?: string;
property context
context?: any;
property decodePercentEncoding
decodePercentEncoding?: boolean;
property email
email?: boolean;
property hashtag
hashtag?: HashtagConfig;
property mention
mention?: MentionConfig;
property newWindow
newWindow?: boolean;
property phone
phone?: boolean;
property replaceFn
replaceFn?: ReplaceFn | null;
property sanitizeHtml
sanitizeHtml?: boolean;
property stripPrefix
stripPrefix?: StripPrefixConfig;
property stripTrailingSlash
stripTrailingSlash?: boolean;
property truncate
truncate?: TruncateConfig;
property urls
urls?: UrlsConfig;
interface EmailMatchConfig
interface EmailMatchConfig extends AbstractMatchConfig {}
property email
email: string;
interface HashtagMatchConfig
interface HashtagMatchConfig extends AbstractMatchConfig {}
property hashtag
hashtag: string;
property serviceName
serviceName: HashtagService;
interface HtmlTagCfg
interface HtmlTagCfg {}
interface MentionMatchConfig
interface MentionMatchConfig extends AbstractMatchConfig {}
property mention
mention: string;
property serviceName
serviceName: MentionService;
interface ParseMatchesArgs
interface ParseMatchesArgs {}
property decodePercentEncoding
decodePercentEncoding: boolean;
property hashtagServiceName
hashtagServiceName: HashtagService;
property mentionServiceName
mentionServiceName: MentionService;
property stripPrefix
stripPrefix: Required<StripPrefixConfigObj>;
property stripTrailingSlash
stripTrailingSlash: boolean;
property tagBuilder
tagBuilder: AnchorTagBuilder;
interface PhoneMatchConfig
interface PhoneMatchConfig extends AbstractMatchConfig {}
interface StripPrefixConfigObj
interface StripPrefixConfigObj {}
interface TruncateConfigObj
interface TruncateConfigObj {}
interface UrlMatchConfig
interface UrlMatchConfig extends AbstractMatchConfig {}
property decodePercentEncoding
decodePercentEncoding: boolean;
property protocolRelativeMatch
protocolRelativeMatch: boolean;
property stripPrefix
stripPrefix: Required<StripPrefixConfigObj>;
property stripTrailingSlash
stripTrailingSlash: boolean;
property url
url: string;
property urlMatchType
urlMatchType: UrlMatchType;
interface UrlsConfigObj
interface UrlsConfigObj {}
property ipV4Matches
ipV4Matches?: boolean;
property schemeMatches
schemeMatches?: boolean;
property tldMatches
tldMatches?: boolean;
Type Aliases
type HashtagConfig
type HashtagConfig = false | HashtagService;
type Match
type Match = EmailMatch | HashtagMatch | MentionMatch | PhoneMatch | UrlMatch;
type MatchType
type MatchType = 'email' | 'hashtag' | 'mention' | 'phone' | 'url';
type MentionConfig
type MentionConfig = false | MentionService;
type ReplaceFn
type ReplaceFn = (match: Match) => ReplaceFnReturn;
type ReplaceFnReturn
type ReplaceFnReturn = boolean | string | HtmlTag | null | undefined | void;
type StripPrefixConfig
type StripPrefixConfig = boolean | StripPrefixConfigObj;
type TruncateConfig
type TruncateConfig = number | TruncateConfigObj;
type UrlMatchType
type UrlMatchType = 'scheme' | 'tld' | 'ipV4';
type UrlsConfig
type UrlsConfig = boolean | UrlsConfigObj;
Package Files (12)
- dist/commonjs/anchor-tag-builder.d.ts
- dist/commonjs/autolinker.d.ts
- dist/commonjs/html-tag.d.ts
- dist/commonjs/index.d.ts
- dist/commonjs/match/abstract-match.d.ts
- dist/commonjs/match/email-match.d.ts
- dist/commonjs/match/hashtag-match.d.ts
- dist/commonjs/match/match.d.ts
- dist/commonjs/match/mention-match.d.ts
- dist/commonjs/match/phone-match.d.ts
- dist/commonjs/match/url-match.d.ts
- dist/commonjs/parser/parse-matches.d.ts
Dependencies (1)
Dev Dependencies (38)
- @rollup/plugin-commonjs
- @rollup/plugin-node-resolve
- @types/cli-table
- @types/dedent
- @types/fs-extra
- @types/jasmine
- @types/jquery
- @types/lodash
- @types/node
- @types/webpack
- axios
- cli-table
- css-loader
- dedent
- fast-glob
- fs-extra
- html-webpack-plugin
- husky
- jasmine
- jsduck
- lint-staged
- lodash
- mkdirp
- npm
- npm-run-all
- prettier
- punycode
- puppeteer
- rimraf
- rollup
- style-loader
- terser
- ts-loader
- ts-node
- typescript
- webpack
- webpack-cli
- webpack-dev-server
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/autolinker
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/autolinker)
- HTML<a href="https://www.jsdocs.io/package/autolinker"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 3063 ms. - Missing or incorrect documentation? Open an issue for this package.