Skip to content

holidaycheck/delta-detect-links

Repository files navigation

NPM Version Build Status Dependencies

delta-detect-links

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.

API

detectLinks

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.

Options

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 with skipTrailingMatch. 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.

detectLinksDelta

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' } } ]