Detect links in a delta object.
This small library is based on linkify-it
to detect links in a rich text Delta
object.
The main purpose for this library is to automatically detect links in Quill documents.
This function detects all links in the given insert
-only delta object.
const detectLinks = require('delta-detect-links');
detectLinks((new Delta()).insert('Visit www.example.com\n'));
// → [ { insert: 'Visit ' }, { insert: 'www.example.com', attributes: { link: 'http://www.example.com' } }, { insert: '\n' } ]
Already existing links in the given delta object will be skipped and not highlighted a second time.
detectLinks
supports an optional second parameter to set the following options:
skipTrailingMatch
(default:false
): This is useful when you want to detect links in real-time while the user types. In order to prevent detection of partial links the link will only be detected after another stop word has been encountered.lastIndex
: This option is only used in combination withskipTrailingMatch
. This value is used to determine the trailing match. It is useful in scenarios where the current cursor is not at the same position as the end of the document.
Similar to detectLinks
but only contains the changes delta object.
const detectLinksDelta = require('delta-detect-links').detectLinksDelta;
detectLinksDelta((new Delta()).insert('Visit www.example.com\n'));
// → [ { retain: 6 }, { retain: 15, attributes: { link: 'http://www.example.com' } } ]