docs: improve the link mark example, fix #1277

This commit is contained in:
Hans Pagel 2021-09-16 20:34:21 +02:00
parent 63d8e84451
commit b901669803
2 changed files with 32 additions and 4 deletions

View File

@ -1,10 +1,10 @@
<template> <template>
<div v-if="editor"> <div v-if="editor">
<button @click="setLink" :class="{ 'is-active': editor.isActive('link') }"> <button @click="setLink" :class="{ 'is-active': editor.isActive('link') }">
link setLink
</button> </button>
<button @click="editor.chain().focus().unsetLink().run()" v-if="editor.isActive('link')"> <button @click="editor.chain().focus().unsetLink().run()" v-if="editor.isActive('link')">
remove unsetLink
</button> </button>
<editor-content :editor="editor" /> <editor-content :editor="editor" />
</div> </div>
@ -36,7 +36,9 @@ export default {
Paragraph, Paragraph,
Text, Text,
Bold, Bold,
Link, Link.configure({
openOnClick: false,
}),
], ],
content: ` content: `
<p> <p>
@ -51,8 +53,27 @@ export default {
methods: { methods: {
setLink() { setLink() {
const url = window.prompt('URL') const previousUrl = this.editor.getAttributes('link').href
const url = window.prompt('URL', previousUrl)
// cancelled
if (url === null) {
return
}
// empty
if (url === '') {
this.editor
.chain()
.focus()
.extendMarkRange('link')
.unsetLink()
.run()
return
}
// update link
this.editor this.editor
.chain() .chain()
.focus() .focus()

View File

@ -36,6 +36,13 @@ yarn add @tiptap/extension-link
This extension doesnt bind a specific keyboard shortcut. You would probably open your custom UI on `Mod-k` though. This extension doesnt bind a specific keyboard shortcut. You would probably open your custom UI on `Mod-k` though.
::: :::
## Get the current value
Did you know that you can use [`getAttributes`](/api/editor#methods) to find out which attributes, for example which href, is currently set? Dont confuse it with a [command](/api/commands) (which changes the state), its just a method. Here is how that could look like:
```js
this.editor.getAttributes('link').href
```
## Source code ## Source code
[packages/extension-link/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-link/) [packages/extension-link/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-link/)