From a187f2345269a3d1156ce4250d8039e87e1e984d Mon Sep 17 00:00:00 2001 From: donteatfriedrice Date: Mon, 23 Dec 2024 07:54:58 +0000 Subject: [PATCH] chore: each block maintain its own adapter extension (#9224) --- .../embed-figma-block/adapters/extension.ts | 11 +++ .../src/embed-figma-block/embed-figma-spec.ts | 4 +- .../embed-github-block/adapters/extension.ts | 11 +++ .../embed-github-block/embed-github-spec.ts | 4 +- .../adapters/extension.ts | 11 +++ .../embed-linked-doc-spec.ts | 4 +- .../embed-loom-block/adapters/extension.ts | 11 +++ .../src/embed-loom-block/embed-loom-spec.ts | 4 +- .../adapters/extension.ts | 11 +++ .../embed-synced-doc-spec.ts | 4 +- .../embed-youtube-block/adapters/extension.ts | 11 +++ .../embed-youtube-block/embed-youtube-spec.ts | 4 +- .../block-list/src/adapters/extension.ts | 13 ++++ blocksuite/affine/block-list/src/list-spec.ts | 4 +- .../block-paragraph/src/adapters/extension.ts | 13 ++++ .../block-paragraph/src/paragraph-spec.ts | 4 +- .../block-surface/src/adapters/extension.ts | 2 - .../blocks/src/_common/adapters/extension.ts | 11 --- .../adapters/html-adapter/block-matcher.ts | 64 +++-------------- .../_common/adapters/html-adapter/index.ts | 5 +- .../blocks/src/_common/adapters/index.ts | 1 + .../adapters/markdown/block-matcher.ts | 70 +++---------------- .../src/_common/adapters/markdown/index.ts | 5 +- .../adapters/notion-html/block-matcher.ts | 64 +++-------------- .../src/_common/adapters/notion-html/index.ts | 5 +- .../adapters/plain-text/block-matcher.ts | 52 ++------------ blocksuite/blocks/src/_specs/common.ts | 7 +- .../src/attachment-block/attachment-spec.ts | 2 + .../src/bookmark-block/adapters/extension.ts | 13 ++++ .../src/bookmark-block/bookmark-spec.ts | 4 +- .../src/code-block/adapters/extension.ts | 13 ++++ .../blocks/src/code-block/code-block-spec.ts | 4 +- .../src/database-block/adapters/extension.ts | 11 +++ .../src/database-block/database-spec.ts | 4 +- .../src/divider-block/adapters/extension.ts | 13 ++++ .../blocks/src/divider-block/divider-spec.ts | 5 +- .../src/image-block/adapters/extension.ts | 11 +++ .../blocks/src/image-block/image-spec.ts | 4 +- .../src/latex-block/adapters/extension.ts | 11 +++ .../blocks/src/latex-block/latex-spec.ts | 4 +- .../src/root-block/adapters/extension.ts | 11 +++ .../root-block/edgeless/edgeless-root-spec.ts | 4 +- .../src/root-block/page/page-root-spec.ts | 4 +- 43 files changed, 264 insertions(+), 264 deletions(-) create mode 100644 blocksuite/affine/block-embed/src/embed-figma-block/adapters/extension.ts create mode 100644 blocksuite/affine/block-embed/src/embed-github-block/adapters/extension.ts create mode 100644 blocksuite/affine/block-embed/src/embed-linked-doc-block/adapters/extension.ts create mode 100644 blocksuite/affine/block-embed/src/embed-loom-block/adapters/extension.ts create mode 100644 blocksuite/affine/block-embed/src/embed-synced-doc-block/adapters/extension.ts create mode 100644 blocksuite/affine/block-embed/src/embed-youtube-block/adapters/extension.ts create mode 100644 blocksuite/affine/block-list/src/adapters/extension.ts create mode 100644 blocksuite/affine/block-paragraph/src/adapters/extension.ts create mode 100644 blocksuite/blocks/src/bookmark-block/adapters/extension.ts create mode 100644 blocksuite/blocks/src/code-block/adapters/extension.ts create mode 100644 blocksuite/blocks/src/database-block/adapters/extension.ts create mode 100644 blocksuite/blocks/src/divider-block/adapters/extension.ts create mode 100644 blocksuite/blocks/src/image-block/adapters/extension.ts create mode 100644 blocksuite/blocks/src/latex-block/adapters/extension.ts create mode 100644 blocksuite/blocks/src/root-block/adapters/extension.ts diff --git a/blocksuite/affine/block-embed/src/embed-figma-block/adapters/extension.ts b/blocksuite/affine/block-embed/src/embed-figma-block/adapters/extension.ts new file mode 100644 index 0000000000..1b8017c5a4 --- /dev/null +++ b/blocksuite/affine/block-embed/src/embed-figma-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { EmbedFigmaBlockHtmlAdapterExtension } from './html.js'; +import { EmbedFigmaMarkdownAdapterExtension } from './markdown.js'; +import { EmbedFigmaBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const EmbedFigmaBlockAdapterExtensions: ExtensionType[] = [ + EmbedFigmaBlockHtmlAdapterExtension, + EmbedFigmaMarkdownAdapterExtension, + EmbedFigmaBlockPlainTextAdapterExtension, +]; diff --git a/blocksuite/affine/block-embed/src/embed-figma-block/embed-figma-spec.ts b/blocksuite/affine/block-embed/src/embed-figma-block/embed-figma-spec.ts index 5712740887..9165e699a4 100644 --- a/blocksuite/affine/block-embed/src/embed-figma-block/embed-figma-spec.ts +++ b/blocksuite/affine/block-embed/src/embed-figma-block/embed-figma-spec.ts @@ -5,6 +5,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { EmbedFigmaBlockAdapterExtensions } from './adapters/extension.js'; import { EmbedFigmaBlockService } from './embed-figma-service.js'; export const EmbedFigmaBlockSpec: ExtensionType[] = [ @@ -15,4 +16,5 @@ export const EmbedFigmaBlockSpec: ExtensionType[] = [ ? literal`affine-embed-edgeless-figma-block` : literal`affine-embed-figma-block`; }), -]; + EmbedFigmaBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/affine/block-embed/src/embed-github-block/adapters/extension.ts b/blocksuite/affine/block-embed/src/embed-github-block/adapters/extension.ts new file mode 100644 index 0000000000..5c6fa5cb57 --- /dev/null +++ b/blocksuite/affine/block-embed/src/embed-github-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { EmbedGithubBlockHtmlAdapterExtension } from './html.js'; +import { EmbedGithubMarkdownAdapterExtension } from './markdown.js'; +import { EmbedGithubBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const EmbedGithubBlockAdapterExtensions: ExtensionType[] = [ + EmbedGithubBlockHtmlAdapterExtension, + EmbedGithubMarkdownAdapterExtension, + EmbedGithubBlockPlainTextAdapterExtension, +]; diff --git a/blocksuite/affine/block-embed/src/embed-github-block/embed-github-spec.ts b/blocksuite/affine/block-embed/src/embed-github-block/embed-github-spec.ts index e86cd30db4..44045362d8 100644 --- a/blocksuite/affine/block-embed/src/embed-github-block/embed-github-spec.ts +++ b/blocksuite/affine/block-embed/src/embed-github-block/embed-github-spec.ts @@ -5,6 +5,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { EmbedGithubBlockAdapterExtensions } from './adapters/extension.js'; import { EmbedGithubBlockService } from './embed-github-service.js'; export const EmbedGithubBlockSpec: ExtensionType[] = [ @@ -15,4 +16,5 @@ export const EmbedGithubBlockSpec: ExtensionType[] = [ ? literal`affine-embed-edgeless-github-block` : literal`affine-embed-github-block`; }), -]; + EmbedGithubBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/affine/block-embed/src/embed-linked-doc-block/adapters/extension.ts b/blocksuite/affine/block-embed/src/embed-linked-doc-block/adapters/extension.ts new file mode 100644 index 0000000000..5f75ffafe9 --- /dev/null +++ b/blocksuite/affine/block-embed/src/embed-linked-doc-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { EmbedLinkedDocHtmlAdapterExtension } from './html.js'; +import { EmbedLinkedDocMarkdownAdapterExtension } from './markdown.js'; +import { EmbedLinkedDocBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const EmbedLinkedDocBlockAdapterExtensions: ExtensionType[] = [ + EmbedLinkedDocHtmlAdapterExtension, + EmbedLinkedDocMarkdownAdapterExtension, + EmbedLinkedDocBlockPlainTextAdapterExtension, +]; diff --git a/blocksuite/affine/block-embed/src/embed-linked-doc-block/embed-linked-doc-spec.ts b/blocksuite/affine/block-embed/src/embed-linked-doc-block/embed-linked-doc-spec.ts index 7b6289c465..70d4f4256b 100644 --- a/blocksuite/affine/block-embed/src/embed-linked-doc-block/embed-linked-doc-spec.ts +++ b/blocksuite/affine/block-embed/src/embed-linked-doc-block/embed-linked-doc-spec.ts @@ -5,6 +5,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { EmbedLinkedDocBlockAdapterExtensions } from './adapters/extension.js'; import { commands } from './commands/index.js'; export const EmbedLinkedDocBlockSpec: ExtensionType[] = [ @@ -14,4 +15,5 @@ export const EmbedLinkedDocBlockSpec: ExtensionType[] = [ ? literal`affine-embed-edgeless-linked-doc-block` : literal`affine-embed-linked-doc-block`; }), -]; + EmbedLinkedDocBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/affine/block-embed/src/embed-loom-block/adapters/extension.ts b/blocksuite/affine/block-embed/src/embed-loom-block/adapters/extension.ts new file mode 100644 index 0000000000..13afbf167c --- /dev/null +++ b/blocksuite/affine/block-embed/src/embed-loom-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { EmbedLoomBlockHtmlAdapterExtension } from './html.js'; +import { EmbedLoomMarkdownAdapterExtension } from './markdown.js'; +import { EmbedLoomBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const EmbedLoomBlockAdapterExtensions: ExtensionType[] = [ + EmbedLoomBlockHtmlAdapterExtension, + EmbedLoomMarkdownAdapterExtension, + EmbedLoomBlockPlainTextAdapterExtension, +]; diff --git a/blocksuite/affine/block-embed/src/embed-loom-block/embed-loom-spec.ts b/blocksuite/affine/block-embed/src/embed-loom-block/embed-loom-spec.ts index 65e4a803da..4752629d1b 100644 --- a/blocksuite/affine/block-embed/src/embed-loom-block/embed-loom-spec.ts +++ b/blocksuite/affine/block-embed/src/embed-loom-block/embed-loom-spec.ts @@ -5,6 +5,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { EmbedLoomBlockAdapterExtensions } from './adapters/extension.js'; import { EmbedLoomBlockService } from './embed-loom-service.js'; export const EmbedLoomBlockSpec: ExtensionType[] = [ @@ -15,4 +16,5 @@ export const EmbedLoomBlockSpec: ExtensionType[] = [ ? literal`affine-embed-edgeless-loom-block` : literal`affine-embed-loom-block`; }), -]; + EmbedLoomBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/affine/block-embed/src/embed-synced-doc-block/adapters/extension.ts b/blocksuite/affine/block-embed/src/embed-synced-doc-block/adapters/extension.ts new file mode 100644 index 0000000000..76a25436c5 --- /dev/null +++ b/blocksuite/affine/block-embed/src/embed-synced-doc-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { EmbedSyncedDocBlockHtmlAdapterExtension } from './html.js'; +import { EmbedSyncedDocBlockMarkdownAdapterExtension } from './markdown.js'; +import { EmbedSyncedDocBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const EmbedSyncedDocBlockAdapterExtensions: ExtensionType[] = [ + EmbedSyncedDocBlockHtmlAdapterExtension, + EmbedSyncedDocBlockMarkdownAdapterExtension, + EmbedSyncedDocBlockPlainTextAdapterExtension, +]; diff --git a/blocksuite/affine/block-embed/src/embed-synced-doc-block/embed-synced-doc-spec.ts b/blocksuite/affine/block-embed/src/embed-synced-doc-block/embed-synced-doc-spec.ts index a398623153..e82625ef30 100644 --- a/blocksuite/affine/block-embed/src/embed-synced-doc-block/embed-synced-doc-spec.ts +++ b/blocksuite/affine/block-embed/src/embed-synced-doc-block/embed-synced-doc-spec.ts @@ -5,6 +5,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { EmbedSyncedDocBlockAdapterExtensions } from './adapters/extension.js'; import { EmbedSyncedDocBlockService } from './embed-synced-doc-service.js'; export const EmbedSyncedDocBlockSpec: ExtensionType[] = [ @@ -15,4 +16,5 @@ export const EmbedSyncedDocBlockSpec: ExtensionType[] = [ ? literal`affine-embed-edgeless-synced-doc-block` : literal`affine-embed-synced-doc-block`; }), -]; + EmbedSyncedDocBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/affine/block-embed/src/embed-youtube-block/adapters/extension.ts b/blocksuite/affine/block-embed/src/embed-youtube-block/adapters/extension.ts new file mode 100644 index 0000000000..8ef9c011bb --- /dev/null +++ b/blocksuite/affine/block-embed/src/embed-youtube-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { EmbedYoutubeBlockHtmlAdapterExtension } from './html.js'; +import { EmbedYoutubeMarkdownAdapterExtension } from './markdown.js'; +import { EmbedYoutubeBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const EmbedYoutubeBlockAdapterExtensions: ExtensionType[] = [ + EmbedYoutubeBlockHtmlAdapterExtension, + EmbedYoutubeMarkdownAdapterExtension, + EmbedYoutubeBlockPlainTextAdapterExtension, +]; diff --git a/blocksuite/affine/block-embed/src/embed-youtube-block/embed-youtube-spec.ts b/blocksuite/affine/block-embed/src/embed-youtube-block/embed-youtube-spec.ts index 881699b664..f18387cb86 100644 --- a/blocksuite/affine/block-embed/src/embed-youtube-block/embed-youtube-spec.ts +++ b/blocksuite/affine/block-embed/src/embed-youtube-block/embed-youtube-spec.ts @@ -5,6 +5,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { EmbedYoutubeBlockAdapterExtensions } from './adapters/extension.js'; import { EmbedYoutubeBlockService } from './embed-youtube-service.js'; export const EmbedYoutubeBlockSpec: ExtensionType[] = [ @@ -15,4 +16,5 @@ export const EmbedYoutubeBlockSpec: ExtensionType[] = [ ? literal`affine-embed-edgeless-youtube-block` : literal`affine-embed-youtube-block`; }), -]; + EmbedYoutubeBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/affine/block-list/src/adapters/extension.ts b/blocksuite/affine/block-list/src/adapters/extension.ts new file mode 100644 index 0000000000..3dc1f0f5d5 --- /dev/null +++ b/blocksuite/affine/block-list/src/adapters/extension.ts @@ -0,0 +1,13 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { ListBlockHtmlAdapterExtension } from './html.js'; +import { ListBlockMarkdownAdapterExtension } from './markdown.js'; +import { ListBlockNotionHtmlAdapterExtension } from './notion-html.js'; +import { ListBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const ListBlockAdapterExtensions: ExtensionType[] = [ + ListBlockHtmlAdapterExtension, + ListBlockMarkdownAdapterExtension, + ListBlockPlainTextAdapterExtension, + ListBlockNotionHtmlAdapterExtension, +]; diff --git a/blocksuite/affine/block-list/src/list-spec.ts b/blocksuite/affine/block-list/src/list-spec.ts index 763ccc7b62..6877850cbe 100644 --- a/blocksuite/affine/block-list/src/list-spec.ts +++ b/blocksuite/affine/block-list/src/list-spec.ts @@ -6,6 +6,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { ListBlockAdapterExtensions } from './adapters/extension.js'; import { commands } from './commands/index.js'; import { ListKeymapExtension, ListTextKeymapExtension } from './list-keymap.js'; import { ListBlockService, ListDragHandleOption } from './list-service.js'; @@ -18,4 +19,5 @@ export const ListBlockSpec: ExtensionType[] = [ ListKeymapExtension, ListTextKeymapExtension, ListDragHandleOption, -]; + ListBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/affine/block-paragraph/src/adapters/extension.ts b/blocksuite/affine/block-paragraph/src/adapters/extension.ts new file mode 100644 index 0000000000..80c8cf65a2 --- /dev/null +++ b/blocksuite/affine/block-paragraph/src/adapters/extension.ts @@ -0,0 +1,13 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { ParagraphBlockHtmlAdapterExtension } from './html.js'; +import { ParagraphBlockMarkdownAdapterExtension } from './markdown.js'; +import { ParagraphBlockNotionHtmlAdapterExtension } from './notion-html.js'; +import { ParagraphBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const ParagraphBlockAdapterExtensions: ExtensionType[] = [ + ParagraphBlockHtmlAdapterExtension, + ParagraphBlockMarkdownAdapterExtension, + ParagraphBlockPlainTextAdapterExtension, + ParagraphBlockNotionHtmlAdapterExtension, +]; diff --git a/blocksuite/affine/block-paragraph/src/paragraph-spec.ts b/blocksuite/affine/block-paragraph/src/paragraph-spec.ts index 046e857af3..0f68f863bb 100644 --- a/blocksuite/affine/block-paragraph/src/paragraph-spec.ts +++ b/blocksuite/affine/block-paragraph/src/paragraph-spec.ts @@ -6,6 +6,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { ParagraphBlockAdapterExtensions } from './adapters/extension.js'; import { commands } from './commands/index.js'; import { ParagraphDragHandleOption } from './paragraph-drag-extension.js'; import { @@ -22,4 +23,5 @@ export const ParagraphBlockSpec: ExtensionType[] = [ ParagraphTextKeymapExtension, ParagraphKeymapExtension, ParagraphDragHandleOption, -]; + ParagraphBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/affine/block-surface/src/adapters/extension.ts b/blocksuite/affine/block-surface/src/adapters/extension.ts index daa6faec96..46f2de881f 100644 --- a/blocksuite/affine/block-surface/src/adapters/extension.ts +++ b/blocksuite/affine/block-surface/src/adapters/extension.ts @@ -1,4 +1,3 @@ -import { SurfaceBlockHtmlAdapterExtension } from './html-adapter/html.js'; import { EdgelessSurfaceBlockMarkdownAdapterExtension, SurfaceBlockMarkdownAdapterExtension, @@ -11,7 +10,6 @@ import { export const SurfaceBlockAdapterExtensions = [ SurfaceBlockPlainTextAdapterExtension, SurfaceBlockMarkdownAdapterExtension, - SurfaceBlockHtmlAdapterExtension, ]; export const EdgelessSurfaceBlockAdapterExtensions = [ diff --git a/blocksuite/blocks/src/_common/adapters/extension.ts b/blocksuite/blocks/src/_common/adapters/extension.ts index c2fde47ffa..228113d748 100644 --- a/blocksuite/blocks/src/_common/adapters/extension.ts +++ b/blocksuite/blocks/src/_common/adapters/extension.ts @@ -1,16 +1,12 @@ import type { ExtensionType } from '@blocksuite/block-std'; import { AttachmentAdapterFactoryExtension } from './attachment.js'; -import { BlockHtmlAdapterExtensions } from './html-adapter/block-matcher.js'; import { HtmlAdapterFactoryExtension } from './html-adapter/html.js'; import { ImageAdapterFactoryExtension } from './image.js'; -import { BlockMarkdownAdapterExtensions } from './markdown/block-matcher.js'; import { MarkdownAdapterFactoryExtension } from './markdown/markdown.js'; import { MixTextAdapterFactoryExtension } from './mix-text.js'; -import { BlockNotionHtmlAdapterExtensions } from './notion-html/block-matcher.js'; import { NotionHtmlAdapterFactoryExtension } from './notion-html/notion-html.js'; import { NotionTextAdapterFactoryExtension } from './notion-text.js'; -import { BlockPlainTextAdapterExtensions } from './plain-text/block-matcher.js'; import { PlainTextAdapterFactoryExtension } from './plain-text/plain-text.js'; export const AdapterFactoryExtensions: ExtensionType[] = [ @@ -23,10 +19,3 @@ export const AdapterFactoryExtensions: ExtensionType[] = [ NotionHtmlAdapterFactoryExtension, MixTextAdapterFactoryExtension, ]; - -export const BlockAdapterMatcherExtensions: ExtensionType[] = [ - BlockPlainTextAdapterExtensions, - BlockMarkdownAdapterExtensions, - BlockHtmlAdapterExtensions, - BlockNotionHtmlAdapterExtensions, -].flat(); diff --git a/blocksuite/blocks/src/_common/adapters/html-adapter/block-matcher.ts b/blocksuite/blocks/src/_common/adapters/html-adapter/block-matcher.ts index 5a51a08a01..1fa564266b 100644 --- a/blocksuite/blocks/src/_common/adapters/html-adapter/block-matcher.ts +++ b/blocksuite/blocks/src/_common/adapters/html-adapter/block-matcher.ts @@ -1,51 +1,20 @@ import { - EmbedFigmaBlockHtmlAdapterExtension, embedFigmaBlockHtmlAdapterMatcher, - EmbedGithubBlockHtmlAdapterExtension, embedGithubBlockHtmlAdapterMatcher, embedLinkedDocBlockHtmlAdapterMatcher, - EmbedLinkedDocHtmlAdapterExtension, - EmbedLoomBlockHtmlAdapterExtension, embedLoomBlockHtmlAdapterMatcher, - EmbedSyncedDocBlockHtmlAdapterExtension, embedSyncedDocBlockHtmlAdapterMatcher, - EmbedYoutubeBlockHtmlAdapterExtension, embedYoutubeBlockHtmlAdapterMatcher, } from '@blocksuite/affine-block-embed'; -import { - ListBlockHtmlAdapterExtension, - listBlockHtmlAdapterMatcher, -} from '@blocksuite/affine-block-list'; -import { - ParagraphBlockHtmlAdapterExtension, - paragraphBlockHtmlAdapterMatcher, -} from '@blocksuite/affine-block-paragraph'; -import type { ExtensionType } from '@blocksuite/block-std'; +import { listBlockHtmlAdapterMatcher } from '@blocksuite/affine-block-list'; +import { paragraphBlockHtmlAdapterMatcher } from '@blocksuite/affine-block-paragraph'; -import { - BookmarkBlockHtmlAdapterExtension, - bookmarkBlockHtmlAdapterMatcher, -} from '../../../bookmark-block/adapters/html.js'; -import { - CodeBlockHtmlAdapterExtension, - codeBlockHtmlAdapterMatcher, -} from '../../../code-block/adapters/html.js'; -import { - DatabaseBlockHtmlAdapterExtension, - databaseBlockHtmlAdapterMatcher, -} from '../../../database-block/adapters/html.js'; -import { - DividerBlockHtmlAdapterExtension, - dividerBlockHtmlAdapterMatcher, -} from '../../../divider-block/adapters/html.js'; -import { - ImageBlockHtmlAdapterExtension, - imageBlockHtmlAdapterMatcher, -} from '../../../image-block/adapters/html.js'; -import { - RootBlockHtmlAdapterExtension, - rootBlockHtmlAdapterMatcher, -} from '../../../root-block/adapters/html.js'; +import { bookmarkBlockHtmlAdapterMatcher } from '../../../bookmark-block/adapters/html.js'; +import { codeBlockHtmlAdapterMatcher } from '../../../code-block/adapters/html.js'; +import { databaseBlockHtmlAdapterMatcher } from '../../../database-block/adapters/html.js'; +import { dividerBlockHtmlAdapterMatcher } from '../../../divider-block/adapters/html.js'; +import { imageBlockHtmlAdapterMatcher } from '../../../image-block/adapters/html.js'; +import { rootBlockHtmlAdapterMatcher } from '../../../root-block/adapters/html.js'; export const defaultBlockHtmlAdapterMatchers = [ listBlockHtmlAdapterMatcher, @@ -63,20 +32,3 @@ export const defaultBlockHtmlAdapterMatchers = [ embedLinkedDocBlockHtmlAdapterMatcher, embedSyncedDocBlockHtmlAdapterMatcher, ]; - -export const BlockHtmlAdapterExtensions: ExtensionType[] = [ - ListBlockHtmlAdapterExtension, - ParagraphBlockHtmlAdapterExtension, - CodeBlockHtmlAdapterExtension, - DividerBlockHtmlAdapterExtension, - ImageBlockHtmlAdapterExtension, - RootBlockHtmlAdapterExtension, - EmbedYoutubeBlockHtmlAdapterExtension, - EmbedFigmaBlockHtmlAdapterExtension, - EmbedLoomBlockHtmlAdapterExtension, - EmbedGithubBlockHtmlAdapterExtension, - BookmarkBlockHtmlAdapterExtension, - DatabaseBlockHtmlAdapterExtension, - EmbedLinkedDocHtmlAdapterExtension, - EmbedSyncedDocBlockHtmlAdapterExtension, -]; diff --git a/blocksuite/blocks/src/_common/adapters/html-adapter/index.ts b/blocksuite/blocks/src/_common/adapters/html-adapter/index.ts index cf75421237..bec195ca8e 100644 --- a/blocksuite/blocks/src/_common/adapters/html-adapter/index.ts +++ b/blocksuite/blocks/src/_common/adapters/html-adapter/index.ts @@ -1,7 +1,4 @@ -export { - BlockHtmlAdapterExtensions, - defaultBlockHtmlAdapterMatchers, -} from './block-matcher.js'; +export { defaultBlockHtmlAdapterMatchers } from './block-matcher.js'; export { HtmlAdapter, HtmlAdapterFactoryExtension, diff --git a/blocksuite/blocks/src/_common/adapters/index.ts b/blocksuite/blocks/src/_common/adapters/index.ts index a1766dd7de..d6e8c7b240 100644 --- a/blocksuite/blocks/src/_common/adapters/index.ts +++ b/blocksuite/blocks/src/_common/adapters/index.ts @@ -1,4 +1,5 @@ export * from './attachment.js'; +export * from './extension.js'; export * from './html-adapter/html.js'; export * from './image.js'; export * from './markdown/index.js'; diff --git a/blocksuite/blocks/src/_common/adapters/markdown/block-matcher.ts b/blocksuite/blocks/src/_common/adapters/markdown/block-matcher.ts index 28b1260389..ca9b2323d5 100644 --- a/blocksuite/blocks/src/_common/adapters/markdown/block-matcher.ts +++ b/blocksuite/blocks/src/_common/adapters/markdown/block-matcher.ts @@ -1,55 +1,21 @@ import { embedFigmaBlockMarkdownAdapterMatcher, - EmbedFigmaMarkdownAdapterExtension, embedGithubBlockMarkdownAdapterMatcher, - EmbedGithubMarkdownAdapterExtension, embedLinkedDocBlockMarkdownAdapterMatcher, - EmbedLinkedDocMarkdownAdapterExtension, embedLoomBlockMarkdownAdapterMatcher, - EmbedLoomMarkdownAdapterExtension, - EmbedSyncedDocBlockMarkdownAdapterExtension, embedSyncedDocBlockMarkdownAdapterMatcher, embedYoutubeBlockMarkdownAdapterMatcher, - EmbedYoutubeMarkdownAdapterExtension, } from '@blocksuite/affine-block-embed'; -import { - ListBlockMarkdownAdapterExtension, - listBlockMarkdownAdapterMatcher, -} from '@blocksuite/affine-block-list'; -import { - ParagraphBlockMarkdownAdapterExtension, - paragraphBlockMarkdownAdapterMatcher, -} from '@blocksuite/affine-block-paragraph'; -import type { ExtensionType } from '@blocksuite/block-std'; +import { listBlockMarkdownAdapterMatcher } from '@blocksuite/affine-block-list'; +import { paragraphBlockMarkdownAdapterMatcher } from '@blocksuite/affine-block-paragraph'; -import { - BookmarkBlockMarkdownAdapterExtension, - bookmarkBlockMarkdownAdapterMatcher, -} from '../../../bookmark-block/adapters/markdown.js'; -import { - CodeBlockMarkdownAdapterExtension, - codeBlockMarkdownAdapterMatcher, -} from '../../../code-block/adapters/markdown.js'; -import { - DatabaseBlockMarkdownAdapterExtension, - databaseBlockMarkdownAdapterMatcher, -} from '../../../database-block/adapters/markdown.js'; -import { - DividerBlockMarkdownAdapterExtension, - dividerBlockMarkdownAdapterMatcher, -} from '../../../divider-block/adapters/markdown.js'; -import { - ImageBlockMarkdownAdapterExtension, - imageBlockMarkdownAdapterMatcher, -} from '../../../image-block/adapters/markdown.js'; -import { - LatexBlockMarkdownAdapterExtension, - latexBlockMarkdownAdapterMatcher, -} from '../../../latex-block/adapters/markdown.js'; -import { - RootBlockMarkdownAdapterExtension, - rootBlockMarkdownAdapterMatcher, -} from '../../../root-block/adapters/markdown.js'; +import { bookmarkBlockMarkdownAdapterMatcher } from '../../../bookmark-block/adapters/markdown.js'; +import { codeBlockMarkdownAdapterMatcher } from '../../../code-block/adapters/markdown.js'; +import { databaseBlockMarkdownAdapterMatcher } from '../../../database-block/adapters/markdown.js'; +import { dividerBlockMarkdownAdapterMatcher } from '../../../divider-block/adapters/markdown.js'; +import { imageBlockMarkdownAdapterMatcher } from '../../../image-block/adapters/markdown.js'; +import { latexBlockMarkdownAdapterMatcher } from '../../../latex-block/adapters/markdown.js'; +import { rootBlockMarkdownAdapterMatcher } from '../../../root-block/adapters/markdown.js'; export const defaultBlockMarkdownAdapterMatchers = [ embedFigmaBlockMarkdownAdapterMatcher, @@ -68,21 +34,3 @@ export const defaultBlockMarkdownAdapterMatchers = [ latexBlockMarkdownAdapterMatcher, rootBlockMarkdownAdapterMatcher, ]; - -export const BlockMarkdownAdapterExtensions: ExtensionType[] = [ - EmbedFigmaMarkdownAdapterExtension, - EmbedGithubMarkdownAdapterExtension, - EmbedLinkedDocMarkdownAdapterExtension, - EmbedLoomMarkdownAdapterExtension, - EmbedSyncedDocBlockMarkdownAdapterExtension, - EmbedYoutubeMarkdownAdapterExtension, - ListBlockMarkdownAdapterExtension, - ParagraphBlockMarkdownAdapterExtension, - BookmarkBlockMarkdownAdapterExtension, - CodeBlockMarkdownAdapterExtension, - DatabaseBlockMarkdownAdapterExtension, - DividerBlockMarkdownAdapterExtension, - ImageBlockMarkdownAdapterExtension, - LatexBlockMarkdownAdapterExtension, - RootBlockMarkdownAdapterExtension, -]; diff --git a/blocksuite/blocks/src/_common/adapters/markdown/index.ts b/blocksuite/blocks/src/_common/adapters/markdown/index.ts index 2e63d55602..ec387f385d 100644 --- a/blocksuite/blocks/src/_common/adapters/markdown/index.ts +++ b/blocksuite/blocks/src/_common/adapters/markdown/index.ts @@ -1,7 +1,4 @@ -export { - BlockMarkdownAdapterExtensions, - defaultBlockMarkdownAdapterMatchers, -} from './block-matcher.js'; +export { defaultBlockMarkdownAdapterMatchers } from './block-matcher.js'; export { MarkdownAdapter, MarkdownAdapterFactoryExtension, diff --git a/blocksuite/blocks/src/_common/adapters/notion-html/block-matcher.ts b/blocksuite/blocks/src/_common/adapters/notion-html/block-matcher.ts index 544479e36b..6013a505d2 100644 --- a/blocksuite/blocks/src/_common/adapters/notion-html/block-matcher.ts +++ b/blocksuite/blocks/src/_common/adapters/notion-html/block-matcher.ts @@ -1,46 +1,15 @@ -import { - ListBlockNotionHtmlAdapterExtension, - listBlockNotionHtmlAdapterMatcher, -} from '@blocksuite/affine-block-list'; -import { - ParagraphBlockNotionHtmlAdapterExtension, - paragraphBlockNotionHtmlAdapterMatcher, -} from '@blocksuite/affine-block-paragraph'; +import { listBlockNotionHtmlAdapterMatcher } from '@blocksuite/affine-block-list'; +import { paragraphBlockNotionHtmlAdapterMatcher } from '@blocksuite/affine-block-paragraph'; import type { BlockNotionHtmlAdapterMatcher } from '@blocksuite/affine-shared/adapters'; -import type { ExtensionType } from '@blocksuite/block-std'; -import { - AttachmentBlockNotionHtmlAdapterExtension, - attachmentBlockNotionHtmlAdapterMatcher, -} from '../../../attachment-block/adapters/notion-html.js'; -import { - BookmarkBlockNotionHtmlAdapterExtension, - bookmarkBlockNotionHtmlAdapterMatcher, -} from '../../../bookmark-block/adapters/notion-html.js'; -import { - CodeBlockNotionHtmlAdapterExtension, - codeBlockNotionHtmlAdapterMatcher, -} from '../../../code-block/adapters/notion-html.js'; -import { - DatabaseBlockNotionHtmlAdapterExtension, - databaseBlockNotionHtmlAdapterMatcher, -} from '../../../database-block/adapters/notion-html.js'; -import { - DividerBlockNotionHtmlAdapterExtension, - dividerBlockNotionHtmlAdapterMatcher, -} from '../../../divider-block/adapters/notion-html.js'; -import { - ImageBlockNotionHtmlAdapterExtension, - imageBlockNotionHtmlAdapterMatcher, -} from '../../../image-block/adapters/notion-html.js'; -import { - LatexBlockNotionHtmlAdapterExtension, - latexBlockNotionHtmlAdapterMatcher, -} from '../../../latex-block/adapters/notion-html.js'; -import { - RootBlockNotionHtmlAdapterExtension, - rootBlockNotionHtmlAdapterMatcher, -} from '../../../root-block/adapters/notion-html.js'; +import { attachmentBlockNotionHtmlAdapterMatcher } from '../../../attachment-block/adapters/notion-html.js'; +import { bookmarkBlockNotionHtmlAdapterMatcher } from '../../../bookmark-block/adapters/notion-html.js'; +import { codeBlockNotionHtmlAdapterMatcher } from '../../../code-block/adapters/notion-html.js'; +import { databaseBlockNotionHtmlAdapterMatcher } from '../../../database-block/adapters/notion-html.js'; +import { dividerBlockNotionHtmlAdapterMatcher } from '../../../divider-block/adapters/notion-html.js'; +import { imageBlockNotionHtmlAdapterMatcher } from '../../../image-block/adapters/notion-html.js'; +import { latexBlockNotionHtmlAdapterMatcher } from '../../../latex-block/adapters/notion-html.js'; +import { rootBlockNotionHtmlAdapterMatcher } from '../../../root-block/adapters/notion-html.js'; export const defaultBlockNotionHtmlAdapterMatchers: BlockNotionHtmlAdapterMatcher[] = [ @@ -55,16 +24,3 @@ export const defaultBlockNotionHtmlAdapterMatchers: BlockNotionHtmlAdapterMatche attachmentBlockNotionHtmlAdapterMatcher, latexBlockNotionHtmlAdapterMatcher, ]; - -export const BlockNotionHtmlAdapterExtensions: ExtensionType[] = [ - ListBlockNotionHtmlAdapterExtension, - ParagraphBlockNotionHtmlAdapterExtension, - CodeBlockNotionHtmlAdapterExtension, - DividerBlockNotionHtmlAdapterExtension, - ImageBlockNotionHtmlAdapterExtension, - RootBlockNotionHtmlAdapterExtension, - BookmarkBlockNotionHtmlAdapterExtension, - DatabaseBlockNotionHtmlAdapterExtension, - AttachmentBlockNotionHtmlAdapterExtension, - LatexBlockNotionHtmlAdapterExtension, -]; diff --git a/blocksuite/blocks/src/_common/adapters/notion-html/index.ts b/blocksuite/blocks/src/_common/adapters/notion-html/index.ts index 0282c785b1..54badc175d 100644 --- a/blocksuite/blocks/src/_common/adapters/notion-html/index.ts +++ b/blocksuite/blocks/src/_common/adapters/notion-html/index.ts @@ -1,7 +1,4 @@ -export { - BlockNotionHtmlAdapterExtensions, - defaultBlockNotionHtmlAdapterMatchers, -} from './block-matcher.js'; +export { defaultBlockNotionHtmlAdapterMatchers } from './block-matcher.js'; export { NotionHtmlAdapter, NotionHtmlAdapterFactoryExtension, diff --git a/blocksuite/blocks/src/_common/adapters/plain-text/block-matcher.ts b/blocksuite/blocks/src/_common/adapters/plain-text/block-matcher.ts index dd89b6d990..8d469ea1e6 100644 --- a/blocksuite/blocks/src/_common/adapters/plain-text/block-matcher.ts +++ b/blocksuite/blocks/src/_common/adapters/plain-text/block-matcher.ts @@ -1,44 +1,19 @@ import { - EmbedFigmaBlockPlainTextAdapterExtension, embedFigmaBlockPlainTextAdapterMatcher, - EmbedGithubBlockPlainTextAdapterExtension, embedGithubBlockPlainTextAdapterMatcher, - EmbedLinkedDocBlockPlainTextAdapterExtension, embedLinkedDocBlockPlainTextAdapterMatcher, - EmbedLoomBlockPlainTextAdapterExtension, embedLoomBlockPlainTextAdapterMatcher, - EmbedSyncedDocBlockPlainTextAdapterExtension, embedSyncedDocBlockPlainTextAdapterMatcher, - EmbedYoutubeBlockPlainTextAdapterExtension, embedYoutubeBlockPlainTextAdapterMatcher, } from '@blocksuite/affine-block-embed'; -import { - ListBlockPlainTextAdapterExtension, - listBlockPlainTextAdapterMatcher, -} from '@blocksuite/affine-block-list'; -import { - ParagraphBlockPlainTextAdapterExtension, - paragraphBlockPlainTextAdapterMatcher, -} from '@blocksuite/affine-block-paragraph'; +import { listBlockPlainTextAdapterMatcher } from '@blocksuite/affine-block-list'; +import { paragraphBlockPlainTextAdapterMatcher } from '@blocksuite/affine-block-paragraph'; import type { BlockPlainTextAdapterMatcher } from '@blocksuite/affine-shared/adapters'; -import type { ExtensionType } from '@blocksuite/block-std'; -import { - BookmarkBlockPlainTextAdapterExtension, - bookmarkBlockPlainTextAdapterMatcher, -} from '../../../bookmark-block/adapters/plain-text.js'; -import { - CodeBlockPlainTextAdapterExtension, - codeBlockPlainTextAdapterMatcher, -} from '../../../code-block/adapters/plain-text.js'; -import { - DividerBlockPlainTextAdapterExtension, - dividerBlockPlainTextAdapterMatcher, -} from '../../../divider-block/adapters/plain-text.js'; -import { - LatexBlockPlainTextAdapterExtension, - latexBlockPlainTextAdapterMatcher, -} from '../../../latex-block/adapters/plain-text.js'; +import { bookmarkBlockPlainTextAdapterMatcher } from '../../../bookmark-block/adapters/plain-text.js'; +import { codeBlockPlainTextAdapterMatcher } from '../../../code-block/adapters/plain-text.js'; +import { dividerBlockPlainTextAdapterMatcher } from '../../../divider-block/adapters/plain-text.js'; +import { latexBlockPlainTextAdapterMatcher } from '../../../latex-block/adapters/plain-text.js'; export const defaultBlockPlainTextAdapterMatchers: BlockPlainTextAdapterMatcher[] = [ @@ -55,18 +30,3 @@ export const defaultBlockPlainTextAdapterMatchers: BlockPlainTextAdapterMatcher[ embedSyncedDocBlockPlainTextAdapterMatcher, latexBlockPlainTextAdapterMatcher, ]; - -export const BlockPlainTextAdapterExtensions: ExtensionType[] = [ - ParagraphBlockPlainTextAdapterExtension, - ListBlockPlainTextAdapterExtension, - DividerBlockPlainTextAdapterExtension, - CodeBlockPlainTextAdapterExtension, - BookmarkBlockPlainTextAdapterExtension, - EmbedFigmaBlockPlainTextAdapterExtension, - EmbedGithubBlockPlainTextAdapterExtension, - EmbedLoomBlockPlainTextAdapterExtension, - EmbedYoutubeBlockPlainTextAdapterExtension, - EmbedLinkedDocBlockPlainTextAdapterExtension, - EmbedSyncedDocBlockPlainTextAdapterExtension, - LatexBlockPlainTextAdapterExtension, -]; diff --git a/blocksuite/blocks/src/_specs/common.ts b/blocksuite/blocks/src/_specs/common.ts index 100265d9ca..b26960d4e4 100644 --- a/blocksuite/blocks/src/_specs/common.ts +++ b/blocksuite/blocks/src/_specs/common.ts @@ -5,10 +5,7 @@ import { RichTextExtensions } from '@blocksuite/affine-components/rich-text'; import { EditPropsStore } from '@blocksuite/affine-shared/services'; import type { ExtensionType } from '@blocksuite/block-std'; -import { - AdapterFactoryExtensions, - BlockAdapterMatcherExtensions, -} from '../_common/adapters/extension.js'; +import { AdapterFactoryExtensions } from '../_common/adapters/extension.js'; import { AttachmentBlockSpec } from '../attachment-block/attachment-spec.js'; import { BookmarkBlockSpec } from '../bookmark-block/bookmark-spec.js'; import { CodeBlockSpec } from '../code-block/code-block-spec.js'; @@ -35,7 +32,6 @@ export const CommonFirstPartyBlockSpecs: ExtensionType[] = [ BookmarkBlockSpec, AttachmentBlockSpec, EmbedExtensions, - BlockAdapterMatcherExtensions, AdapterFactoryExtensions, ].flat(); @@ -53,6 +49,5 @@ export const EdgelessFirstPartyBlockSpecs: ExtensionType[] = [ BookmarkBlockSpec, AttachmentBlockSpec, EmbedExtensions, - BlockAdapterMatcherExtensions, AdapterFactoryExtensions, ].flat(); diff --git a/blocksuite/blocks/src/attachment-block/attachment-spec.ts b/blocksuite/blocks/src/attachment-block/attachment-spec.ts index 34f371df8d..c968a5b49f 100644 --- a/blocksuite/blocks/src/attachment-block/attachment-spec.ts +++ b/blocksuite/blocks/src/attachment-block/attachment-spec.ts @@ -5,6 +5,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { AttachmentBlockNotionHtmlAdapterExtension } from './adapters/notion-html.js'; import { AttachmentBlockService, AttachmentDragHandleOption, @@ -25,4 +26,5 @@ export const AttachmentBlockSpec: ExtensionType[] = [ AttachmentDragHandleOption, AttachmentEmbedConfigExtension(), AttachmentEmbedService, + AttachmentBlockNotionHtmlAdapterExtension, ]; diff --git a/blocksuite/blocks/src/bookmark-block/adapters/extension.ts b/blocksuite/blocks/src/bookmark-block/adapters/extension.ts new file mode 100644 index 0000000000..41b0f9a52d --- /dev/null +++ b/blocksuite/blocks/src/bookmark-block/adapters/extension.ts @@ -0,0 +1,13 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { BookmarkBlockHtmlAdapterExtension } from './html.js'; +import { BookmarkBlockMarkdownAdapterExtension } from './markdown.js'; +import { BookmarkBlockNotionHtmlAdapterExtension } from './notion-html.js'; +import { BookmarkBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const BookmarkBlockAdapterExtensions: ExtensionType[] = [ + BookmarkBlockHtmlAdapterExtension, + BookmarkBlockMarkdownAdapterExtension, + BookmarkBlockNotionHtmlAdapterExtension, + BookmarkBlockPlainTextAdapterExtension, +]; diff --git a/blocksuite/blocks/src/bookmark-block/bookmark-spec.ts b/blocksuite/blocks/src/bookmark-block/bookmark-spec.ts index 2bf50b1ac4..e7342b1a47 100644 --- a/blocksuite/blocks/src/bookmark-block/bookmark-spec.ts +++ b/blocksuite/blocks/src/bookmark-block/bookmark-spec.ts @@ -6,6 +6,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { BookmarkBlockAdapterExtensions } from './adapters/extension.js'; import { BookmarkBlockService, BookmarkDragHandleOption, @@ -22,4 +23,5 @@ export const BookmarkBlockSpec: ExtensionType[] = [ : literal`affine-bookmark`; }), BookmarkDragHandleOption, -]; + BookmarkBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/blocks/src/code-block/adapters/extension.ts b/blocksuite/blocks/src/code-block/adapters/extension.ts new file mode 100644 index 0000000000..b93faadad8 --- /dev/null +++ b/blocksuite/blocks/src/code-block/adapters/extension.ts @@ -0,0 +1,13 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { CodeBlockHtmlAdapterExtension } from './html.js'; +import { CodeBlockMarkdownAdapterExtension } from './markdown.js'; +import { CodeBlockNotionHtmlAdapterExtension } from './notion-html.js'; +import { CodeBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const CodeBlockAdapterExtensions: ExtensionType[] = [ + CodeBlockHtmlAdapterExtension, + CodeBlockMarkdownAdapterExtension, + CodeBlockPlainTextAdapterExtension, + CodeBlockNotionHtmlAdapterExtension, +]; diff --git a/blocksuite/blocks/src/code-block/code-block-spec.ts b/blocksuite/blocks/src/code-block/code-block-spec.ts index 5b95b7bed2..eca27aab85 100644 --- a/blocksuite/blocks/src/code-block/code-block-spec.ts +++ b/blocksuite/blocks/src/code-block/code-block-spec.ts @@ -7,6 +7,7 @@ import { import { literal, unsafeStatic } from 'lit/static-html.js'; import { AFFINE_CODE_TOOLBAR_WIDGET } from '../root-block/widgets/code-toolbar/index.js'; +import { CodeBlockAdapterExtensions } from './adapters/extension.js'; import { CodeBlockInlineManagerExtension, CodeBlockUnitSpecExtension, @@ -22,4 +23,5 @@ export const CodeBlockSpec: ExtensionType[] = [ }), CodeBlockInlineManagerExtension, CodeBlockUnitSpecExtension, -]; + CodeBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/blocks/src/database-block/adapters/extension.ts b/blocksuite/blocks/src/database-block/adapters/extension.ts new file mode 100644 index 0000000000..ce7de5923b --- /dev/null +++ b/blocksuite/blocks/src/database-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { DatabaseBlockHtmlAdapterExtension } from './html.js'; +import { DatabaseBlockMarkdownAdapterExtension } from './markdown.js'; +import { DatabaseBlockNotionHtmlAdapterExtension } from './notion-html.js'; + +export const DatabaseBlockAdapterExtensions: ExtensionType[] = [ + DatabaseBlockHtmlAdapterExtension, + DatabaseBlockMarkdownAdapterExtension, + DatabaseBlockNotionHtmlAdapterExtension, +]; diff --git a/blocksuite/blocks/src/database-block/database-spec.ts b/blocksuite/blocks/src/database-block/database-spec.ts index d3277c2d79..ae617f6fc9 100644 --- a/blocksuite/blocks/src/database-block/database-spec.ts +++ b/blocksuite/blocks/src/database-block/database-spec.ts @@ -7,6 +7,7 @@ import { import { DatabaseSelectionExtension } from '@blocksuite/data-view'; import { literal } from 'lit/static-html.js'; +import { DatabaseBlockAdapterExtensions } from './adapters/extension.js'; import { commands } from './commands.js'; import { DatabaseDragHandleOption } from './config.js'; import { DatabaseBlockService } from './database-service.js'; @@ -18,4 +19,5 @@ export const DatabaseBlockSpec: ExtensionType[] = [ BlockViewExtension('affine:database', literal`affine-database`), DatabaseDragHandleOption, DatabaseSelectionExtension, -]; + DatabaseBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/blocks/src/divider-block/adapters/extension.ts b/blocksuite/blocks/src/divider-block/adapters/extension.ts new file mode 100644 index 0000000000..83e73de96f --- /dev/null +++ b/blocksuite/blocks/src/divider-block/adapters/extension.ts @@ -0,0 +1,13 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { DividerBlockHtmlAdapterExtension } from './html.js'; +import { DividerBlockMarkdownAdapterExtension } from './markdown.js'; +import { DividerBlockNotionHtmlAdapterExtension } from './notion-html.js'; +import { DividerBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const DividerBlockAdapterExtensions: ExtensionType[] = [ + DividerBlockHtmlAdapterExtension, + DividerBlockMarkdownAdapterExtension, + DividerBlockNotionHtmlAdapterExtension, + DividerBlockPlainTextAdapterExtension, +]; diff --git a/blocksuite/blocks/src/divider-block/divider-spec.ts b/blocksuite/blocks/src/divider-block/divider-spec.ts index fa6d715eca..ca2f50352e 100644 --- a/blocksuite/blocks/src/divider-block/divider-spec.ts +++ b/blocksuite/blocks/src/divider-block/divider-spec.ts @@ -1,6 +1,9 @@ import { BlockViewExtension, type ExtensionType } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { DividerBlockAdapterExtensions } from './adapters/extension.js'; + export const DividerBlockSpec: ExtensionType[] = [ BlockViewExtension('affine:divider', literal`affine-divider`), -]; + DividerBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/blocks/src/image-block/adapters/extension.ts b/blocksuite/blocks/src/image-block/adapters/extension.ts new file mode 100644 index 0000000000..bdfd0cc782 --- /dev/null +++ b/blocksuite/blocks/src/image-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { ImageBlockHtmlAdapterExtension } from './html.js'; +import { ImageBlockMarkdownAdapterExtension } from './markdown.js'; +import { ImageBlockNotionHtmlAdapterExtension } from './notion-html.js'; + +export const ImageBlockAdapterExtensions: ExtensionType[] = [ + ImageBlockHtmlAdapterExtension, + ImageBlockMarkdownAdapterExtension, + ImageBlockNotionHtmlAdapterExtension, +]; diff --git a/blocksuite/blocks/src/image-block/image-spec.ts b/blocksuite/blocks/src/image-block/image-spec.ts index 30e73efa9d..cc3409744b 100644 --- a/blocksuite/blocks/src/image-block/image-spec.ts +++ b/blocksuite/blocks/src/image-block/image-spec.ts @@ -8,6 +8,7 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { ImageBlockAdapterExtensions } from './adapters/extension.js'; import { commands } from './commands/index.js'; import { ImageBlockService, ImageDragHandleOption } from './image-service.js'; @@ -29,4 +30,5 @@ export const ImageBlockSpec: ExtensionType[] = [ }), ImageDragHandleOption, ImageSelectionExtension, -]; + ImageBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/blocks/src/latex-block/adapters/extension.ts b/blocksuite/blocks/src/latex-block/adapters/extension.ts new file mode 100644 index 0000000000..353f255bab --- /dev/null +++ b/blocksuite/blocks/src/latex-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { LatexBlockMarkdownAdapterExtension } from './markdown.js'; +import { LatexBlockNotionHtmlAdapterExtension } from './notion-html.js'; +import { LatexBlockPlainTextAdapterExtension } from './plain-text.js'; + +export const LatexBlockAdapterExtensions: ExtensionType[] = [ + LatexBlockMarkdownAdapterExtension, + LatexBlockNotionHtmlAdapterExtension, + LatexBlockPlainTextAdapterExtension, +]; diff --git a/blocksuite/blocks/src/latex-block/latex-spec.ts b/blocksuite/blocks/src/latex-block/latex-spec.ts index eeb86c1aaa..0d15e6a705 100644 --- a/blocksuite/blocks/src/latex-block/latex-spec.ts +++ b/blocksuite/blocks/src/latex-block/latex-spec.ts @@ -5,9 +5,11 @@ import { } from '@blocksuite/block-std'; import { literal } from 'lit/static-html.js'; +import { LatexBlockAdapterExtensions } from './adapters/extension.js'; import { commands } from './commands.js'; export const LatexBlockSpec: ExtensionType[] = [ BlockViewExtension('affine:latex', literal`affine-latex`), CommandExtension(commands), -]; + LatexBlockAdapterExtensions, +].flat(); diff --git a/blocksuite/blocks/src/root-block/adapters/extension.ts b/blocksuite/blocks/src/root-block/adapters/extension.ts new file mode 100644 index 0000000000..20e46a2615 --- /dev/null +++ b/blocksuite/blocks/src/root-block/adapters/extension.ts @@ -0,0 +1,11 @@ +import type { ExtensionType } from '@blocksuite/block-std'; + +import { RootBlockHtmlAdapterExtension } from './html.js'; +import { RootBlockMarkdownAdapterExtension } from './markdown.js'; +import { RootBlockNotionHtmlAdapterExtension } from './notion-html.js'; + +export const RootBlockAdapterExtensions: ExtensionType[] = [ + RootBlockHtmlAdapterExtension, + RootBlockMarkdownAdapterExtension, + RootBlockNotionHtmlAdapterExtension, +]; diff --git a/blocksuite/blocks/src/root-block/edgeless/edgeless-root-spec.ts b/blocksuite/blocks/src/root-block/edgeless/edgeless-root-spec.ts index c901ed9447..b74d354beb 100644 --- a/blocksuite/blocks/src/root-block/edgeless/edgeless-root-spec.ts +++ b/blocksuite/blocks/src/root-block/edgeless/edgeless-root-spec.ts @@ -18,6 +18,7 @@ import { ToolController } from '@blocksuite/block-std/gfx'; import { literal, unsafeStatic } from 'lit/static-html.js'; import { ExportManagerExtension } from '../../_common/export-manager/export-manager.js'; +import { RootBlockAdapterExtensions } from '../adapters/extension.js'; import { commands } from '../commands/index.js'; import { AFFINE_DOC_REMOTE_SELECTION_WIDGET } from '../widgets/doc-remote-selection/doc-remote-selection.js'; import { AFFINE_DRAG_HANDLE_WIDGET } from '../widgets/drag-handle/consts.js'; @@ -96,7 +97,8 @@ const EdgelessCommonExtension: ExtensionType[] = [ ToolController, DNDAPIExtension, DocDisplayMetaService, -]; + RootBlockAdapterExtensions, +].flat(); export const EdgelessRootBlockSpec: ExtensionType[] = [ ...EdgelessCommonExtension, diff --git a/blocksuite/blocks/src/root-block/page/page-root-spec.ts b/blocksuite/blocks/src/root-block/page/page-root-spec.ts index 565c5915dc..21a340555d 100644 --- a/blocksuite/blocks/src/root-block/page/page-root-spec.ts +++ b/blocksuite/blocks/src/root-block/page/page-root-spec.ts @@ -16,6 +16,7 @@ import { import { literal, unsafeStatic } from 'lit/static-html.js'; import { ExportManagerExtension } from '../../_common/export-manager/export-manager.js'; +import { RootBlockAdapterExtensions } from '../adapters/extension.js'; import { commands } from '../commands/index.js'; import { AFFINE_DOC_REMOTE_SELECTION_WIDGET } from '../widgets/doc-remote-selection/doc-remote-selection.js'; import { AFFINE_DRAG_HANDLE_WIDGET } from '../widgets/drag-handle/consts.js'; @@ -73,4 +74,5 @@ export const PageRootBlockSpec: ExtensionType[] = [ ExportManagerExtension, DNDAPIExtension, DocDisplayMetaService, -]; + RootBlockAdapterExtensions, +].flat();