/**
* @file The default values used throughout the linkifier classes.
* @author Bart Busschots <opensource@bartificer.ie>
*/
/**
* This module provides default values for use by the various linkifier functions and classes. These separated out for clarity, helping users decide which values to override or augment.
* @module defaults
* @requires module:LinkTemplate
* @requires module:utilities
*/
import { LinkTemplate } from './LinkTemplate.class.mjs';
import * as utilities from "./utilities.mjs";
/**
* The collection of named link templates loaded by the Linkifier constructor.
* @type {Object.<string, LinkTemplate>}
*/
export const linkTemplates = {
html: new LinkTemplate(
'<a href="{{{url}}}" title="{{description}}">{{text}}</a>',
[
['url', utilities.stripUTMParameters],
['text', utilities.regulariseWhitespace],
['description', utilities.regulariseWhitespace]
]
),
htmlNewTab: new LinkTemplate(
'<a href="{{{url}}}" title="{{description}}" target="_blank" rel="noopener">{{text}}</a>',
[
['url', utilities.stripUTMParameters],
['text', utilities.regulariseWhitespace],
['description', utilities.regulariseWhitespace]
]
),
markdown: new LinkTemplate(
'[{{{text}}}]({{{url}}})',
[
['url', utilities.stripUTMParameters],
['text', utilities.regulariseWhitespace]
]
)
};
/**
* The default list of words with special capitalisations.
* @type {string[]}
*/
export const speciallyCapitalisedWords = [
// generic acronyms
'FBI',
'CIA',
'USA',
'UK',
'EU',
'NASA',
'NSA',
'OS',
'OSes',
'ID',
'IDs',
'MLB',
'NFL',
'NASCAR',
'FIFA',
'TV',
'VR',
'BAFTA',
'BBC',
'AI',
'VP',
'II',
'III',
'IV',
// tech jargon
'iOS',
'macOS',
'iPhone',
'iPad',
'iPod',
'AirTag',
'iPadOS',
'watchOS',
'tvOS',
'CarPlay',
'AirPods',
'MacBook',
'iTunes',
'WWDC',
'XDR',
'XProtect',
'VESA',
'HDMI',
'DisplayPort',
'LinkedIn',
'ChatGPT'
];