fix: allow to remove autolinks with unsetLink

This commit is contained in:
Philipp Kühn
2022-01-07 21:33:38 +01:00
parent 5dbabebd6a
commit ea10ffbc6a
2 changed files with 17 additions and 7 deletions

View File

@@ -18,8 +18,9 @@ export function autolink(options: AutolinkOptions): Plugin {
appendTransaction: (transactions, oldState, newState) => {
const docChanges = transactions.some(transaction => transaction.docChanged)
&& !oldState.doc.eq(newState.doc)
const preventAutolink = transactions.some(transaction => transaction.getMeta('preventAutolink'))
if (!docChanges) {
if (!docChanges || preventAutolink) {
return
}

View File

@@ -92,16 +92,25 @@ export const Link = Mark.create<LinkOptions>({
addCommands() {
return {
setLink: attributes => ({ commands }) => {
return commands.setMark(this.name, attributes)
setLink: attributes => ({ chain }) => {
return chain()
.setMark(this.name, attributes)
.setMeta('preventAutolink', true)
.run()
},
toggleLink: attributes => ({ commands }) => {
return commands.toggleMark(this.name, attributes, { extendEmptyMarkRange: true })
toggleLink: attributes => ({ chain }) => {
return chain()
.toggleMark(this.name, attributes, { extendEmptyMarkRange: true })
.setMeta('preventAutolink', true)
.run()
},
unsetLink: () => ({ commands }) => {
return commands.unsetMark(this.name, { extendEmptyMarkRange: true })
unsetLink: () => ({ chain }) => {
return chain()
.unsetMark(this.name, { extendEmptyMarkRange: true })
.setMeta('preventAutolink', true)
.run()
},
}
},