feat(editor): inline preset extension (#11919)

Closes: BS-3214
This commit is contained in:
Saul-Mirone
2025-04-23 14:26:20 +00:00
parent 4df75ec5d0
commit ea391779dd
14 changed files with 59 additions and 26 deletions
+3 -1
View File
@@ -149,7 +149,9 @@
"./inlines/reference": "./src/inlines/reference/index.ts",
"./inlines/reference/store": "./src/inlines/reference/store.ts",
"./inlines/reference/view": "./src/inlines/reference/view.ts",
"./inlines/preset": "./src/inlines/preset.ts",
"./inlines/preset": "./src/inlines/preset/index.ts",
"./inlines/preset/store": "./src/inlines/preset/store.ts",
"./inlines/preset/view": "./src/inlines/preset/view.ts",
"./inlines/footnote": "./src/inlines/footnote/index.ts",
"./inlines/footnote/view": "./src/inlines/footnote/view.ts",
"./inlines/footnote/store": "./src/inlines/footnote/store.ts",
@@ -29,7 +29,6 @@ import { effects as componentViewDropdownMenuEffects } from '@blocksuite/affine-
import { effects as fragmentDocTitleEffects } from '@blocksuite/affine-fragment-doc-title/effects';
import { effects as fragmentFramePanelEffects } from '@blocksuite/affine-fragment-frame-panel/effects';
import { effects as fragmentOutlineEffects } from '@blocksuite/affine-fragment-outline/effects';
import { effects as inlinePresetEffects } from '@blocksuite/affine-inline-preset/effects';
import { effects as richTextEffects } from '@blocksuite/affine-rich-text/effects';
import { effects as widgetDragHandleEffects } from '@blocksuite/affine-widget-drag-handle/effects';
import { effects as widgetEdgelessAutoConnectEffects } from '@blocksuite/affine-widget-edgeless-auto-connect/effects';
@@ -47,8 +46,6 @@ export function effects() {
dataViewEffects();
richTextEffects();
inlinePresetEffects();
blockSurfaceEffects();
blockRootEffects();
@@ -9,13 +9,6 @@ import {
type StoreExtensionContext,
StoreExtensionProvider,
} from '@blocksuite/affine-ext-loader';
import {
HtmlInlineToDeltaAdapterExtensions,
InlineDeltaToHtmlAdapterExtensions,
InlineDeltaToMarkdownAdapterExtensions,
MarkdownInlineToDeltaAdapterExtensions,
NotionHtmlInlineToDeltaAdapterExtensions,
} from '@blocksuite/affine-inline-preset';
import {
RootBlockSchemaExtension,
TranscriptionBlockSchemaExtension,
@@ -63,26 +56,15 @@ const defaultBlockNotionHtmlAdapterMatchers: ExtensionType[] = [
];
function getHtmlAdapterExtensions(): ExtensionType[] {
return [
...HtmlInlineToDeltaAdapterExtensions,
...defaultBlockHtmlAdapterMatchers,
...InlineDeltaToHtmlAdapterExtensions,
];
return [...defaultBlockHtmlAdapterMatchers];
}
function getMarkdownAdapterExtensions(): ExtensionType[] {
return [
...MarkdownInlineToDeltaAdapterExtensions,
...defaultBlockMarkdownAdapterMatchers,
...InlineDeltaToMarkdownAdapterExtensions,
];
return [...defaultBlockMarkdownAdapterMatchers];
}
function getNotionHtmlAdapterExtensions(): ExtensionType[] {
return [
...NotionHtmlInlineToDeltaAdapterExtensions,
...defaultBlockNotionHtmlAdapterMatchers,
];
return [...defaultBlockNotionHtmlAdapterMatchers];
}
const MigratingStoreExtensions: ExtensionType[] = [
@@ -18,6 +18,7 @@ import { TableStoreExtension } from '@blocksuite/affine-block-table/store';
import { FootnoteStoreExtension } from '@blocksuite/affine-inline-footnote/store';
import { LatexStoreExtension as InlineLatexStoreExtension } from '@blocksuite/affine-inline-latex/store';
import { LinkStoreExtension } from '@blocksuite/affine-inline-link/store';
import { InlinePresetStoreExtension } from '@blocksuite/affine-inline-preset/store';
import { ReferenceStoreExtension } from '@blocksuite/affine-inline-reference/store';
import { MigratingStoreExtension } from './migrating-store';
@@ -46,6 +47,7 @@ export function getInternalStoreExtensions() {
LinkStoreExtension,
ReferenceStoreExtension,
InlineLatexStoreExtension,
InlinePresetStoreExtension,
MigratingStoreExtension,
];
@@ -19,6 +19,7 @@ import { FootnoteViewExtension } from '@blocksuite/affine-inline-footnote/view';
import { LatexViewExtension as InlineLatexViewExtension } from '@blocksuite/affine-inline-latex/view';
import { LinkViewExtension } from '@blocksuite/affine-inline-link/view';
import { MentionViewExtension } from '@blocksuite/affine-inline-mention/view';
import { InlinePresetViewExtension } from '@blocksuite/affine-inline-preset/view';
import { ReferenceViewExtension } from '@blocksuite/affine-inline-reference/view';
import { MigratingViewExtension } from './migrating-view';
@@ -52,5 +53,6 @@ export function getInternalViewExtensions() {
ReferenceViewExtension,
InlineLatexViewExtension,
MentionViewExtension,
InlinePresetViewExtension,
];
}
@@ -0,0 +1 @@
export * from '@blocksuite/affine-inline-preset/store';
@@ -0,0 +1 @@
export * from '@blocksuite/affine-inline-preset/view';
@@ -11,6 +11,7 @@
"license": "MIT",
"dependencies": {
"@blocksuite/affine-components": "workspace:*",
"@blocksuite/affine-ext-loader": "workspace:*",
"@blocksuite/affine-inline-footnote": "workspace:*",
"@blocksuite/affine-inline-latex": "workspace:*",
"@blocksuite/affine-inline-link": "workspace:*",
@@ -45,7 +46,9 @@
},
"exports": {
".": "./src/index.ts",
"./effects": "./src/effects.ts"
"./effects": "./src/effects.ts",
"./store": "./src/store.ts",
"./view": "./src/view.ts"
},
"files": [
"src",
@@ -0,0 +1,15 @@
import {
type StoreExtensionContext,
StoreExtensionProvider,
} from '@blocksuite/affine-ext-loader';
import { InlineAdapterExtensions } from './adapters/extensions';
export class InlinePresetStoreExtension extends StoreExtensionProvider {
override name = 'affine-inline-preset';
override setup(context: StoreExtensionContext) {
super.setup(context);
context.register(InlineAdapterExtensions);
}
}
@@ -0,0 +1,25 @@
import {
type ViewExtensionContext,
ViewExtensionProvider,
} from '@blocksuite/affine-ext-loader';
import { DefaultInlineManagerExtension } from './default-inline-manager';
import { effects } from './effects';
import { InlineSpecExtensions } from './inline-spec';
import { MarkdownExtensions } from './markdown';
export class InlinePresetViewExtension extends ViewExtensionProvider {
override name = 'affine-inline-preset';
override effect() {
super.effect();
effects();
}
override setup(context: ViewExtensionContext) {
super.setup(context);
context.register(DefaultInlineManagerExtension);
context.register(InlineSpecExtensions);
context.register(MarkdownExtensions);
}
}
@@ -8,6 +8,7 @@
"include": ["./src"],
"references": [
{ "path": "../../components" },
{ "path": "../../ext-loader" },
{ "path": "../footnote" },
{ "path": "../latex" },
{ "path": "../link" },
+1
View File
@@ -694,6 +694,7 @@ export const PackageList = [
name: '@blocksuite/affine-inline-preset',
workspaceDependencies: [
'blocksuite/affine/components',
'blocksuite/affine/ext-loader',
'blocksuite/affine/inlines/footnote',
'blocksuite/affine/inlines/latex',
'blocksuite/affine/inlines/link',
+1
View File
@@ -3464,6 +3464,7 @@ __metadata:
resolution: "@blocksuite/affine-inline-preset@workspace:blocksuite/affine/inlines/preset"
dependencies:
"@blocksuite/affine-components": "workspace:*"
"@blocksuite/affine-ext-loader": "workspace:*"
"@blocksuite/affine-inline-footnote": "workspace:*"
"@blocksuite/affine-inline-latex": "workspace:*"
"@blocksuite/affine-inline-link": "workspace:*"