diff --git a/packages/affine/block-embed/src/embed-figma-block/adapters/extension.ts b/packages/affine/block-embed/src/embed-figma-block/adapters/extension.ts new file mode 100644 index 000000000000..1b8017c5a4e8 --- /dev/null +++ b/packages/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/packages/affine/block-embed/src/embed-figma-block/embed-figma-spec.ts b/packages/affine/block-embed/src/embed-figma-block/embed-figma-spec.ts index 571274088716..9165e699a45f 100644 --- a/packages/affine/block-embed/src/embed-figma-block/embed-figma-spec.ts +++ b/packages/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/packages/affine/block-embed/src/embed-github-block/adapters/extension.ts b/packages/affine/block-embed/src/embed-github-block/adapters/extension.ts new file mode 100644 index 000000000000..5c6fa5cb57be --- /dev/null +++ b/packages/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/packages/affine/block-embed/src/embed-github-block/embed-github-spec.ts b/packages/affine/block-embed/src/embed-github-block/embed-github-spec.ts index e86cd30db4fe..44045362d8aa 100644 --- a/packages/affine/block-embed/src/embed-github-block/embed-github-spec.ts +++ b/packages/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/packages/affine/block-embed/src/embed-linked-doc-block/adapters/extension.ts b/packages/affine/block-embed/src/embed-linked-doc-block/adapters/extension.ts new file mode 100644 index 000000000000..5f75ffafe9ca --- /dev/null +++ b/packages/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/packages/affine/block-embed/src/embed-linked-doc-block/embed-linked-doc-spec.ts b/packages/affine/block-embed/src/embed-linked-doc-block/embed-linked-doc-spec.ts index 7b6289c4651e..70d4f4256b29 100644 --- a/packages/affine/block-embed/src/embed-linked-doc-block/embed-linked-doc-spec.ts +++ b/packages/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/packages/affine/block-embed/src/embed-loom-block/adapters/extension.ts b/packages/affine/block-embed/src/embed-loom-block/adapters/extension.ts new file mode 100644 index 000000000000..13afbf167caf --- /dev/null +++ b/packages/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/packages/affine/block-embed/src/embed-loom-block/embed-loom-spec.ts b/packages/affine/block-embed/src/embed-loom-block/embed-loom-spec.ts index 65e4a803da0c..4752629d1b66 100644 --- a/packages/affine/block-embed/src/embed-loom-block/embed-loom-spec.ts +++ b/packages/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/packages/affine/block-embed/src/embed-synced-doc-block/adapters/extension.ts b/packages/affine/block-embed/src/embed-synced-doc-block/adapters/extension.ts new file mode 100644 index 000000000000..76a25436c51a --- /dev/null +++ b/packages/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/packages/affine/block-embed/src/embed-synced-doc-block/embed-synced-doc-spec.ts b/packages/affine/block-embed/src/embed-synced-doc-block/embed-synced-doc-spec.ts index a398623153df..e82625ef302d 100644 --- a/packages/affine/block-embed/src/embed-synced-doc-block/embed-synced-doc-spec.ts +++ b/packages/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/packages/affine/block-embed/src/embed-youtube-block/adapters/extension.ts b/packages/affine/block-embed/src/embed-youtube-block/adapters/extension.ts new file mode 100644 index 000000000000..8ef9c011bb6e --- /dev/null +++ b/packages/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/packages/affine/block-embed/src/embed-youtube-block/embed-youtube-spec.ts b/packages/affine/block-embed/src/embed-youtube-block/embed-youtube-spec.ts index 881699b6644f..f18387cb8679 100644 --- a/packages/affine/block-embed/src/embed-youtube-block/embed-youtube-spec.ts +++ b/packages/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/packages/affine/block-list/src/adapters/extension.ts b/packages/affine/block-list/src/adapters/extension.ts new file mode 100644 index 000000000000..3dc1f0f5d557 --- /dev/null +++ b/packages/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/packages/affine/block-list/src/list-spec.ts b/packages/affine/block-list/src/list-spec.ts index 763ccc7b62cf..6877850cbe6c 100644 --- a/packages/affine/block-list/src/list-spec.ts +++ b/packages/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/packages/affine/block-paragraph/src/adapters/extension.ts b/packages/affine/block-paragraph/src/adapters/extension.ts new file mode 100644 index 000000000000..80c8cf65a263 --- /dev/null +++ b/packages/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/packages/affine/block-paragraph/src/paragraph-spec.ts b/packages/affine/block-paragraph/src/paragraph-spec.ts index 046e857af3b4..0f68f863bbe8 100644 --- a/packages/affine/block-paragraph/src/paragraph-spec.ts +++ b/packages/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/packages/affine/block-surface/src/adapters/extension.ts b/packages/affine/block-surface/src/adapters/extension.ts index daa6faec96df..46f2de881f39 100644 --- a/packages/affine/block-surface/src/adapters/extension.ts +++ b/packages/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/packages/blocks/src/_common/adapters/extension.ts b/packages/blocks/src/_common/adapters/extension.ts index c2fde47ffa99..228113d74817 100644 --- a/packages/blocks/src/_common/adapters/extension.ts +++ b/packages/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/packages/blocks/src/_common/adapters/html-adapter/block-matcher.ts b/packages/blocks/src/_common/adapters/html-adapter/block-matcher.ts index 899884c1ee69..1fa564266b5b 100644 --- a/packages/blocks/src/_common/adapters/html-adapter/block-matcher.ts +++ b/packages/blocks/src/_common/adapters/html-adapter/block-matcher.ts @@ -1,52 +1,20 @@ -import type { ExtensionType } from '@blocksuite/block-std'; - 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 { 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, @@ -64,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/packages/blocks/src/_common/adapters/html-adapter/index.ts b/packages/blocks/src/_common/adapters/html-adapter/index.ts index cf7542123772..bec195ca8eec 100644 --- a/packages/blocks/src/_common/adapters/html-adapter/index.ts +++ b/packages/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/packages/blocks/src/_common/adapters/index.ts b/packages/blocks/src/_common/adapters/index.ts index a1766dd7de76..d6e8c7b24033 100644 --- a/packages/blocks/src/_common/adapters/index.ts +++ b/packages/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/packages/blocks/src/_common/adapters/markdown/block-matcher.ts b/packages/blocks/src/_common/adapters/markdown/block-matcher.ts index ae3a05ff904b..ca9b2323d533 100644 --- a/packages/blocks/src/_common/adapters/markdown/block-matcher.ts +++ b/packages/blocks/src/_common/adapters/markdown/block-matcher.ts @@ -1,56 +1,21 @@ -import type { ExtensionType } from '@blocksuite/block-std'; - 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 { 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, @@ -69,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/packages/blocks/src/_common/adapters/markdown/index.ts b/packages/blocks/src/_common/adapters/markdown/index.ts index 2e63d5560294..ec387f385d90 100644 --- a/packages/blocks/src/_common/adapters/markdown/index.ts +++ b/packages/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/packages/blocks/src/_common/adapters/notion-html/block-matcher.ts b/packages/blocks/src/_common/adapters/notion-html/block-matcher.ts index a43198c35aa1..6cbd74a5d975 100644 --- a/packages/blocks/src/_common/adapters/notion-html/block-matcher.ts +++ b/packages/blocks/src/_common/adapters/notion-html/block-matcher.ts @@ -1,47 +1,16 @@ import type { BlockNotionHtmlAdapterMatcher } from '@blocksuite/affine-shared/adapters'; -import type { ExtensionType } from '@blocksuite/block-std'; -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 { - 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[] = [ @@ -56,16 +25,3 @@ export const defaultBlockNotionHtmlAdapterMatchers: BlockNotionHtmlAdapterMatche attachmentBlockNotionHtmlAdapterMatcher, latexBlockNotionHtmlAdapterMatcher, ]; - -export const BlockNotionHtmlAdapterExtensions: ExtensionType[] = [ - ListBlockNotionHtmlAdapterExtension, - ParagraphBlockNotionHtmlAdapterExtension, - CodeBlockNotionHtmlAdapterExtension, - DividerBlockNotionHtmlAdapterExtension, - ImageBlockNotionHtmlAdapterExtension, - RootBlockNotionHtmlAdapterExtension, - BookmarkBlockNotionHtmlAdapterExtension, - DatabaseBlockNotionHtmlAdapterExtension, - AttachmentBlockNotionHtmlAdapterExtension, - LatexBlockNotionHtmlAdapterExtension, -]; diff --git a/packages/blocks/src/_common/adapters/notion-html/index.ts b/packages/blocks/src/_common/adapters/notion-html/index.ts index 0282c785b19f..54badc175de5 100644 --- a/packages/blocks/src/_common/adapters/notion-html/index.ts +++ b/packages/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/packages/blocks/src/_common/adapters/plain-text/block-matcher.ts b/packages/blocks/src/_common/adapters/plain-text/block-matcher.ts index 2f5fd64d98c9..8043dac471e4 100644 --- a/packages/blocks/src/_common/adapters/plain-text/block-matcher.ts +++ b/packages/blocks/src/_common/adapters/plain-text/block-matcher.ts @@ -1,45 +1,20 @@ import type { BlockPlainTextAdapterMatcher } from '@blocksuite/affine-shared/adapters'; -import type { ExtensionType } from '@blocksuite/block-std'; 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 { - 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[] = [ @@ -56,18 +31,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/packages/blocks/src/_specs/common.ts b/packages/blocks/src/_specs/common.ts index ce4f106377d0..4ba6f25cbda6 100644 --- a/packages/blocks/src/_specs/common.ts +++ b/packages/blocks/src/_specs/common.ts @@ -6,10 +6,7 @@ import { ParagraphBlockSpec } from '@blocksuite/affine-block-paragraph'; import { RichTextExtensions } from '@blocksuite/affine-components/rich-text'; import { EditPropsStore } from '@blocksuite/affine-shared/services'; -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'; @@ -36,7 +33,6 @@ export const CommonFirstPartyBlockSpecs: ExtensionType[] = [ BookmarkBlockSpec, AttachmentBlockSpec, EmbedExtensions, - BlockAdapterMatcherExtensions, AdapterFactoryExtensions, ].flat(); @@ -54,6 +50,5 @@ export const EdgelessFirstPartyBlockSpecs: ExtensionType[] = [ BookmarkBlockSpec, AttachmentBlockSpec, EmbedExtensions, - BlockAdapterMatcherExtensions, AdapterFactoryExtensions, ].flat(); diff --git a/packages/blocks/src/attachment-block/attachment-spec.ts b/packages/blocks/src/attachment-block/attachment-spec.ts index 34f371df8d07..c968a5b49fc0 100644 --- a/packages/blocks/src/attachment-block/attachment-spec.ts +++ b/packages/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/packages/blocks/src/bookmark-block/adapters/extension.ts b/packages/blocks/src/bookmark-block/adapters/extension.ts new file mode 100644 index 000000000000..41b0f9a52d00 --- /dev/null +++ b/packages/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/packages/blocks/src/bookmark-block/bookmark-spec.ts b/packages/blocks/src/bookmark-block/bookmark-spec.ts index 2bf50b1ac4a8..e7342b1a476b 100644 --- a/packages/blocks/src/bookmark-block/bookmark-spec.ts +++ b/packages/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/packages/blocks/src/code-block/adapters/extension.ts b/packages/blocks/src/code-block/adapters/extension.ts new file mode 100644 index 000000000000..b93faadad849 --- /dev/null +++ b/packages/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/packages/blocks/src/code-block/code-block-spec.ts b/packages/blocks/src/code-block/code-block-spec.ts index 5b95b7bed25b..eca27aab8591 100644 --- a/packages/blocks/src/code-block/code-block-spec.ts +++ b/packages/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/packages/blocks/src/database-block/adapters/extension.ts b/packages/blocks/src/database-block/adapters/extension.ts new file mode 100644 index 000000000000..ce7de5923b77 --- /dev/null +++ b/packages/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/packages/blocks/src/database-block/database-spec.ts b/packages/blocks/src/database-block/database-spec.ts index d3277c2d7972..ae617f6fc9cf 100644 --- a/packages/blocks/src/database-block/database-spec.ts +++ b/packages/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/packages/blocks/src/divider-block/adapters/extension.ts b/packages/blocks/src/divider-block/adapters/extension.ts new file mode 100644 index 000000000000..83e73de96fda --- /dev/null +++ b/packages/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/packages/blocks/src/divider-block/divider-spec.ts b/packages/blocks/src/divider-block/divider-spec.ts index fa6d715ecafb..ca2f50352ec9 100644 --- a/packages/blocks/src/divider-block/divider-spec.ts +++ b/packages/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/packages/blocks/src/image-block/adapters/extension.ts b/packages/blocks/src/image-block/adapters/extension.ts new file mode 100644 index 000000000000..bdfd0cc7823f --- /dev/null +++ b/packages/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/packages/blocks/src/image-block/image-spec.ts b/packages/blocks/src/image-block/image-spec.ts index 30e73efa9d77..cc3409744bae 100644 --- a/packages/blocks/src/image-block/image-spec.ts +++ b/packages/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/packages/blocks/src/latex-block/adapters/extension.ts b/packages/blocks/src/latex-block/adapters/extension.ts new file mode 100644 index 000000000000..353f255bab3e --- /dev/null +++ b/packages/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/packages/blocks/src/latex-block/latex-spec.ts b/packages/blocks/src/latex-block/latex-spec.ts index eeb86c1aaa34..0d15e6a70542 100644 --- a/packages/blocks/src/latex-block/latex-spec.ts +++ b/packages/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/packages/blocks/src/note-block/adapters/extension.ts b/packages/blocks/src/note-block/adapters/extension.ts new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/blocks/src/root-block/adapters/extension.ts b/packages/blocks/src/root-block/adapters/extension.ts new file mode 100644 index 000000000000..20e46a2615b4 --- /dev/null +++ b/packages/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/packages/blocks/src/root-block/edgeless/edgeless-root-spec.ts b/packages/blocks/src/root-block/edgeless/edgeless-root-spec.ts index 2aa4d76c9792..36e82543dc83 100644 --- a/packages/blocks/src/root-block/edgeless/edgeless-root-spec.ts +++ b/packages/blocks/src/root-block/edgeless/edgeless-root-spec.ts @@ -17,6 +17,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'; @@ -95,7 +96,8 @@ const EdgelessCommonExtension: ExtensionType[] = [ ToolController, DNDAPIExtension, DocDisplayMetaService, -]; + RootBlockAdapterExtensions, +].flat(); export const EdgelessRootBlockSpec: ExtensionType[] = [ ...EdgelessCommonExtension, diff --git a/packages/blocks/src/root-block/page/page-root-spec.ts b/packages/blocks/src/root-block/page/page-root-spec.ts index 565c5915dcbe..21a340555d38 100644 --- a/packages/blocks/src/root-block/page/page-root-spec.ts +++ b/packages/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(); diff --git a/packages/playground/apps/_common/components/starter-debug-menu.ts b/packages/playground/apps/_common/components/starter-debug-menu.ts index 77c328ca2e61..4ece8b8c9b0e 100644 --- a/packages/playground/apps/_common/components/starter-debug-menu.ts +++ b/packages/playground/apps/_common/components/starter-debug-menu.ts @@ -15,6 +15,7 @@ import { DocModeProvider, download, EdgelessRootService, + embedSyncedDocMiddleware, ExportManager, FontFamilyVariables, HtmlAdapterFactoryIdentifier, @@ -245,7 +246,11 @@ export class StarterDebugMenu extends ShadowlessElement { const doc = this.editor.doc; const job = new Job({ collection: this.editor.doc.collection, - middlewares: [docLinkBaseURLMiddleware, titleMiddleware], + middlewares: [ + docLinkBaseURLMiddleware, + titleMiddleware, + embedSyncedDocMiddleware('content'), + ], }); const adapterFactory = this.editor.std.provider.get(config.identifier);