From 86219a3ed17f5268e5aadd3cdbde0f8e50e3b4b1 Mon Sep 17 00:00:00 2001 From: Hans Pagel Date: Fri, 20 Nov 2020 13:56:52 +0100 Subject: [PATCH 01/18] test inline code keyboard shortcuts --- docs/src/demos/Marks/Bold/index.spec.js | 4 +- docs/src/demos/Marks/Code/index.spec.js | 19 +++ docs/src/demos/Marks/Highlight/index.spec.js | 4 +- docs/src/demos/Marks/Strike/index.spec.js | 4 +- docs/src/demos/Marks/Underline/index.spec.js | 4 +- docs/src/demos/Nodes/Blockquote/index.spec.js | 4 +- yarn.lock | 114 ------------------ 7 files changed, 29 insertions(+), 124 deletions(-) diff --git a/docs/src/demos/Marks/Bold/index.spec.js b/docs/src/demos/Marks/Bold/index.spec.js index afb9a369..2b27737f 100644 --- a/docs/src/demos/Marks/Bold/index.spec.js +++ b/docs/src/demos/Marks/Bold/index.spec.js @@ -56,14 +56,14 @@ context('/api/marks/bold', () => { cy.get('.ProseMirror strong').should('not.exist') }) - it('the keyboard shortcut should make the selected text bold', () => { + it('should make the selected text bold when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror') .trigger('keydown', { modKey: true, key: 'b' }) .find('strong') .should('contain', 'Example Text') }) - it('the keyboard shortcut should toggle the selected text bold', () => { + it('should toggle the selected text bold when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror') .trigger('keydown', { modKey: true, key: 'b' }) .find('strong') diff --git a/docs/src/demos/Marks/Code/index.spec.js b/docs/src/demos/Marks/Code/index.spec.js index de958cfa..107a7b3c 100644 --- a/docs/src/demos/Marks/Code/index.spec.js +++ b/docs/src/demos/Marks/Code/index.spec.js @@ -43,6 +43,25 @@ context('/api/marks/code', () => { .should('not.exist') }) + it('should make the selected text bold when the keyboard shortcut is pressed', () => { + cy.get('.ProseMirror') + .trigger('keydown', { modKey: true, key: 'e' }) + .find('code') + .should('contain', 'Example Text') + }) + + it('should toggle the selected text bold when the keyboard shortcut is pressed', () => { + cy.get('.ProseMirror') + .trigger('keydown', { modKey: true, key: 'e' }) + .find('code') + .should('contain', 'Example Text') + + cy.get('.ProseMirror') + .trigger('keydown', { modKey: true, key: 'e' }) + + cy.get('.ProseMirror code').should('not.exist') + }) + it('should make inline code from the markdown shortcut', () => { cy.get('.ProseMirror') .type('`Example`') diff --git a/docs/src/demos/Marks/Highlight/index.spec.js b/docs/src/demos/Marks/Highlight/index.spec.js index 7502fc38..f13d3ebb 100644 --- a/docs/src/demos/Marks/Highlight/index.spec.js +++ b/docs/src/demos/Marks/Highlight/index.spec.js @@ -122,14 +122,14 @@ context('/api/marks/highlight', () => { .should('not.exist') }) - it('the keyboard shortcut should highlight the selected text', () => { + it('should highlight the selected text when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror') .trigger('keydown', { modKey: true, shiftKey: true, key: 'h' }) .find('mark') .should('contain', 'Example Text') }) - it('the keyboard shortcut should toggle the selected text highlighted', () => { + it('should toggle the selected text highlighted when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror') .trigger('keydown', { modKey: true, shiftKey: true, key: 'h' }) .trigger('keydown', { modKey: true, shiftKey: true, key: 'h' }) diff --git a/docs/src/demos/Marks/Strike/index.spec.js b/docs/src/demos/Marks/Strike/index.spec.js index f5a30b00..c055871a 100644 --- a/docs/src/demos/Marks/Strike/index.spec.js +++ b/docs/src/demos/Marks/Strike/index.spec.js @@ -62,14 +62,14 @@ context('/api/marks/strike', () => { .should('not.exist') }) - it('the keyboard shortcut should strike the selected text', () => { + it('should strike the selected text when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror') .trigger('keydown', { modKey: true, shiftKey: true, key: 'x' }) .find('s') .should('contain', 'Example Text') }) - it('the keyboard shortcut should toggle the selected text striked', () => { + it('should toggle the selected text striked when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror') .trigger('keydown', { modKey: true, shiftKey: true, key: 'x' }) .trigger('keydown', { modKey: true, shiftKey: true, key: 'x' }) diff --git a/docs/src/demos/Marks/Underline/index.spec.js b/docs/src/demos/Marks/Underline/index.spec.js index b4c59adb..cbde8bae 100644 --- a/docs/src/demos/Marks/Underline/index.spec.js +++ b/docs/src/demos/Marks/Underline/index.spec.js @@ -48,14 +48,14 @@ context('/api/marks/underline', () => { .should('not.exist') }) - it('the keyboard shortcut should underline the selected text', () => { + it('should underline the selected text when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror') .trigger('keydown', { modKey: true, key: 'u' }) .find('u') .should('contain', 'Example Text') }) - it('the keyboard shortcut should toggle the selected text underline', () => { + it('should toggle the selected text underline when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror') .trigger('keydown', { modKey: true, key: 'u' }) .trigger('keydown', { modKey: true, key: 'u' }) diff --git a/docs/src/demos/Nodes/Blockquote/index.spec.js b/docs/src/demos/Nodes/Blockquote/index.spec.js index 69eed814..a1ab4b8d 100644 --- a/docs/src/demos/Nodes/Blockquote/index.spec.js +++ b/docs/src/demos/Nodes/Blockquote/index.spec.js @@ -71,14 +71,14 @@ context('/api/nodes/blockquote', () => { .should('not.exist') }) - it('the keyboard shortcut should make the selected line a blockquote', () => { + it('should make the selected line a blockquote when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror') .trigger('keydown', { shiftKey: true, modKey: true, key: 'b' }) .find('blockquote') .should('contain', 'Example Text') }) - it('the keyboard shortcut should toggle the blockquote', () => { + it('should toggle the blockquote when the keyboard shortcut is pressed', () => { cy.get('.ProseMirror blockquote') .should('not.exist') diff --git a/yarn.lock b/yarn.lock index 87ea8f91..a787828f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2144,120 +2144,6 @@ dependencies: defer-to-connect "^1.0.1" -"@tiptap/extension-blockquote@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-1.0.0-alpha.2.tgz#977d278895ffe1d6bdb2ba4e5ffcd29ac13db292" - integrity sha512-baZ3XG9RhClDdAgJMR8eviGFVjkaOYVK65+rJchEfpAyaF4Xh5ZeGFBqjdeLrTVp2R6z47pfIo+j+tV7eN6Clw== - dependencies: - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-bold@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-1.0.0-alpha.2.tgz#70f9a399d7d5b2d12a4d059b4c39721b9ef52f15" - integrity sha512-bV84t0No4xbsIbshlJUtmnYoFOvBy+KjTGBvDCNXtMqguRu8+d6VH2Y+Uc7GGQZwOEimtnUvT+k98MoBPWmB4w== - -"@tiptap/extension-bullet-list@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-1.0.0-alpha.2.tgz#39fc70ac36de408b79285a8693c184595cbc6da1" - integrity sha512-d3pjeVBmMk4ucOqexiMQ3aDaxD7r03/nYydAw60t1tPnkwg+3pz91XL0DU2l1n1ErwGz0XZ366WuSPNp1m2SyQ== - dependencies: - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-code-block@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-1.0.0-alpha.2.tgz#87d6d5bbbb4c7a874092be209cdc286a62ebd439" - integrity sha512-/Lgmrfvujwehukdvyr7afAqHQO6t8Am74DvXZcLFzfoITZVgmJoo/l9y56znBG9Li07QohMKSHuIl7Vj7K26IQ== - dependencies: - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-code@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-1.0.0-alpha.2.tgz#baee72d703c4a95622b5c283338fb35cbc2f266b" - integrity sha512-3iW2AWgGsb7RWUyYLu3sbK+W8HBIFVOXRaUsLNY7kA4r9pObDJ5yFSu6sDNcJFn6uNUjHAqUcR/puyZRA2nl8g== - -"@tiptap/extension-document@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-1.0.0-alpha.2.tgz#c9e959b1a60502fdf8ed0b58a6f65e83bebd1fd1" - integrity sha512-q7jWy3TbnzP/ElNVbndPuHowhbK+bnL7OZ87H8UiqWAMrYcNhlZ17bU/C+twtJG/hjHMBMjWPrDkFIzRFC13Yw== - -"@tiptap/extension-dropcursor@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-1.0.0-alpha.2.tgz#3f21457bc66568627f3ae39efe5dd045f885144d" - integrity sha512-v9S3Y1oW7gTu8Tpk010BLgijf0GiJ/VtA44SYYq/quVHn4nRhVnuep3WsGlZZG9vj03vhHs6QDo94fqYE7a6Nw== - dependencies: - "@types/prosemirror-dropcursor" "^1.0.0" - prosemirror-dropcursor "^1.1.3" - -"@tiptap/extension-gapcursor@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-1.0.0-alpha.2.tgz#9f894087ad03d6c564a3f9b95de924d96be26f5d" - integrity sha512-QsZZnbD7y8yVESCQyKiSk4kJhC8NN4Fg3N6U+RQ8VxcESStoYnc63wwHg2QfvRHqlSvAnd4MypSeArk9UAfsKw== - dependencies: - "@types/prosemirror-gapcursor" "^1.0.1" - prosemirror-gapcursor "^1.1.5" - -"@tiptap/extension-hard-break@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-1.0.0-alpha.2.tgz#039b1e8fa24c754c0a060479b4feafcd20b077ae" - integrity sha512-ymmTgR/XLI7eFAY89QlAc6tTqPaVZvCCxKSmIFPeYIMu2msEOxR2xEW/aCWG3YWP2+fhJxZG0fxrgHpVKUsRNw== - -"@tiptap/extension-heading@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-1.0.0-alpha.2.tgz#34f81d0d36d5f66e94c30baaec7388670e0fd412" - integrity sha512-5ZZOowKp+pnL2xxUkaJgphCvif9W4Oj5CaOHccUnrK2jLrzx2Uv2qHHh+jsl1st13ctuIh3tXRRIKWEOaWzggg== - dependencies: - "@types/prosemirror-inputrules" "^1.0.3" - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-history@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-1.0.0-alpha.2.tgz#55b547b7fb6d243b131bddf7b7d14319190aa091" - integrity sha512-+cbwlc2KuDQSuRXGgfeSTUz3QRapVUJQH0U39lrMMgEv5kAOv3rkdZHUrHpbYEwTscril1HJWhvNa5qHB4laYA== - dependencies: - prosemirror-history "^1.1.3" - -"@tiptap/extension-horizontal-rule@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-1.0.0-alpha.2.tgz#cca4f04b45587d2d81bb21b4a93ad957f219241a" - integrity sha512-LLCnM4xtF5l1oiW+hBTfZHLu8U8AVua1cxMqC5Pw9wrYGLHLEq/bDBuxkzWfSXDkEnAsWufqfXiLIX86f4XrQw== - -"@tiptap/extension-italic@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-1.0.0-alpha.2.tgz#3e57ed8311ae5bf01c5b210538affd4641b6f294" - integrity sha512-63zgxJZTuoc4mmp76FspZLNxL/5eA+pA4n2Xflhtm8zkGV7BCbkg0N+unGFUYsQldxKTz6EePQhcLkBRq1kO1Q== - -"@tiptap/extension-list-item@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-1.0.0-alpha.2.tgz#36f50aa70f3ac66c8aeb04b9850db139e2f413e7" - integrity sha512-ta32iPn4zZZxeHlWoZkCmKZ5wNehYmG0SqZD8xmU1VZR58ly2TRL+VRhPGvQnE9rcyj6eh+ycx8oB9D6UCbNBA== - -"@tiptap/extension-ordered-list@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-1.0.0-alpha.2.tgz#e7826859cdf905f3a974f5331df75afe26302f33" - integrity sha512-kM8PKLEAxVHB4yjpK5+TFc8jiNKUSwEFc/XTSq//vE1eyG8d4rT0opWM7TGS75x+6nsFZXJzI38sGLN6hZYN7A== - dependencies: - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-paragraph@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-1.0.0-alpha.2.tgz#141401cb854ac53e14adc8f5ff0f64d35fa0aa80" - integrity sha512-7wipqmPQLhs/5261rrFggd19j0NBZCgH31ORlg1AZ8sSo9JYSply9iuPuweipf8W19uO+ttz/JALa2FtoMrnrg== - -"@tiptap/extension-strike@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-1.0.0-alpha.2.tgz#caa91b474335fbcb8eae50494cfa8caf0dad0e09" - integrity sha512-nsQXDag12DHs8DjK+l6+QdSZJlF9cjXrqLWiK0d8lFi9plGBKNMKsAME2mmRHeHiyXzdX8swlIbrK/64UjgGlg== - -"@tiptap/extension-text@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-1.0.0-alpha.2.tgz#0f7ea8ef3d938e0c2f5c3be6884ed6275cbc2402" - integrity sha512-sC65YAPp+iVICrdWCVhxwC5EZxms26yUrCOJ8iXAF/lYGO19EheDfaMWmxYLoUvCq6PB/YqMLgrjmmGQCalYHA== - -"@tiptap/extension-underline@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-underline/-/extension-underline-1.0.0-alpha.2.tgz#28470bc5b405dd7ee5ff86cc480c0aec62b528bf" - integrity sha512-L8IJET3elmyk8/gNB11IfpQo1y990mF/l/a7VSI00190wspVRHZjjEwmzBRj2G5kyK4nZvF5NWj4b6d8SuwIMQ== - "@types/babel-types@*", "@types/babel-types@^7.0.0": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.9.tgz#01d7b86949f455402a94c788883fe4ba574cad41" From f2ca973278963a5fa15fea743bac8512d15a0245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 20 Nov 2020 15:25:14 +0100 Subject: [PATCH 02/18] update lock file --- yarn.lock | 114 ------------------------------------------------------ 1 file changed, 114 deletions(-) diff --git a/yarn.lock b/yarn.lock index 87ea8f91..a787828f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2144,120 +2144,6 @@ dependencies: defer-to-connect "^1.0.1" -"@tiptap/extension-blockquote@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-1.0.0-alpha.2.tgz#977d278895ffe1d6bdb2ba4e5ffcd29ac13db292" - integrity sha512-baZ3XG9RhClDdAgJMR8eviGFVjkaOYVK65+rJchEfpAyaF4Xh5ZeGFBqjdeLrTVp2R6z47pfIo+j+tV7eN6Clw== - dependencies: - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-bold@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-1.0.0-alpha.2.tgz#70f9a399d7d5b2d12a4d059b4c39721b9ef52f15" - integrity sha512-bV84t0No4xbsIbshlJUtmnYoFOvBy+KjTGBvDCNXtMqguRu8+d6VH2Y+Uc7GGQZwOEimtnUvT+k98MoBPWmB4w== - -"@tiptap/extension-bullet-list@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-1.0.0-alpha.2.tgz#39fc70ac36de408b79285a8693c184595cbc6da1" - integrity sha512-d3pjeVBmMk4ucOqexiMQ3aDaxD7r03/nYydAw60t1tPnkwg+3pz91XL0DU2l1n1ErwGz0XZ366WuSPNp1m2SyQ== - dependencies: - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-code-block@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-1.0.0-alpha.2.tgz#87d6d5bbbb4c7a874092be209cdc286a62ebd439" - integrity sha512-/Lgmrfvujwehukdvyr7afAqHQO6t8Am74DvXZcLFzfoITZVgmJoo/l9y56znBG9Li07QohMKSHuIl7Vj7K26IQ== - dependencies: - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-code@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-1.0.0-alpha.2.tgz#baee72d703c4a95622b5c283338fb35cbc2f266b" - integrity sha512-3iW2AWgGsb7RWUyYLu3sbK+W8HBIFVOXRaUsLNY7kA4r9pObDJ5yFSu6sDNcJFn6uNUjHAqUcR/puyZRA2nl8g== - -"@tiptap/extension-document@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-1.0.0-alpha.2.tgz#c9e959b1a60502fdf8ed0b58a6f65e83bebd1fd1" - integrity sha512-q7jWy3TbnzP/ElNVbndPuHowhbK+bnL7OZ87H8UiqWAMrYcNhlZ17bU/C+twtJG/hjHMBMjWPrDkFIzRFC13Yw== - -"@tiptap/extension-dropcursor@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-1.0.0-alpha.2.tgz#3f21457bc66568627f3ae39efe5dd045f885144d" - integrity sha512-v9S3Y1oW7gTu8Tpk010BLgijf0GiJ/VtA44SYYq/quVHn4nRhVnuep3WsGlZZG9vj03vhHs6QDo94fqYE7a6Nw== - dependencies: - "@types/prosemirror-dropcursor" "^1.0.0" - prosemirror-dropcursor "^1.1.3" - -"@tiptap/extension-gapcursor@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-1.0.0-alpha.2.tgz#9f894087ad03d6c564a3f9b95de924d96be26f5d" - integrity sha512-QsZZnbD7y8yVESCQyKiSk4kJhC8NN4Fg3N6U+RQ8VxcESStoYnc63wwHg2QfvRHqlSvAnd4MypSeArk9UAfsKw== - dependencies: - "@types/prosemirror-gapcursor" "^1.0.1" - prosemirror-gapcursor "^1.1.5" - -"@tiptap/extension-hard-break@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-1.0.0-alpha.2.tgz#039b1e8fa24c754c0a060479b4feafcd20b077ae" - integrity sha512-ymmTgR/XLI7eFAY89QlAc6tTqPaVZvCCxKSmIFPeYIMu2msEOxR2xEW/aCWG3YWP2+fhJxZG0fxrgHpVKUsRNw== - -"@tiptap/extension-heading@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-1.0.0-alpha.2.tgz#34f81d0d36d5f66e94c30baaec7388670e0fd412" - integrity sha512-5ZZOowKp+pnL2xxUkaJgphCvif9W4Oj5CaOHccUnrK2jLrzx2Uv2qHHh+jsl1st13ctuIh3tXRRIKWEOaWzggg== - dependencies: - "@types/prosemirror-inputrules" "^1.0.3" - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-history@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-1.0.0-alpha.2.tgz#55b547b7fb6d243b131bddf7b7d14319190aa091" - integrity sha512-+cbwlc2KuDQSuRXGgfeSTUz3QRapVUJQH0U39lrMMgEv5kAOv3rkdZHUrHpbYEwTscril1HJWhvNa5qHB4laYA== - dependencies: - prosemirror-history "^1.1.3" - -"@tiptap/extension-horizontal-rule@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-1.0.0-alpha.2.tgz#cca4f04b45587d2d81bb21b4a93ad957f219241a" - integrity sha512-LLCnM4xtF5l1oiW+hBTfZHLu8U8AVua1cxMqC5Pw9wrYGLHLEq/bDBuxkzWfSXDkEnAsWufqfXiLIX86f4XrQw== - -"@tiptap/extension-italic@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-1.0.0-alpha.2.tgz#3e57ed8311ae5bf01c5b210538affd4641b6f294" - integrity sha512-63zgxJZTuoc4mmp76FspZLNxL/5eA+pA4n2Xflhtm8zkGV7BCbkg0N+unGFUYsQldxKTz6EePQhcLkBRq1kO1Q== - -"@tiptap/extension-list-item@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-1.0.0-alpha.2.tgz#36f50aa70f3ac66c8aeb04b9850db139e2f413e7" - integrity sha512-ta32iPn4zZZxeHlWoZkCmKZ5wNehYmG0SqZD8xmU1VZR58ly2TRL+VRhPGvQnE9rcyj6eh+ycx8oB9D6UCbNBA== - -"@tiptap/extension-ordered-list@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-1.0.0-alpha.2.tgz#e7826859cdf905f3a974f5331df75afe26302f33" - integrity sha512-kM8PKLEAxVHB4yjpK5+TFc8jiNKUSwEFc/XTSq//vE1eyG8d4rT0opWM7TGS75x+6nsFZXJzI38sGLN6hZYN7A== - dependencies: - prosemirror-inputrules "^1.1.3" - -"@tiptap/extension-paragraph@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-1.0.0-alpha.2.tgz#141401cb854ac53e14adc8f5ff0f64d35fa0aa80" - integrity sha512-7wipqmPQLhs/5261rrFggd19j0NBZCgH31ORlg1AZ8sSo9JYSply9iuPuweipf8W19uO+ttz/JALa2FtoMrnrg== - -"@tiptap/extension-strike@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-1.0.0-alpha.2.tgz#caa91b474335fbcb8eae50494cfa8caf0dad0e09" - integrity sha512-nsQXDag12DHs8DjK+l6+QdSZJlF9cjXrqLWiK0d8lFi9plGBKNMKsAME2mmRHeHiyXzdX8swlIbrK/64UjgGlg== - -"@tiptap/extension-text@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-1.0.0-alpha.2.tgz#0f7ea8ef3d938e0c2f5c3be6884ed6275cbc2402" - integrity sha512-sC65YAPp+iVICrdWCVhxwC5EZxms26yUrCOJ8iXAF/lYGO19EheDfaMWmxYLoUvCq6PB/YqMLgrjmmGQCalYHA== - -"@tiptap/extension-underline@^1.0.0-alpha.2": - version "1.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-underline/-/extension-underline-1.0.0-alpha.2.tgz#28470bc5b405dd7ee5ff86cc480c0aec62b528bf" - integrity sha512-L8IJET3elmyk8/gNB11IfpQo1y990mF/l/a7VSI00190wspVRHZjjEwmzBRj2G5kyK4nZvF5NWj4b6d8SuwIMQ== - "@types/babel-types@*", "@types/babel-types@^7.0.0": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.9.tgz#01d7b86949f455402a94c788883fe4ba574cad41" From d7441deec922332b7fc0d628f7ea3e22c19e6c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 20 Nov 2020 15:59:26 +0100 Subject: [PATCH 03/18] Publish - @tiptap/starter-kit@2.0.0-alpha.4 - @tiptap/vue-starter-kit@2.0.0-alpha.5 --- packages/starter-kit/CHANGELOG.md | 8 ++++++++ packages/starter-kit/package.json | 2 +- packages/vue-starter-kit/CHANGELOG.md | 8 ++++++++ packages/vue-starter-kit/package.json | 4 ++-- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/starter-kit/CHANGELOG.md b/packages/starter-kit/CHANGELOG.md index ffb07328..54af2919 100644 --- a/packages/starter-kit/CHANGELOG.md +++ b/packages/starter-kit/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.0.0-alpha.4](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/starter-kit@2.0.0-alpha.3...@tiptap/starter-kit@2.0.0-alpha.4) (2020-11-20) + +**Note:** Version bump only for package @tiptap/starter-kit + + + + + # [2.0.0-alpha.3](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/starter-kit@2.0.0-alpha.2...@tiptap/starter-kit@2.0.0-alpha.3) (2020-11-19) **Note:** Version bump only for package @tiptap/starter-kit diff --git a/packages/starter-kit/package.json b/packages/starter-kit/package.json index 5c83c95b..6601f1d1 100644 --- a/packages/starter-kit/package.json +++ b/packages/starter-kit/package.json @@ -1,6 +1,6 @@ { "name": "@tiptap/starter-kit", - "version": "2.0.0-alpha.3", + "version": "2.0.0-alpha.4", "homepage": "https://tiptap.dev", "keywords": [ "tiptap", diff --git a/packages/vue-starter-kit/CHANGELOG.md b/packages/vue-starter-kit/CHANGELOG.md index e1ab12ca..ab757f7f 100644 --- a/packages/vue-starter-kit/CHANGELOG.md +++ b/packages/vue-starter-kit/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.0.0-alpha.5](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/vue-starter-kit@2.0.0-alpha.4...@tiptap/vue-starter-kit@2.0.0-alpha.5) (2020-11-20) + +**Note:** Version bump only for package @tiptap/vue-starter-kit + + + + + # [2.0.0-alpha.4](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/vue-starter-kit@2.0.0-alpha.3...@tiptap/vue-starter-kit@2.0.0-alpha.4) (2020-11-19) **Note:** Version bump only for package @tiptap/vue-starter-kit diff --git a/packages/vue-starter-kit/package.json b/packages/vue-starter-kit/package.json index 3bd3074c..5a543cf6 100644 --- a/packages/vue-starter-kit/package.json +++ b/packages/vue-starter-kit/package.json @@ -1,6 +1,6 @@ { "name": "@tiptap/vue-starter-kit", - "version": "2.0.0-alpha.4", + "version": "2.0.0-alpha.5", "homepage": "https://tiptap.dev", "keywords": [ "tiptap", @@ -21,7 +21,7 @@ "dist" ], "dependencies": { - "@tiptap/starter-kit": "^2.0.0-alpha.3", + "@tiptap/starter-kit": "^2.0.0-alpha.4", "@tiptap/vue": "^2.0.0-alpha.3" } } From feda283fcbd4ac9569578546e92c5eaa7ee6a680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 20 Nov 2020 21:30:12 +0100 Subject: [PATCH 04/18] add enableInputRules and enablePasteRules option --- docs/src/docPages/api/editor.md | 27 +++++++++++++++++++++++++++ packages/core/src/Editor.ts | 2 ++ packages/core/src/ExtensionManager.ts | 15 +++++++++++---- packages/core/src/types.ts | 2 ++ 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/docs/src/docPages/api/editor.md b/docs/src/docPages/api/editor.md index 92ce16c2..370e965b 100644 --- a/docs/src/docPages/api/editor.md +++ b/docs/src/docPages/api/editor.md @@ -100,6 +100,33 @@ new Editor({ | `false` | Disables autofocus. | | `null` | Disables autofocus. | +### Enable input rules +By default, tiptap enables all [input rules](/guide/build-custom-extensions/#input-rules). With `enableInputRules` you can disable that. + +```js +import { Editor } from '@tiptap/core' +import { defaultExtensions } from '@tiptap/starter-kit' + +new Editor({ + content: `

Example Text

`, + extensions: defaultExtensions(), + enableInputRules: false, +}) +``` + +### Enable paste rules +By default, tiptap enables all [paste rules](/guide/build-custom-extensions/#paste-rules). With `enablePasteRules` you can disable that. + +```js +import { Editor } from '@tiptap/core' +import { defaultExtensions } from '@tiptap/starter-kit' + +new Editor({ + content: `

Example Text

`, + extensions: defaultExtensions(), + enablePasteRules: false, +}) +``` ### Inject CSS By default, tiptap injects [a little bit of CSS](https://github.com/ueberdosis/tiptap-next/tree/main/packages/core/src/style.ts). With `injectCSS` you can disable that. diff --git a/packages/core/src/Editor.ts b/packages/core/src/Editor.ts index 330e547c..f64597b9 100644 --- a/packages/core/src/Editor.ts +++ b/packages/core/src/Editor.ts @@ -52,6 +52,8 @@ export class Editor extends EventEmitter { editable: true, editorProps: {}, parseOptions: {}, + enableInputRules: true, + enablePasteRules: true, onInit: () => null, onUpdate: () => null, onTransaction: () => null, diff --git a/packages/core/src/ExtensionManager.ts b/packages/core/src/ExtensionManager.ts index eb10635a..410562b2 100644 --- a/packages/core/src/ExtensionManager.ts +++ b/packages/core/src/ExtensionManager.ts @@ -1,4 +1,3 @@ -import { Plugin } from 'prosemirror-state' import { keymap } from 'prosemirror-keymap' import { Schema, Node as ProsemirrorNode } from 'prosemirror-model' import { inputRules } from 'prosemirror-inputrules' @@ -37,7 +36,7 @@ export default class ExtensionManager { }) } - get plugins(): Plugin[] { + get plugins() { const plugins = this.extensions .map(extension => { const context = { @@ -58,7 +57,11 @@ export default class ExtensionManager { ] } - get inputRules(): any { + get inputRules() { + if (!this.editor.options.enableInputRules) { + return [] + } + return this.extensions .map(extension => { const context = { @@ -72,7 +75,11 @@ export default class ExtensionManager { .flat() } - get pasteRules(): any { + get pasteRules() { + if (!this.editor.options.enablePasteRules) { + return [] + } + return this.extensions .map(extension => { const context = { diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index d2a8727a..2f44a5c3 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -23,6 +23,8 @@ export interface EditorOptions { editable: boolean, editorProps: EditorProps, parseOptions: ParseOptions, + enableInputRules: boolean, + enablePasteRules: boolean, onInit: () => void, onUpdate: () => void, onTransaction: (props: { transaction: Transaction }) => void, From 7decae762ae1c2700faea722bb80fd32d2eae5ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 20 Nov 2020 21:47:55 +0100 Subject: [PATCH 05/18] add vscode links --- docs/src/components/Demo/index.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/src/components/Demo/index.vue b/docs/src/components/Demo/index.vue index b1c888c5..59b675e9 100644 --- a/docs/src/components/Demo/index.vue +++ b/docs/src/components/Demo/index.vue @@ -100,6 +100,10 @@ export default { }, githubUrl() { + if (process.env.NODE_ENV === 'development') { + return `vscode://file${this.cwd}/src/demos/${this.name}/${this.files[0].name}` + } + return `https://github.com/ueberdosis/tiptap-next/tree/main/docs/src/demos/${this.name}` }, }, From 527f75f5fd2b99749af1b76e4274cc0a2d76db48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 20 Nov 2020 22:04:46 +0100 Subject: [PATCH 06/18] improve eslint config --- .eslintrc.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.eslintrc.js b/.eslintrc.js index 4d7a1a86..36715012 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -63,6 +63,8 @@ module.exports = { '@typescript-eslint/no-unused-vars': ['error'], 'no-use-before-define': 'off', '@typescript-eslint/no-use-before-define': ['error'], + 'no-dupe-class-members': 'off', + '@typescript-eslint/no-dupe-class-members': ['error'], '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-empty-interface': 'off', '@typescript-eslint/explicit-module-boundary-type': 'off', From c433428fba615273768183e223d19fcde864cab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 20 Nov 2020 23:44:23 +0100 Subject: [PATCH 07/18] refactoring --- packages/core/src/Editor.ts | 9 +++++++-- packages/core/src/commands/focus.ts | 24 +++++++++--------------- packages/core/src/types.ts | 5 +++++ 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/packages/core/src/Editor.ts b/packages/core/src/Editor.ts index f64597b9..16f9d8f9 100644 --- a/packages/core/src/Editor.ts +++ b/packages/core/src/Editor.ts @@ -14,7 +14,12 @@ import createStyleTag from './utils/createStyleTag' import CommandManager from './CommandManager' import ExtensionManager from './ExtensionManager' import EventEmitter from './EventEmitter' -import { EditorOptions, EditorContent, CommandSpec } from './types' +import { + EditorOptions, + EditorContent, + CommandSpec, + EditorSelection, +} from './types' import * as extensions from './extensions' import style from './style' @@ -39,7 +44,7 @@ export class Editor extends EventEmitter { public view!: EditorView - public selection = { from: 0, to: 0 } + public selection: EditorSelection = { from: 0, to: 0 } public isFocused = false diff --git a/packages/core/src/commands/focus.ts b/packages/core/src/commands/focus.ts index c2c3057b..fb7f970e 100644 --- a/packages/core/src/commands/focus.ts +++ b/packages/core/src/commands/focus.ts @@ -1,16 +1,10 @@ -import { TextSelection } from 'prosemirror-state' -import { Editor } from '../Editor' +import { EditorState, TextSelection } from 'prosemirror-state' import { Command, FocusPosition } from '../types' import minMax from '../utils/minMax' -interface ResolvedSelection { - from: number, - to: number, -} - -function resolveSelection(editor: Editor, position: FocusPosition = null): ResolvedSelection { - if (position === null) { - return editor.selection +function resolveSelection(state: EditorState, position: FocusPosition = null) { + if (!position) { + return null } if (position === 'start' || position === true) { @@ -21,17 +15,17 @@ function resolveSelection(editor: Editor, position: FocusPosition = null): Resol } if (position === 'end') { - const { size } = editor.state.doc.content + const { size } = state.doc.content return { from: size, - to: size - 1, // TODO: -1 only for nodes with content + to: size, } } return { - from: position as number, - to: position as number, + from: position, + to: position, } } @@ -48,7 +42,7 @@ export const focus = (position: FocusPosition = null): Command => ({ return true } - const { from, to } = resolveSelection(editor, position) + const { from, to } = resolveSelection(editor.state, position) || editor.selection const { doc } = tr const resolvedFrom = minMax(from, 0, doc.content.size) const resolvedEnd = minMax(to, 0, doc.content.size) diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 2f44a5c3..245ffd22 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -32,6 +32,11 @@ export interface EditorOptions { onBlur: (props: { event: FocusEvent }) => void, } +export type EditorSelection = { + from: number, + to: number, +} + export type EditorContent = string | JSON | null export type Command = (props: { From 540b0656f3515cdba60fa670f5eda540d85a7e26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 20 Nov 2020 23:56:41 +0100 Subject: [PATCH 08/18] rename setBlockType to setNode --- docs/src/docPages/api/commands.md | 2 +- packages/core/src/commands/setBlockType.ts | 13 ------------- packages/core/src/commands/setNode.ts | 13 +++++++++++++ packages/core/src/commands/toggleBlockType.ts | 4 ++-- packages/core/src/extensions/commands.ts | 4 ++-- packages/extension-code-block/src/index.ts | 2 +- packages/extension-heading/src/index.ts | 2 +- 7 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 packages/core/src/commands/setBlockType.ts create mode 100644 packages/core/src/commands/setNode.ts diff --git a/docs/src/docPages/api/commands.md b/docs/src/docPages/api/commands.md index 2c4f5696..25f2dd31 100644 --- a/docs/src/docPages/api/commands.md +++ b/docs/src/docPages/api/commands.md @@ -110,7 +110,7 @@ Have a look at all of the core commands listed below. They should give you a goo | .extendMarkRange() | Extends the text selection to the current mark. | | .resetNodeAttributes() | Resets all node attributes to the default value. | | .selectParentNode() | Select the parent node. | -| .setBlockType() | Replace a given range with a node. | +| .setNode() | Replace a given range with a node. | | .setMark() | Add a mark with new attributes. | | .splitBlock() | Forks a new node from an existing node. | | .toggleBlockType() | Toggle a node with another node. | diff --git a/packages/core/src/commands/setBlockType.ts b/packages/core/src/commands/setBlockType.ts deleted file mode 100644 index 5f14af48..00000000 --- a/packages/core/src/commands/setBlockType.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { NodeType } from 'prosemirror-model' -import { setBlockType as originalSetBlockType } from 'prosemirror-commands' -import { Command } from '../types' -import getNodeType from '../utils/getNodeType' - -/** - * Replace a given range with a node. - */ -export const setBlockType = (typeOrName: string | NodeType, attrs = {}): Command => ({ state, dispatch }) => { - const type = getNodeType(typeOrName, state.schema) - - return originalSetBlockType(type, attrs)(state, dispatch) -} diff --git a/packages/core/src/commands/setNode.ts b/packages/core/src/commands/setNode.ts new file mode 100644 index 00000000..880e19d5 --- /dev/null +++ b/packages/core/src/commands/setNode.ts @@ -0,0 +1,13 @@ +import { NodeType } from 'prosemirror-model' +import { setBlockType } from 'prosemirror-commands' +import { Command } from '../types' +import getNodeType from '../utils/getNodeType' + +/** + * Replace a given range with a node. + */ +export const setNode = (typeOrName: string | NodeType, attrs = {}): Command => ({ state, dispatch }) => { + const type = getNodeType(typeOrName, state.schema) + + return setBlockType(type, attrs)(state, dispatch) +} diff --git a/packages/core/src/commands/toggleBlockType.ts b/packages/core/src/commands/toggleBlockType.ts index d8c23b0a..9ab8ea3b 100644 --- a/packages/core/src/commands/toggleBlockType.ts +++ b/packages/core/src/commands/toggleBlockType.ts @@ -12,8 +12,8 @@ export const toggleBlockType = (typeOrName: string | NodeType, toggleTypeOrName: const isActive = nodeIsActive(state, type, attrs) if (isActive) { - return commands.setBlockType(toggleType) + return commands.setNode(toggleType) } - return commands.setBlockType(type, attrs) + return commands.setNode(type, attrs) } diff --git a/packages/core/src/extensions/commands.ts b/packages/core/src/extensions/commands.ts index 38030a1b..6029e4f1 100644 --- a/packages/core/src/extensions/commands.ts +++ b/packages/core/src/extensions/commands.ts @@ -15,9 +15,9 @@ import * as resetNodeAttributes from '../commands/resetNodeAttributes' import * as scrollIntoView from '../commands/scrollIntoView' import * as selectAll from '../commands/selectAll' import * as selectParentNode from '../commands/selectParentNode' -import * as setBlockType from '../commands/setBlockType' import * as setContent from '../commands/setContent' import * as setMark from '../commands/setMark' +import * as setNode from '../commands/setNode' import * as sinkListItem from '../commands/sinkListItem' import * as splitBlock from '../commands/splitBlock' import * as splitListItem from '../commands/splitListItem' @@ -50,9 +50,9 @@ export const Commands = Extension.create({ ...scrollIntoView, ...selectAll, ...selectParentNode, - ...setBlockType, ...setContent, ...setMark, + ...setNode, ...sinkListItem, ...splitBlock, ...splitListItem, diff --git a/packages/extension-code-block/src/index.ts b/packages/extension-code-block/src/index.ts index 337f0b2c..679dab1e 100644 --- a/packages/extension-code-block/src/index.ts +++ b/packages/extension-code-block/src/index.ts @@ -78,7 +78,7 @@ const CodeBlock = Node.create({ * Set a code block */ setCodeBlock: (attributes?: { language: string }): Command => ({ commands }) => { - return commands.setBlockType('codeBlock', attributes) + return commands.setNode('codeBlock', attributes) }, /** * Toggle a code block diff --git a/packages/extension-heading/src/index.ts b/packages/extension-heading/src/index.ts index a9a1ee39..809afd23 100644 --- a/packages/extension-heading/src/index.ts +++ b/packages/extension-heading/src/index.ts @@ -60,7 +60,7 @@ const Heading = Node.create({ return false } - return commands.setBlockType('heading', attributes) + return commands.setNode('heading', attributes) }, /** * Toggle a heading node From 8f6ae0e69e10d5e24e94f7d7f7290ba149860f0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Sat, 21 Nov 2020 00:00:57 +0100 Subject: [PATCH 09/18] replace toggleBlockType with toggleNode( --- docs/src/docPages/api/commands.md | 4 ++-- docs/src/docPages/guide/build-custom-extensions.md | 2 +- .../core/src/commands/{toggleBlockType.ts => toggleNode.ts} | 2 +- packages/core/src/extensions/commands.ts | 4 ++-- packages/extension-code-block/src/index.ts | 2 +- packages/extension-heading/src/index.ts | 2 +- packages/extension-paragraph/src/index.ts | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) rename packages/core/src/commands/{toggleBlockType.ts => toggleNode.ts} (76%) diff --git a/docs/src/docPages/api/commands.md b/docs/src/docPages/api/commands.md index 25f2dd31..60211a10 100644 --- a/docs/src/docPages/api/commands.md +++ b/docs/src/docPages/api/commands.md @@ -110,11 +110,11 @@ Have a look at all of the core commands listed below. They should give you a goo | .extendMarkRange() | Extends the text selection to the current mark. | | .resetNodeAttributes() | Resets all node attributes to the default value. | | .selectParentNode() | Select the parent node. | -| .setNode() | Replace a given range with a node. | | .setMark() | Add a mark with new attributes. | +| .setNode() | Replace a given range with a node. | | .splitBlock() | Forks a new node from an existing node. | -| .toggleBlockType() | Toggle a node with another node. | | .toggleMark() | Toggle a mark on and off. | +| .toggleNode() | Toggle a node with another node. | | .toggleWrap() | Wraps nodes in another node, or removes an existing wrap. | | .unsetMark() | Remove a mark in the current selection. | | .unsetMarks() | Remove all marks in the current selection. | diff --git a/docs/src/docPages/guide/build-custom-extensions.md b/docs/src/docPages/guide/build-custom-extensions.md index 15e7d770..400d01bf 100644 --- a/docs/src/docPages/guide/build-custom-extensions.md +++ b/docs/src/docPages/guide/build-custom-extensions.md @@ -275,7 +275,7 @@ const CustomParagraph = Paragraph.extend({ addCommands() { return { paragraph: () => ({ commands }) => { - return commands.toggleBlockType('paragraph', 'paragraph') + return commands.toggleNode('paragraph', 'paragraph') }, } }, diff --git a/packages/core/src/commands/toggleBlockType.ts b/packages/core/src/commands/toggleNode.ts similarity index 76% rename from packages/core/src/commands/toggleBlockType.ts rename to packages/core/src/commands/toggleNode.ts index 9ab8ea3b..d4bff993 100644 --- a/packages/core/src/commands/toggleBlockType.ts +++ b/packages/core/src/commands/toggleNode.ts @@ -6,7 +6,7 @@ import getNodeType from '../utils/getNodeType' /** * Toggle a node with another node. */ -export const toggleBlockType = (typeOrName: string | NodeType, toggleTypeOrName: string | NodeType, attrs = {}): Command => ({ state, commands }) => { +export const toggleNode = (typeOrName: string | NodeType, toggleTypeOrName: string | NodeType, attrs = {}): Command => ({ state, commands }) => { const type = getNodeType(typeOrName, state.schema) const toggleType = getNodeType(toggleTypeOrName, state.schema) const isActive = nodeIsActive(state, type, attrs) diff --git a/packages/core/src/extensions/commands.ts b/packages/core/src/extensions/commands.ts index 6029e4f1..c99c2ff3 100644 --- a/packages/core/src/extensions/commands.ts +++ b/packages/core/src/extensions/commands.ts @@ -21,9 +21,9 @@ import * as setNode from '../commands/setNode' import * as sinkListItem from '../commands/sinkListItem' import * as splitBlock from '../commands/splitBlock' import * as splitListItem from '../commands/splitListItem' -import * as toggleBlockType from '../commands/toggleBlockType' import * as toggleList from '../commands/toggleList' import * as toggleMark from '../commands/toggleMark' +import * as toggleNode from '../commands/toggleNode' import * as toggleWrap from '../commands/toggleWrap' import * as unsetMark from '../commands/unsetMark' import * as unsetMarks from '../commands/unsetMarks' @@ -56,9 +56,9 @@ export const Commands = Extension.create({ ...sinkListItem, ...splitBlock, ...splitListItem, - ...toggleBlockType, ...toggleList, ...toggleMark, + ...toggleNode, ...toggleWrap, ...unsetMark, ...unsetMarks, diff --git a/packages/extension-code-block/src/index.ts b/packages/extension-code-block/src/index.ts index 679dab1e..12856e88 100644 --- a/packages/extension-code-block/src/index.ts +++ b/packages/extension-code-block/src/index.ts @@ -84,7 +84,7 @@ const CodeBlock = Node.create({ * Toggle a code block */ toggleCodeBlock: (attributes?: { language: string }): Command => ({ commands }) => { - return commands.toggleBlockType('codeBlock', 'paragraph', attributes) + return commands.toggleNode('codeBlock', 'paragraph', attributes) }, } }, diff --git a/packages/extension-heading/src/index.ts b/packages/extension-heading/src/index.ts index 809afd23..553468d1 100644 --- a/packages/extension-heading/src/index.ts +++ b/packages/extension-heading/src/index.ts @@ -70,7 +70,7 @@ const Heading = Node.create({ return false } - return commands.toggleBlockType('heading', 'paragraph', attributes) + return commands.toggleNode('heading', 'paragraph', attributes) }, } }, diff --git a/packages/extension-paragraph/src/index.ts b/packages/extension-paragraph/src/index.ts index ffe062c1..b8804177 100644 --- a/packages/extension-paragraph/src/index.ts +++ b/packages/extension-paragraph/src/index.ts @@ -33,7 +33,7 @@ const Paragraph = Node.create({ * Toggle a paragraph */ setParagraph: (): Command => ({ commands }) => { - return commands.toggleBlockType('paragraph', 'paragraph') + return commands.toggleNode('paragraph', 'paragraph') }, } }, From 675912166c4d440af7bc5dde17b192a8d5287e5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Sat, 21 Nov 2020 00:05:27 +0100 Subject: [PATCH 10/18] rename unsetMarks to unsetAllMarks --- docs/src/demos/Examples/Basic/index.vue | 2 +- docs/src/demos/Examples/CollaborativeEditing/index.vue | 2 +- docs/src/demos/Examples/CollaborativeEditingWs/index.vue | 2 +- docs/src/demos/Guide/BuildYourEditor/index.vue | 2 +- docs/src/demos/React/index.jsx | 2 +- docs/src/docPages/api/commands.md | 2 +- .../core/src/commands/{unsetMarks.ts => unsetAllMarks.ts} | 2 +- packages/core/src/extensions/commands.ts | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) rename packages/core/src/commands/{unsetMarks.ts => unsetAllMarks.ts} (82%) diff --git a/docs/src/demos/Examples/Basic/index.vue b/docs/src/demos/Examples/Basic/index.vue index b01c20a7..75de6f55 100644 --- a/docs/src/demos/Examples/Basic/index.vue +++ b/docs/src/demos/Examples/Basic/index.vue @@ -13,7 +13,7 @@ - - -