forked from github/plane
feat: added custom blockquote extension for resolving enter key behaviour (#2997)
This commit is contained in:
parent
4c53157b0e
commit
7a96e12523
@ -28,8 +28,9 @@
|
|||||||
"react-dom": "18.2.0"
|
"react-dom": "18.2.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tiptap/core": "^2.1.7",
|
|
||||||
"@plane/editor-types": "*",
|
"@plane/editor-types": "*",
|
||||||
|
"@tiptap/core": "^2.1.7",
|
||||||
|
"@tiptap/extension-blockquote": "^2.1.13",
|
||||||
"@tiptap/extension-code-block-lowlight": "^2.1.12",
|
"@tiptap/extension-code-block-lowlight": "^2.1.12",
|
||||||
"@tiptap/extension-color": "^2.1.11",
|
"@tiptap/extension-color": "^2.1.11",
|
||||||
"@tiptap/extension-image": "^2.1.7",
|
"@tiptap/extension-image": "^2.1.7",
|
||||||
@ -61,12 +62,12 @@
|
|||||||
"tiptap-markdown": "^0.8.2"
|
"tiptap-markdown": "^0.8.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^7.32.0",
|
|
||||||
"postcss": "^8.4.29",
|
|
||||||
"eslint-config-next": "13.2.4",
|
|
||||||
"@types/node": "18.15.3",
|
"@types/node": "18.15.3",
|
||||||
"@types/react": "^18.2.39",
|
"@types/react": "^18.2.39",
|
||||||
"@types/react-dom": "18.0.11",
|
"@types/react-dom": "18.0.11",
|
||||||
|
"eslint": "^7.32.0",
|
||||||
|
"eslint-config-next": "13.2.4",
|
||||||
|
"postcss": "^8.4.29",
|
||||||
"tailwind-config-custom": "*",
|
"tailwind-config-custom": "*",
|
||||||
"tsconfig": "*",
|
"tsconfig": "*",
|
||||||
"tsup": "^7.2.0",
|
"tsup": "^7.2.0",
|
||||||
|
@ -20,6 +20,7 @@ import { Mentions } from "../mentions";
|
|||||||
|
|
||||||
import { CustomKeymap } from "./keymap";
|
import { CustomKeymap } from "./keymap";
|
||||||
import { CustomCodeBlock } from "./code";
|
import { CustomCodeBlock } from "./code";
|
||||||
|
import { CustomQuoteExtension } from "./quote";
|
||||||
import { ListKeymap } from "./custom-list-keymap";
|
import { ListKeymap } from "./custom-list-keymap";
|
||||||
import {
|
import {
|
||||||
IMentionSuggestion,
|
IMentionSuggestion,
|
||||||
@ -34,7 +35,7 @@ export const CoreEditorExtensions = (
|
|||||||
},
|
},
|
||||||
deleteFile: DeleteImage,
|
deleteFile: DeleteImage,
|
||||||
restoreFile: RestoreImage,
|
restoreFile: RestoreImage,
|
||||||
cancelUploadImage?: () => any,
|
cancelUploadImage?: () => any
|
||||||
) => [
|
) => [
|
||||||
StarterKit.configure({
|
StarterKit.configure({
|
||||||
bulletList: {
|
bulletList: {
|
||||||
@ -52,11 +53,11 @@ export const CoreEditorExtensions = (
|
|||||||
class: "leading-normal -mb-2",
|
class: "leading-normal -mb-2",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
blockquote: {
|
// blockquote: {
|
||||||
HTMLAttributes: {
|
// HTMLAttributes: {
|
||||||
class: "border-l-4 border-custom-border-300",
|
// class: "border-l-4 border-custom-border-300",
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
code: false,
|
code: false,
|
||||||
codeBlock: false,
|
codeBlock: false,
|
||||||
horizontalRule: false,
|
horizontalRule: false,
|
||||||
@ -65,6 +66,9 @@ export const CoreEditorExtensions = (
|
|||||||
width: 2,
|
width: 2,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
CustomQuoteExtension.configure({
|
||||||
|
HTMLAttributes: { className: "border-l-4 border-custom-border-300" },
|
||||||
|
}),
|
||||||
CustomKeymap,
|
CustomKeymap,
|
||||||
ListKeymap,
|
ListKeymap,
|
||||||
TiptapLink.configure({
|
TiptapLink.configure({
|
||||||
@ -108,6 +112,6 @@ export const CoreEditorExtensions = (
|
|||||||
Mentions(
|
Mentions(
|
||||||
mentionConfig.mentionSuggestions,
|
mentionConfig.mentionSuggestions,
|
||||||
mentionConfig.mentionHighlights,
|
mentionConfig.mentionHighlights,
|
||||||
false,
|
false
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
26
packages/editor/core/src/ui/extensions/quote/index.tsx
Normal file
26
packages/editor/core/src/ui/extensions/quote/index.tsx
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { isAtStartOfNode } from "@tiptap/core";
|
||||||
|
import Blockquote from "@tiptap/extension-blockquote";
|
||||||
|
|
||||||
|
export const CustomQuoteExtension = Blockquote.extend({
|
||||||
|
addKeyboardShortcuts() {
|
||||||
|
return {
|
||||||
|
Enter: ({ editor }) => {
|
||||||
|
const { $from, $to, $head } = this.editor.state.selection;
|
||||||
|
const parent = $head.node(-1);
|
||||||
|
|
||||||
|
if (!parent) return false;
|
||||||
|
|
||||||
|
if (parent.type.name !== "blockquote") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if ($from.pos !== $to.pos) return false;
|
||||||
|
// if ($head.parentOffset < $head.parent.content.size) return false;
|
||||||
|
|
||||||
|
// this.editor.commands.insertContentAt(parent.ne);
|
||||||
|
this.editor.chain().splitBlock().lift(this.name).run();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
@ -2294,6 +2294,11 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.1.12.tgz#97b43419606acf9bfd93b9f482a1827dcac8c3e9"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.1.12.tgz#97b43419606acf9bfd93b9f482a1827dcac8c3e9"
|
||||||
integrity sha512-Qb3YRlCfugx9pw7VgLTb+jY37OY4aBJeZnqHzx4QThSm13edNYjasokbX0nTwL1Up4NPTcY19JUeHt6fVaVVGg==
|
integrity sha512-Qb3YRlCfugx9pw7VgLTb+jY37OY4aBJeZnqHzx4QThSm13edNYjasokbX0nTwL1Up4NPTcY19JUeHt6fVaVVGg==
|
||||||
|
|
||||||
|
"@tiptap/extension-blockquote@^2.1.13":
|
||||||
|
version "2.1.13"
|
||||||
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.1.13.tgz#abf01e3a00d72434b08be7f3d7e318c7320db486"
|
||||||
|
integrity sha512-oe6wSQACmODugoP9XH3Ouffjy4BsOBWfTC+dETHNCG6ZED6ShHN3CB9Vr7EwwRgmm2WLaKAjMO1sVumwH+Z1rg==
|
||||||
|
|
||||||
"@tiptap/extension-bold@^2.1.12":
|
"@tiptap/extension-bold@^2.1.12":
|
||||||
version "2.1.12"
|
version "2.1.12"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.1.12.tgz#5dbf41105fc0fbde8adbff629312187fbebc39b0"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.1.12.tgz#5dbf41105fc0fbde8adbff629312187fbebc39b0"
|
||||||
|
Loading…
Reference in New Issue
Block a user