mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-26 02:35:58 +08:00
@@ -24,3 +24,15 @@ export const EmbedFigmaBlockSpec: ExtensionType[] = [
|
||||
createBuiltinToolbarConfigExtension(flavour, EmbedFigmaBlockComponent),
|
||||
SlashMenuConfigExtension(flavour, embedFigmaSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
export const EmbedFigmaViewExtensions: ExtensionType[] = [
|
||||
FlavourExtension(flavour),
|
||||
BlockViewExtension(flavour, model => {
|
||||
return model.parent?.flavour === 'affine:surface'
|
||||
? literal`affine-embed-edgeless-figma-block`
|
||||
: literal`affine-embed-figma-block`;
|
||||
}),
|
||||
EmbedFigmaBlockOptionConfig,
|
||||
createBuiltinToolbarConfigExtension(flavour, EmbedFigmaBlockComponent),
|
||||
SlashMenuConfigExtension(flavour, embedFigmaSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
@@ -28,3 +28,16 @@ export const EmbedGithubBlockSpec: ExtensionType[] = [
|
||||
createBuiltinToolbarConfigExtension(flavour, EmbedGithubBlockComponent),
|
||||
SlashMenuConfigExtension(flavour, embedGithubSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
export const EmbedGithubViewExtensions: ExtensionType[] = [
|
||||
FlavourExtension(flavour),
|
||||
EmbedGithubBlockService,
|
||||
BlockViewExtension(flavour, model => {
|
||||
return model.parent?.flavour === 'affine:surface'
|
||||
? literal`affine-embed-edgeless-github-block`
|
||||
: literal`affine-embed-github-block`;
|
||||
}),
|
||||
EmbedGithubBlockOptionConfig,
|
||||
createBuiltinToolbarConfigExtension(flavour, EmbedGithubBlockComponent),
|
||||
SlashMenuConfigExtension(flavour, embedGithubSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
@@ -15,3 +15,12 @@ export const EmbedHtmlBlockSpec: ExtensionType[] = [
|
||||
}),
|
||||
createBuiltinToolbarConfigExtension(flavour),
|
||||
].flat();
|
||||
|
||||
export const EmbedHtmlViewExtensions: ExtensionType[] = [
|
||||
BlockViewExtension(flavour, model => {
|
||||
return model.parent?.flavour === 'affine:surface'
|
||||
? literal`affine-embed-edgeless-html-block`
|
||||
: literal`affine-embed-html-block`;
|
||||
}),
|
||||
createBuiltinToolbarConfigExtension(flavour),
|
||||
].flat();
|
||||
|
||||
@@ -21,3 +21,14 @@ export const EmbedIframeBlockSpec: ExtensionType[] = [
|
||||
createBuiltinToolbarConfigExtension(flavour),
|
||||
SlashMenuConfigExtension(flavour, embedIframeSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
export const EmbedIframeViewExtensions: ExtensionType[] = [
|
||||
FlavourExtension(flavour),
|
||||
BlockViewExtension(flavour, model => {
|
||||
return model.parent?.flavour === 'affine:surface'
|
||||
? literal`affine-embed-edgeless-iframe-block`
|
||||
: literal`affine-embed-iframe-block`;
|
||||
}),
|
||||
createBuiltinToolbarConfigExtension(flavour),
|
||||
SlashMenuConfigExtension(flavour, embedIframeSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
@@ -19,3 +19,13 @@ export const EmbedLinkedDocBlockSpec: ExtensionType[] = [
|
||||
createBuiltinToolbarConfigExtension(flavour),
|
||||
LinkedDocSlashMenuConfigExtension,
|
||||
].flat();
|
||||
|
||||
export const EmbedLinkedDocViewExtensions: ExtensionType[] = [
|
||||
BlockViewExtension(flavour, model => {
|
||||
return model.parent?.flavour === 'affine:surface'
|
||||
? literal`affine-embed-edgeless-linked-doc-block`
|
||||
: literal`affine-embed-linked-doc-block`;
|
||||
}),
|
||||
createBuiltinToolbarConfigExtension(flavour),
|
||||
LinkedDocSlashMenuConfigExtension,
|
||||
].flat();
|
||||
|
||||
@@ -28,3 +28,16 @@ export const EmbedLoomBlockSpec: ExtensionType[] = [
|
||||
createBuiltinToolbarConfigExtension(flavour, EmbedLoomBlockComponent),
|
||||
SlashMenuConfigExtension(flavour, embedLoomSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
export const EmbedLoomViewExtensions: ExtensionType[] = [
|
||||
FlavourExtension(flavour),
|
||||
EmbedLoomBlockService,
|
||||
BlockViewExtension(flavour, model => {
|
||||
return model.parent?.flavour === 'affine:surface'
|
||||
? literal`affine-embed-edgeless-loom-block`
|
||||
: literal`affine-embed-loom-block`;
|
||||
}),
|
||||
EmbedLoomBlockOptionConfig,
|
||||
createBuiltinToolbarConfigExtension(flavour, EmbedLoomBlockComponent),
|
||||
SlashMenuConfigExtension(flavour, embedLoomSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
@@ -18,3 +18,13 @@ export const EmbedSyncedDocBlockSpec: ExtensionType[] = [
|
||||
EmbedSyncedDocBlockAdapterExtensions,
|
||||
createBuiltinToolbarConfigExtension(flavour),
|
||||
].flat();
|
||||
|
||||
export const EmbedSyncedDocViewExtensions: ExtensionType[] = [
|
||||
FlavourExtension(flavour),
|
||||
BlockViewExtension(flavour, model => {
|
||||
return model.parent?.flavour === 'affine:surface'
|
||||
? literal`affine-embed-edgeless-synced-doc-block`
|
||||
: literal`affine-embed-synced-doc-block`;
|
||||
}),
|
||||
createBuiltinToolbarConfigExtension(flavour),
|
||||
].flat();
|
||||
|
||||
@@ -28,3 +28,16 @@ export const EmbedYoutubeBlockSpec: ExtensionType[] = [
|
||||
createBuiltinToolbarConfigExtension(flavour, EmbedYoutubeBlockComponent),
|
||||
SlashMenuConfigExtension('affine:embed-youtube', embedYoutubeSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
export const EmbedYoutubeViewExtensions: ExtensionType[] = [
|
||||
FlavourExtension(flavour),
|
||||
EmbedYoutubeBlockService,
|
||||
BlockViewExtension(flavour, model => {
|
||||
return model.parent?.flavour === 'affine:surface'
|
||||
? literal`affine-embed-edgeless-youtube-block`
|
||||
: literal`affine-embed-youtube-block`;
|
||||
}),
|
||||
EmbedYoutubeBlockOptionConfig,
|
||||
createBuiltinToolbarConfigExtension(flavour, EmbedYoutubeBlockComponent),
|
||||
SlashMenuConfigExtension('affine:embed-youtube', embedYoutubeSlashMenuConfig),
|
||||
].flat();
|
||||
|
||||
47
blocksuite/affine/blocks/embed/src/store.ts
Normal file
47
blocksuite/affine/blocks/embed/src/store.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import {
|
||||
type StoreExtensionContext,
|
||||
StoreExtensionProvider,
|
||||
} from '@blocksuite/affine-ext-loader';
|
||||
import {
|
||||
EmbedFigmaBlockSchemaExtension,
|
||||
EmbedGithubBlockSchemaExtension,
|
||||
EmbedHtmlBlockSchemaExtension,
|
||||
EmbedIframeBlockSchemaExtension,
|
||||
EmbedLinkedDocBlockSchemaExtension,
|
||||
EmbedLoomBlockSchemaExtension,
|
||||
EmbedSyncedDocBlockSchemaExtension,
|
||||
EmbedYoutubeBlockSchemaExtension,
|
||||
} from '@blocksuite/affine-model';
|
||||
|
||||
import { EmbedFigmaBlockAdapterExtensions } from './embed-figma-block/adapters/extension';
|
||||
import { EmbedGithubBlockAdapterExtensions } from './embed-github-block/adapters/extension';
|
||||
import { EmbedIframeBlockAdapterExtensions } from './embed-iframe-block/adapters';
|
||||
import { EmbedLinkedDocBlockAdapterExtensions } from './embed-linked-doc-block/adapters/extension';
|
||||
import { EmbedLoomBlockAdapterExtensions } from './embed-loom-block/adapters/extension';
|
||||
import { EmbedSyncedDocBlockAdapterExtensions } from './embed-synced-doc-block/adapters/extension';
|
||||
import { EmbedYoutubeBlockAdapterExtensions } from './embed-youtube-block/adapters/extension';
|
||||
|
||||
export class EmbedStoreExtension extends StoreExtensionProvider {
|
||||
override name = 'affine-embed-block';
|
||||
|
||||
override setup(context: StoreExtensionContext) {
|
||||
super.setup(context);
|
||||
context.register([
|
||||
EmbedSyncedDocBlockSchemaExtension,
|
||||
EmbedLinkedDocBlockSchemaExtension,
|
||||
EmbedHtmlBlockSchemaExtension,
|
||||
EmbedIframeBlockSchemaExtension,
|
||||
EmbedGithubBlockSchemaExtension,
|
||||
EmbedFigmaBlockSchemaExtension,
|
||||
EmbedLoomBlockSchemaExtension,
|
||||
EmbedYoutubeBlockSchemaExtension,
|
||||
]);
|
||||
context.register(EmbedFigmaBlockAdapterExtensions);
|
||||
context.register(EmbedGithubBlockAdapterExtensions);
|
||||
context.register(EmbedYoutubeBlockAdapterExtensions);
|
||||
context.register(EmbedLoomBlockAdapterExtensions);
|
||||
context.register(EmbedIframeBlockAdapterExtensions);
|
||||
context.register(EmbedLinkedDocBlockAdapterExtensions);
|
||||
context.register(EmbedSyncedDocBlockAdapterExtensions);
|
||||
}
|
||||
}
|
||||
34
blocksuite/affine/blocks/embed/src/view.ts
Normal file
34
blocksuite/affine/blocks/embed/src/view.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import {
|
||||
type ViewExtensionContext,
|
||||
ViewExtensionProvider,
|
||||
} from '@blocksuite/affine-ext-loader';
|
||||
|
||||
import { effects } from './effects';
|
||||
import { EmbedFigmaViewExtensions } from './embed-figma-block';
|
||||
import { EmbedGithubViewExtensions } from './embed-github-block';
|
||||
import { EmbedHtmlViewExtensions } from './embed-html-block';
|
||||
import { EmbedIframeViewExtensions } from './embed-iframe-block';
|
||||
import { EmbedLinkedDocViewExtensions } from './embed-linked-doc-block';
|
||||
import { EmbedLoomViewExtensions } from './embed-loom-block';
|
||||
import { EmbedSyncedDocViewExtensions } from './embed-synced-doc-block';
|
||||
import { EmbedYoutubeViewExtensions } from './embed-youtube-block';
|
||||
export class EmbedViewExtension extends ViewExtensionProvider {
|
||||
override name = 'affine-embed-block';
|
||||
|
||||
override effect(): void {
|
||||
super.effect();
|
||||
effects();
|
||||
}
|
||||
|
||||
override setup(context: ViewExtensionContext) {
|
||||
super.setup(context);
|
||||
context.register(EmbedFigmaViewExtensions);
|
||||
context.register(EmbedGithubViewExtensions);
|
||||
context.register(EmbedLoomViewExtensions);
|
||||
context.register(EmbedYoutubeViewExtensions);
|
||||
context.register(EmbedHtmlViewExtensions);
|
||||
context.register(EmbedLinkedDocViewExtensions);
|
||||
context.register(EmbedSyncedDocViewExtensions);
|
||||
context.register(EmbedIframeViewExtensions);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user