add optionalSlashSlash to protocol options (#3675)

* add optionalSlashSlash to protocol options

* Update documentation

* rename optionalSlashSlash to optionalSlashes

* regenerate package-lock.json with node v16
This commit is contained in:
taras-turchenko-moc 2023-02-27 15:03:47 +02:00 committed by GitHub
parent 82625644be
commit 1ac3070abc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 8 deletions

View File

@ -31,6 +31,18 @@ Link.configure({
})
```
By default, [linkify](https://linkify.js.org/docs/) adds `//` to the end of a protocol however this behavior can be changed by passing `optionalSlashes` option
```js
Link.configure({
protocols: [
{
scheme: 'tel',
optionalSlashes: true
}
]
})
```
### autolink
If enabled, it adds links as you type.

13
package-lock.json generated
View File

@ -12838,8 +12838,9 @@
}
},
"node_modules/linkifyjs": {
"version": "3.0.5",
"license": "MIT"
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.0.tgz",
"integrity": "sha512-Ffv8VoY3+ixI1b3aZ3O+jM6x17cOsgwfB1Wq7pkytbo1WlyRp6ZO0YDMqiWT/gQPY/CmtiGuKfzDIVqxh1aCTA=="
},
"node_modules/lint-staged": {
"version": "13.0.3",
@ -19712,7 +19713,7 @@
"version": "2.0.0-beta.218",
"license": "MIT",
"dependencies": {
"linkifyjs": "^3.0.5"
"linkifyjs": "^4.1.0"
},
"devDependencies": {
"@tiptap/core": "^2.0.0-beta.218",
@ -24646,7 +24647,7 @@
"requires": {
"@tiptap/core": "^2.0.0-beta.218",
"@tiptap/pm": "^2.0.0-beta.218",
"linkifyjs": "^3.0.5"
"linkifyjs": "^4.1.0"
}
},
"@tiptap/extension-list-item": {
@ -28977,7 +28978,9 @@
}
},
"linkifyjs": {
"version": "3.0.5"
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.0.tgz",
"integrity": "sha512-Ffv8VoY3+ixI1b3aZ3O+jM6x17cOsgwfB1Wq7pkytbo1WlyRp6ZO0YDMqiWT/gQPY/CmtiGuKfzDIVqxh1aCTA=="
},
"lint-staged": {
"version": "13.0.3",

View File

@ -37,7 +37,7 @@
"@tiptap/pm": "^2.0.0-beta.218"
},
"dependencies": {
"linkifyjs": "^3.0.5"
"linkifyjs": "^4.1.0"
},
"repository": {
"type": "git",

View File

@ -6,6 +6,11 @@ import { autolink } from './helpers/autolink'
import { clickHandler } from './helpers/clickHandler'
import { pasteHandler } from './helpers/pasteHandler'
export interface LinkProtocolOptions {
scheme: string;
optionalSlashes?: boolean;
}
export interface LinkOptions {
/**
* If enabled, it adds links as you type.
@ -14,7 +19,7 @@ export interface LinkOptions {
/**
* An array of custom protocols to be registered with linkifyjs.
*/
protocols: Array<string>
protocols: Array<LinkProtocolOptions | string>
/**
* If enabled, links will be opened on click.
*/
@ -62,7 +67,13 @@ export const Link = Mark.create<LinkOptions>({
keepOnSplit: false,
onCreate() {
this.options.protocols.forEach(registerCustomProtocol)
this.options.protocols.forEach(protocol => {
if (typeof protocol === 'string') {
registerCustomProtocol(protocol)
return
}
registerCustomProtocol(protocol.scheme, protocol.optionalSlashes)
})
},
onDestroy() {