feat(editor): reference, mention and latex inline extension (#11914)

Closes: BS-3215
Closes: BS-3218
Closes: BS-3217
This commit is contained in:
Saul-Mirone
2025-04-23 09:22:15 +00:00
parent cb2c559c6e
commit 16831e8c0e
47 changed files with 489 additions and 458 deletions
@@ -1,5 +1,4 @@
import { createReactComponentFromLit } from '@affine/component';
import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters';
import {
defaultImageProxyMiddleware,
ImageProxyService,
@@ -36,6 +35,7 @@ import { keyed } from 'lit/directives/keyed.js';
import { literal } from 'lit/static-html.js';
import React from 'react';
import { getStoreManager } from '../../manager/migrating-store';
import { getViewManager } from '../../manager/migrating-view';
import { markDownToDoc } from '../../utils';
import type {
@@ -231,9 +231,11 @@ export class TextRenderer extends WithDisposable(ShadowlessElement) {
provider = this.host.std.store.provider;
} else {
const container = new Container();
getMarkdownAdapterExtensions().forEach(ext => {
ext.setup(container);
});
getStoreManager()
.get('store')
.forEach(ext => {
ext.setup(container);
});
provider = container.provider();
}
@@ -1,4 +1,4 @@
import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters';
import { getStoreManager } from '@affine/core/blocksuite/manager/migrating-store.js';
import { Container } from '@blocksuite/affine/global/di';
import { TestWorkspace } from '@blocksuite/affine/store/test';
import { describe, expect, test } from 'vitest';
@@ -6,9 +6,11 @@ import { describe, expect, test } from 'vitest';
import { markdownToMindmap } from '../mindmap-preview.js';
const container = new Container();
getMarkdownAdapterExtensions().forEach(ext => {
ext.setup(container);
});
getStoreManager()
.get('store')
.forEach(ext => {
ext.setup(container);
});
const provider = container.provider();
describe('markdownToMindmap: convert markdown list to a mind map tree', () => {
@@ -1,28 +1,9 @@
import { AttachmentStoreExtension } from '@blocksuite/affine/blocks/attachment/store';
import { BookmarkStoreExtension } from '@blocksuite/affine/blocks/bookmark/store';
import { CalloutStoreExtension } from '@blocksuite/affine/blocks/callout/store';
import { CodeStoreExtension } from '@blocksuite/affine/blocks/code/store';
import { DataViewStoreExtension } from '@blocksuite/affine/blocks/data-view/store';
import { DatabaseStoreExtension } from '@blocksuite/affine/blocks/database/store';
import { DividerStoreExtension } from '@blocksuite/affine/blocks/divider/store';
import { EdgelessTextStoreExtension } from '@blocksuite/affine/blocks/edgeless-text/store';
import { EmbedStoreExtension } from '@blocksuite/affine/blocks/embed/store';
import { FrameStoreExtension } from '@blocksuite/affine/blocks/frame/store';
import { ImageStoreExtension } from '@blocksuite/affine/blocks/image/store';
import { LatexStoreExtension } from '@blocksuite/affine/blocks/latex/store';
import { ListStoreExtension } from '@blocksuite/affine/blocks/list/store';
import { NoteStoreExtension } from '@blocksuite/affine/blocks/note/store';
import { ParagraphStoreExtension } from '@blocksuite/affine/blocks/paragraph/store';
import { SurfaceRefStoreExtension } from '@blocksuite/affine/blocks/surface-ref/store';
import { TableStoreExtension } from '@blocksuite/affine/blocks/table/store';
import {
type StoreExtensionContext,
StoreExtensionManager,
StoreExtensionProvider,
} from '@blocksuite/affine/ext-loader';
import { MigratingStoreExtension } from '@blocksuite/affine/extensions/store';
import { FootnoteStoreExtension } from '@blocksuite/affine/inlines/footnote/store';
import { LinkStoreExtension } from '@blocksuite/affine/inlines/link/store';
import { getInternalStoreExtensions } from '@blocksuite/affine/extensions/store';
import { AIChatBlockSchemaExtension } from '../ai/blocks/ai-chat-block/model';
@@ -36,29 +17,7 @@ class MigratingAffineStoreExtension extends StoreExtensionProvider {
}
const manager = new StoreExtensionManager([
// Block
AttachmentStoreExtension,
BookmarkStoreExtension,
CalloutStoreExtension,
CodeStoreExtension,
DataViewStoreExtension,
DatabaseStoreExtension,
DividerStoreExtension,
EdgelessTextStoreExtension,
EmbedStoreExtension,
FrameStoreExtension,
ImageStoreExtension,
LatexStoreExtension,
ListStoreExtension,
NoteStoreExtension,
ParagraphStoreExtension,
SurfaceRefStoreExtension,
TableStoreExtension,
// Inline
FootnoteStoreExtension,
LinkStoreExtension,
MigratingStoreExtension,
...getInternalStoreExtensions(),
MigratingAffineStoreExtension,
]);
@@ -1,30 +1,11 @@
import { PeekViewService } from '@affine/core/modules/peek-view';
import { AttachmentViewExtension } from '@blocksuite/affine/blocks/attachment/view';
import { BookmarkViewExtension } from '@blocksuite/affine/blocks/bookmark/view';
import { CalloutViewExtension } from '@blocksuite/affine/blocks/callout/view';
import { CodeBlockViewExtension } from '@blocksuite/affine/blocks/code/view';
import { DataViewViewExtension } from '@blocksuite/affine/blocks/data-view/view';
import { DatabaseViewExtension } from '@blocksuite/affine/blocks/database/view';
import { DividerViewExtension } from '@blocksuite/affine/blocks/divider/view';
import { EdgelessTextViewExtension } from '@blocksuite/affine/blocks/edgeless-text/view';
import { EmbedViewExtension } from '@blocksuite/affine/blocks/embed/view';
import { FrameViewExtension } from '@blocksuite/affine/blocks/frame/view';
import { ImageViewExtension } from '@blocksuite/affine/blocks/image/view';
import { LatexViewExtension } from '@blocksuite/affine/blocks/latex/view';
import { ListViewExtension } from '@blocksuite/affine/blocks/list/view';
import { NoteViewExtension } from '@blocksuite/affine/blocks/note/view';
import { ParagraphBlockConfigExtension } from '@blocksuite/affine/blocks/paragraph';
import { ParagraphViewExtension } from '@blocksuite/affine/blocks/paragraph/view';
import { SurfaceRefViewExtension } from '@blocksuite/affine/blocks/surface-ref/view';
import { TableViewExtension } from '@blocksuite/affine/blocks/table/view';
import {
type ViewExtensionContext,
ViewExtensionManager,
ViewExtensionProvider,
} from '@blocksuite/affine/ext-loader';
import { MigratingViewExtension } from '@blocksuite/affine/extensions/view';
import { FootnoteViewExtension } from '@blocksuite/affine/inlines/footnote/view';
import { LinkViewExtension } from '@blocksuite/affine/inlines/link/view';
import { getInternalViewExtensions } from '@blocksuite/affine/extensions/view';
import { ToolbarModuleExtension } from '@blocksuite/affine/shared/services';
import { BlockFlavourIdentifier } from '@blocksuite/affine/std';
import { FrameworkProvider } from '@toeverything/infra';
@@ -147,29 +128,7 @@ class MigratingAffineViewExtension extends ViewExtensionProvider<
}
const manager = new ViewExtensionManager([
MigratingViewExtension,
// Block
AttachmentViewExtension,
BookmarkViewExtension,
CalloutViewExtension,
CodeBlockViewExtension,
DataViewViewExtension,
DatabaseViewExtension,
DividerViewExtension,
EdgelessTextViewExtension,
EmbedViewExtension,
FrameViewExtension,
ImageViewExtension,
LatexViewExtension,
ListViewExtension,
NoteViewExtension,
ParagraphViewExtension,
SurfaceRefViewExtension,
TableViewExtension,
// Inline
FootnoteViewExtension,
LinkViewExtension,
...getInternalViewExtensions(),
MigratingAffineViewExtension,
]);