mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00:00
feat(editor): reference, mention and latex inline extension (#11914)
Closes: BS-3215 Closes: BS-3218 Closes: BS-3217
This commit is contained in:
@@ -146,13 +146,18 @@
|
|||||||
"./inlines/link": "./src/inlines/link/index.ts",
|
"./inlines/link": "./src/inlines/link/index.ts",
|
||||||
"./inlines/link/store": "./src/inlines/link/store.ts",
|
"./inlines/link/store": "./src/inlines/link/store.ts",
|
||||||
"./inlines/link/view": "./src/inlines/link/view.ts",
|
"./inlines/link/view": "./src/inlines/link/view.ts",
|
||||||
"./inlines/reference": "./src/inlines/reference.ts",
|
"./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.ts",
|
||||||
"./inlines/footnote": "./src/inlines/footnote/index.ts",
|
"./inlines/footnote": "./src/inlines/footnote/index.ts",
|
||||||
"./inlines/footnote/view": "./src/inlines/footnote/view.ts",
|
"./inlines/footnote/view": "./src/inlines/footnote/view.ts",
|
||||||
"./inlines/footnote/store": "./src/inlines/footnote/store.ts",
|
"./inlines/footnote/store": "./src/inlines/footnote/store.ts",
|
||||||
"./inlines/latex": "./src/inlines/latex.ts",
|
"./inlines/latex": "./src/inlines/latex/index.ts",
|
||||||
"./inlines/mention": "./src/inlines/mention.ts",
|
"./inlines/latex/store": "./src/inlines/latex/store.ts",
|
||||||
|
"./inlines/latex/view": "./src/inlines/latex/view.ts",
|
||||||
|
"./inlines/mention": "./src/inlines/mention/index.ts",
|
||||||
|
"./inlines/mention/view": "./src/inlines/mention/view.ts",
|
||||||
"./widgets/drag-handle": "./src/widgets/drag-handle.ts",
|
"./widgets/drag-handle": "./src/widgets/drag-handle.ts",
|
||||||
"./widgets/edgeless-auto-connect": "./src/widgets/edgeless-auto-connect.ts",
|
"./widgets/edgeless-auto-connect": "./src/widgets/edgeless-auto-connect.ts",
|
||||||
"./widgets/edgeless-toolbar": "./src/widgets/edgeless-toolbar.ts",
|
"./widgets/edgeless-toolbar": "./src/widgets/edgeless-toolbar.ts",
|
||||||
@@ -215,7 +220,6 @@
|
|||||||
"./schemas": "./src/schemas.ts",
|
"./schemas": "./src/schemas.ts",
|
||||||
"./model": "./src/model/index.ts",
|
"./model": "./src/model/index.ts",
|
||||||
"./sync": "./src/sync/index.ts",
|
"./sync": "./src/sync/index.ts",
|
||||||
"./adapters": "./src/adapters/index.ts",
|
|
||||||
"./extensions/store": "./src/extensions/store.ts",
|
"./extensions/store": "./src/extensions/store.ts",
|
||||||
"./extensions/view": "./src/extensions/view.ts"
|
"./extensions/view": "./src/extensions/view.ts"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ describe('snapshot to html', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const html = template(
|
const html = template(
|
||||||
`<pre class="shiki light-plus" style="background-color:#FFFFFF;color:#000000" tabindex="0"><code><span class="line"><span style="color:#AF00DB">import</span><span style="color:#000000"> this</span></span></code></pre>`
|
`<pre><code class="code-python">import this</code></pre>`
|
||||||
);
|
);
|
||||||
|
|
||||||
const htmlAdapter = new HtmlAdapter(createJob(), provider);
|
const htmlAdapter = new HtmlAdapter(createJob(), provider);
|
||||||
@@ -191,7 +191,7 @@ describe('snapshot to html', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const html = template(
|
const html = template(
|
||||||
`<pre class="shiki light-plus" style="background-color:#FFFFFF;color:#000000" tabindex="0"><code><span class="line"><span>import this</span></span></code></pre>`
|
`<pre><code class="code-PYTHON">import this</code></pre>`
|
||||||
);
|
);
|
||||||
|
|
||||||
const htmlAdapter = new HtmlAdapter(createJob(), provider);
|
const htmlAdapter = new HtmlAdapter(createJob(), provider);
|
||||||
@@ -257,7 +257,7 @@ describe('snapshot to html', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const html = template(
|
const html = template(
|
||||||
`<pre class="shiki light-plus" style="background-color:#FFFFFF;color:#000000" tabindex="0"><code><span class="line"><span>import this</span></span></code></pre>`
|
`<pre><code class="code-unknown">import this</code></pre>`
|
||||||
);
|
);
|
||||||
|
|
||||||
const htmlAdapter = new HtmlAdapter(createJob(), provider);
|
const htmlAdapter = new HtmlAdapter(createJob(), provider);
|
||||||
|
|||||||
@@ -1,49 +1,7 @@
|
|||||||
import { AttachmentStoreExtension } from '@blocksuite/affine-block-attachment/store';
|
|
||||||
import { BookmarkStoreExtension } from '@blocksuite/affine-block-bookmark/store';
|
|
||||||
import { CalloutStoreExtension } from '@blocksuite/affine-block-callout/store';
|
|
||||||
import { CodeStoreExtension } from '@blocksuite/affine-block-code/store';
|
|
||||||
import { DataViewStoreExtension } from '@blocksuite/affine-block-data-view/store';
|
|
||||||
import { DatabaseStoreExtension } from '@blocksuite/affine-block-database/store';
|
|
||||||
import { DividerStoreExtension } from '@blocksuite/affine-block-divider/store';
|
|
||||||
import { EdgelessTextStoreExtension } from '@blocksuite/affine-block-edgeless-text/store';
|
|
||||||
import { EmbedStoreExtension } from '@blocksuite/affine-block-embed/store';
|
|
||||||
import { FrameStoreExtension } from '@blocksuite/affine-block-frame/store';
|
|
||||||
import { ImageStoreExtension } from '@blocksuite/affine-block-image/store';
|
|
||||||
import { LatexStoreExtension } from '@blocksuite/affine-block-latex/store';
|
|
||||||
import { ListStoreExtension } from '@blocksuite/affine-block-list/store';
|
|
||||||
import { NoteStoreExtension } from '@blocksuite/affine-block-note/store';
|
|
||||||
import { ParagraphStoreExtension } from '@blocksuite/affine-block-paragraph/store';
|
|
||||||
import { SurfaceRefStoreExtension } from '@blocksuite/affine-block-surface-ref/store';
|
|
||||||
import { TableStoreExtension } from '@blocksuite/affine-block-table/store';
|
|
||||||
import { StoreExtensionManager } from '@blocksuite/affine-ext-loader';
|
import { StoreExtensionManager } from '@blocksuite/affine-ext-loader';
|
||||||
import { FootnoteStoreExtension } from '@blocksuite/affine-inline-footnote/store';
|
|
||||||
import { LinkStoreExtension } from '@blocksuite/affine-inline-link/store';
|
|
||||||
|
|
||||||
import { MigratingStoreExtension } from '../../extensions/store';
|
import { getInternalStoreExtensions } from '../../extensions/store';
|
||||||
|
|
||||||
const manager = new StoreExtensionManager([
|
const manager = new StoreExtensionManager(getInternalStoreExtensions());
|
||||||
AttachmentStoreExtension,
|
|
||||||
BookmarkStoreExtension,
|
|
||||||
CalloutStoreExtension,
|
|
||||||
CodeStoreExtension,
|
|
||||||
DataViewStoreExtension,
|
|
||||||
DatabaseStoreExtension,
|
|
||||||
DividerStoreExtension,
|
|
||||||
EdgelessTextStoreExtension,
|
|
||||||
EmbedStoreExtension,
|
|
||||||
FrameStoreExtension,
|
|
||||||
ImageStoreExtension,
|
|
||||||
LatexStoreExtension,
|
|
||||||
ListStoreExtension,
|
|
||||||
NoteStoreExtension,
|
|
||||||
ParagraphStoreExtension,
|
|
||||||
SurfaceRefStoreExtension,
|
|
||||||
TableStoreExtension,
|
|
||||||
|
|
||||||
FootnoteStoreExtension,
|
|
||||||
LinkStoreExtension,
|
|
||||||
|
|
||||||
MigratingStoreExtension,
|
|
||||||
]);
|
|
||||||
|
|
||||||
export const testStoreExtensions = manager.get('store');
|
export const testStoreExtensions = manager.get('store');
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import {
|
|||||||
HtmlInlineToDeltaAdapterExtensions,
|
HtmlInlineToDeltaAdapterExtensions,
|
||||||
InlineDeltaToHtmlAdapterExtensions,
|
InlineDeltaToHtmlAdapterExtensions,
|
||||||
InlineDeltaToMarkdownAdapterExtensions,
|
InlineDeltaToMarkdownAdapterExtensions,
|
||||||
InlineDeltaToPlainTextAdapterExtensions,
|
|
||||||
MarkdownInlineToDeltaAdapterExtensions,
|
MarkdownInlineToDeltaAdapterExtensions,
|
||||||
NotionHtmlInlineToDeltaAdapterExtensions,
|
NotionHtmlInlineToDeltaAdapterExtensions,
|
||||||
} from '@blocksuite/affine-inline-preset';
|
} from '@blocksuite/affine-inline-preset';
|
||||||
@@ -62,8 +61,5 @@ export function getNotionHtmlAdapterExtensions(): ExtensionType[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getPlainTextAdapterExtensions(): ExtensionType[] {
|
export function getPlainTextAdapterExtensions(): ExtensionType[] {
|
||||||
return [
|
return [...defaultBlockPlainTextAdapterMatchers];
|
||||||
...defaultBlockPlainTextAdapterMatchers,
|
|
||||||
...InlineDeltaToPlainTextAdapterExtensions,
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,10 +29,7 @@ import { effects as componentViewDropdownMenuEffects } from '@blocksuite/affine-
|
|||||||
import { effects as fragmentDocTitleEffects } from '@blocksuite/affine-fragment-doc-title/effects';
|
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 fragmentFramePanelEffects } from '@blocksuite/affine-fragment-frame-panel/effects';
|
||||||
import { effects as fragmentOutlineEffects } from '@blocksuite/affine-fragment-outline/effects';
|
import { effects as fragmentOutlineEffects } from '@blocksuite/affine-fragment-outline/effects';
|
||||||
import { effects as inlineLatexEffects } from '@blocksuite/affine-inline-latex/effects';
|
|
||||||
import { effects as inlineMentionEffects } from '@blocksuite/affine-inline-mention';
|
|
||||||
import { effects as inlinePresetEffects } from '@blocksuite/affine-inline-preset/effects';
|
import { effects as inlinePresetEffects } from '@blocksuite/affine-inline-preset/effects';
|
||||||
import { effects as inlineReferenceEffects } from '@blocksuite/affine-inline-reference/effects';
|
|
||||||
import { effects as richTextEffects } from '@blocksuite/affine-rich-text/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 widgetDragHandleEffects } from '@blocksuite/affine-widget-drag-handle/effects';
|
||||||
import { effects as widgetEdgelessAutoConnectEffects } from '@blocksuite/affine-widget-edgeless-auto-connect/effects';
|
import { effects as widgetEdgelessAutoConnectEffects } from '@blocksuite/affine-widget-edgeless-auto-connect/effects';
|
||||||
@@ -50,10 +47,7 @@ export function effects() {
|
|||||||
dataViewEffects();
|
dataViewEffects();
|
||||||
richTextEffects();
|
richTextEffects();
|
||||||
|
|
||||||
inlineReferenceEffects();
|
|
||||||
inlinePresetEffects();
|
inlinePresetEffects();
|
||||||
inlineLatexEffects();
|
|
||||||
inlineMentionEffects();
|
|
||||||
|
|
||||||
blockSurfaceEffects();
|
blockSurfaceEffects();
|
||||||
blockRootEffects();
|
blockRootEffects();
|
||||||
|
|||||||
118
blocksuite/affine/all/src/extensions/migrating-store.ts
Normal file
118
blocksuite/affine/all/src/extensions/migrating-store.ts
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
import { DatabaseSelectionExtension } from '@blocksuite/affine-block-database';
|
||||||
|
import {
|
||||||
|
RootBlockHtmlAdapterExtension,
|
||||||
|
RootBlockMarkdownAdapterExtension,
|
||||||
|
RootBlockNotionHtmlAdapterExtension,
|
||||||
|
} from '@blocksuite/affine-block-root';
|
||||||
|
import { SurfaceBlockSchemaExtension } from '@blocksuite/affine-block-surface';
|
||||||
|
import {
|
||||||
|
type StoreExtensionContext,
|
||||||
|
StoreExtensionProvider,
|
||||||
|
} from '@blocksuite/affine-ext-loader';
|
||||||
|
import {
|
||||||
|
HtmlInlineToDeltaAdapterExtensions,
|
||||||
|
InlineDeltaToHtmlAdapterExtensions,
|
||||||
|
InlineDeltaToMarkdownAdapterExtensions,
|
||||||
|
MarkdownInlineToDeltaAdapterExtensions,
|
||||||
|
NotionHtmlInlineToDeltaAdapterExtensions,
|
||||||
|
} from '@blocksuite/affine-inline-preset';
|
||||||
|
import {
|
||||||
|
RootBlockSchemaExtension,
|
||||||
|
TranscriptionBlockSchemaExtension,
|
||||||
|
} from '@blocksuite/affine-model';
|
||||||
|
import {
|
||||||
|
HtmlAdapterFactoryExtension,
|
||||||
|
MarkdownAdapterFactoryExtension,
|
||||||
|
MixTextAdapterFactoryExtension,
|
||||||
|
NotionHtmlAdapterFactoryExtension,
|
||||||
|
NotionTextAdapterFactoryExtension,
|
||||||
|
PlainTextAdapterFactoryExtension,
|
||||||
|
} from '@blocksuite/affine-shared/adapters';
|
||||||
|
import { HighlightSelectionExtension } from '@blocksuite/affine-shared/selection';
|
||||||
|
import {
|
||||||
|
BlockMetaService,
|
||||||
|
FeatureFlagService,
|
||||||
|
FileSizeLimitService,
|
||||||
|
LinkPreviewerService,
|
||||||
|
} from '@blocksuite/affine-shared/services';
|
||||||
|
import {
|
||||||
|
BlockSelectionExtension,
|
||||||
|
CursorSelectionExtension,
|
||||||
|
SurfaceSelectionExtension,
|
||||||
|
TextSelectionExtension,
|
||||||
|
} from '@blocksuite/std';
|
||||||
|
import type { ExtensionType } from '@blocksuite/store';
|
||||||
|
|
||||||
|
function getAdapterFactoryExtensions(): ExtensionType[] {
|
||||||
|
return [
|
||||||
|
MarkdownAdapterFactoryExtension,
|
||||||
|
PlainTextAdapterFactoryExtension,
|
||||||
|
HtmlAdapterFactoryExtension,
|
||||||
|
NotionTextAdapterFactoryExtension,
|
||||||
|
NotionHtmlAdapterFactoryExtension,
|
||||||
|
MixTextAdapterFactoryExtension,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
const defaultBlockHtmlAdapterMatchers = [RootBlockHtmlAdapterExtension];
|
||||||
|
|
||||||
|
const defaultBlockMarkdownAdapterMatchers = [RootBlockMarkdownAdapterExtension];
|
||||||
|
|
||||||
|
const defaultBlockNotionHtmlAdapterMatchers: ExtensionType[] = [
|
||||||
|
RootBlockNotionHtmlAdapterExtension,
|
||||||
|
];
|
||||||
|
|
||||||
|
function getHtmlAdapterExtensions(): ExtensionType[] {
|
||||||
|
return [
|
||||||
|
...HtmlInlineToDeltaAdapterExtensions,
|
||||||
|
...defaultBlockHtmlAdapterMatchers,
|
||||||
|
...InlineDeltaToHtmlAdapterExtensions,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getMarkdownAdapterExtensions(): ExtensionType[] {
|
||||||
|
return [
|
||||||
|
...MarkdownInlineToDeltaAdapterExtensions,
|
||||||
|
...defaultBlockMarkdownAdapterMatchers,
|
||||||
|
...InlineDeltaToMarkdownAdapterExtensions,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNotionHtmlAdapterExtensions(): ExtensionType[] {
|
||||||
|
return [
|
||||||
|
...NotionHtmlInlineToDeltaAdapterExtensions,
|
||||||
|
...defaultBlockNotionHtmlAdapterMatchers,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
const MigratingStoreExtensions: ExtensionType[] = [
|
||||||
|
RootBlockSchemaExtension,
|
||||||
|
SurfaceBlockSchemaExtension,
|
||||||
|
TranscriptionBlockSchemaExtension,
|
||||||
|
|
||||||
|
BlockSelectionExtension,
|
||||||
|
TextSelectionExtension,
|
||||||
|
SurfaceSelectionExtension,
|
||||||
|
CursorSelectionExtension,
|
||||||
|
HighlightSelectionExtension,
|
||||||
|
DatabaseSelectionExtension,
|
||||||
|
|
||||||
|
getHtmlAdapterExtensions(),
|
||||||
|
getMarkdownAdapterExtensions(),
|
||||||
|
getNotionHtmlAdapterExtensions(),
|
||||||
|
getAdapterFactoryExtensions(),
|
||||||
|
|
||||||
|
FeatureFlagService,
|
||||||
|
LinkPreviewerService,
|
||||||
|
FileSizeLimitService,
|
||||||
|
BlockMetaService,
|
||||||
|
].flat();
|
||||||
|
|
||||||
|
export class MigratingStoreExtension extends StoreExtensionProvider {
|
||||||
|
override name = 'migrating';
|
||||||
|
|
||||||
|
override setup(context: StoreExtensionContext) {
|
||||||
|
super.setup(context);
|
||||||
|
context.register(MigratingStoreExtensions);
|
||||||
|
}
|
||||||
|
}
|
||||||
42
blocksuite/affine/all/src/extensions/migrating-view.ts
Normal file
42
blocksuite/affine/all/src/extensions/migrating-view.ts
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import {
|
||||||
|
type ViewExtensionContext,
|
||||||
|
ViewExtensionProvider,
|
||||||
|
} from '@blocksuite/affine-ext-loader';
|
||||||
|
|
||||||
|
import { effects } from './effects';
|
||||||
|
import {
|
||||||
|
MigratingEdgelessEditorBlockSpecs,
|
||||||
|
MigratingPageEditorBlockSpecs,
|
||||||
|
MigratingPreviewEdgelessEditorBlockSpecs,
|
||||||
|
MigratingPreviewPageEditorBlockSpecs,
|
||||||
|
} from './migrating';
|
||||||
|
|
||||||
|
export class MigratingViewExtension extends ViewExtensionProvider {
|
||||||
|
override name = 'migrating';
|
||||||
|
|
||||||
|
override effect() {
|
||||||
|
super.effect();
|
||||||
|
effects();
|
||||||
|
}
|
||||||
|
|
||||||
|
override setup(context: ViewExtensionContext) {
|
||||||
|
super.setup(context);
|
||||||
|
const scope = context.scope;
|
||||||
|
if (scope === 'preview-page') {
|
||||||
|
context.register(MigratingPreviewPageEditorBlockSpecs);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (scope === 'preview-edgeless') {
|
||||||
|
context.register(MigratingPreviewEdgelessEditorBlockSpecs);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (scope === 'page' || scope === 'mobile-page') {
|
||||||
|
context.register(MigratingPageEditorBlockSpecs);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (scope === 'edgeless' || scope === 'mobile-edgeless') {
|
||||||
|
context.register(MigratingEdgelessEditorBlockSpecs);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,124 +1,52 @@
|
|||||||
import { DatabaseSelectionExtension } from '@blocksuite/affine-block-database';
|
import { AttachmentStoreExtension } from '@blocksuite/affine-block-attachment/store';
|
||||||
import {
|
import { BookmarkStoreExtension } from '@blocksuite/affine-block-bookmark/store';
|
||||||
RootBlockHtmlAdapterExtension,
|
import { CalloutStoreExtension } from '@blocksuite/affine-block-callout/store';
|
||||||
RootBlockMarkdownAdapterExtension,
|
import { CodeStoreExtension } from '@blocksuite/affine-block-code/store';
|
||||||
RootBlockNotionHtmlAdapterExtension,
|
import { DataViewStoreExtension } from '@blocksuite/affine-block-data-view/store';
|
||||||
} from '@blocksuite/affine-block-root';
|
import { DatabaseStoreExtension } from '@blocksuite/affine-block-database/store';
|
||||||
import { SurfaceBlockSchemaExtension } from '@blocksuite/affine-block-surface';
|
import { DividerStoreExtension } from '@blocksuite/affine-block-divider/store';
|
||||||
import {
|
import { EdgelessTextStoreExtension } from '@blocksuite/affine-block-edgeless-text/store';
|
||||||
type StoreExtensionContext,
|
import { EmbedStoreExtension } from '@blocksuite/affine-block-embed/store';
|
||||||
StoreExtensionProvider,
|
import { FrameStoreExtension } from '@blocksuite/affine-block-frame/store';
|
||||||
} from '@blocksuite/affine-ext-loader';
|
import { ImageStoreExtension } from '@blocksuite/affine-block-image/store';
|
||||||
import {
|
import { LatexStoreExtension } from '@blocksuite/affine-block-latex/store';
|
||||||
HtmlInlineToDeltaAdapterExtensions,
|
import { ListStoreExtension } from '@blocksuite/affine-block-list/store';
|
||||||
InlineDeltaToHtmlAdapterExtensions,
|
import { NoteStoreExtension } from '@blocksuite/affine-block-note/store';
|
||||||
InlineDeltaToMarkdownAdapterExtensions,
|
import { ParagraphStoreExtension } from '@blocksuite/affine-block-paragraph/store';
|
||||||
InlineDeltaToPlainTextAdapterExtensions,
|
import { SurfaceRefStoreExtension } from '@blocksuite/affine-block-surface-ref/store';
|
||||||
MarkdownInlineToDeltaAdapterExtensions,
|
import { TableStoreExtension } from '@blocksuite/affine-block-table/store';
|
||||||
NotionHtmlInlineToDeltaAdapterExtensions,
|
import { FootnoteStoreExtension } from '@blocksuite/affine-inline-footnote/store';
|
||||||
} from '@blocksuite/affine-inline-preset';
|
import { LatexStoreExtension as InlineLatexStoreExtension } from '@blocksuite/affine-inline-latex/store';
|
||||||
import {
|
import { LinkStoreExtension } from '@blocksuite/affine-inline-link/store';
|
||||||
RootBlockSchemaExtension,
|
import { ReferenceStoreExtension } from '@blocksuite/affine-inline-reference/store';
|
||||||
TranscriptionBlockSchemaExtension,
|
|
||||||
} from '@blocksuite/affine-model';
|
|
||||||
import {
|
|
||||||
HtmlAdapterFactoryExtension,
|
|
||||||
MarkdownAdapterFactoryExtension,
|
|
||||||
MixTextAdapterFactoryExtension,
|
|
||||||
NotionHtmlAdapterFactoryExtension,
|
|
||||||
NotionTextAdapterFactoryExtension,
|
|
||||||
PlainTextAdapterFactoryExtension,
|
|
||||||
} from '@blocksuite/affine-shared/adapters';
|
|
||||||
import { HighlightSelectionExtension } from '@blocksuite/affine-shared/selection';
|
|
||||||
import {
|
|
||||||
BlockMetaService,
|
|
||||||
FeatureFlagService,
|
|
||||||
FileSizeLimitService,
|
|
||||||
LinkPreviewerService,
|
|
||||||
} from '@blocksuite/affine-shared/services';
|
|
||||||
import {
|
|
||||||
BlockSelectionExtension,
|
|
||||||
CursorSelectionExtension,
|
|
||||||
SurfaceSelectionExtension,
|
|
||||||
TextSelectionExtension,
|
|
||||||
} from '@blocksuite/std';
|
|
||||||
import type { ExtensionType } from '@blocksuite/store';
|
|
||||||
|
|
||||||
function getAdapterFactoryExtensions(): ExtensionType[] {
|
import { MigratingStoreExtension } from './migrating-store';
|
||||||
|
|
||||||
|
export function getInternalStoreExtensions() {
|
||||||
return [
|
return [
|
||||||
MarkdownAdapterFactoryExtension,
|
AttachmentStoreExtension,
|
||||||
PlainTextAdapterFactoryExtension,
|
BookmarkStoreExtension,
|
||||||
HtmlAdapterFactoryExtension,
|
CalloutStoreExtension,
|
||||||
NotionTextAdapterFactoryExtension,
|
CodeStoreExtension,
|
||||||
NotionHtmlAdapterFactoryExtension,
|
DataViewStoreExtension,
|
||||||
MixTextAdapterFactoryExtension,
|
DatabaseStoreExtension,
|
||||||
|
DividerStoreExtension,
|
||||||
|
EdgelessTextStoreExtension,
|
||||||
|
EmbedStoreExtension,
|
||||||
|
FrameStoreExtension,
|
||||||
|
ImageStoreExtension,
|
||||||
|
LatexStoreExtension,
|
||||||
|
ListStoreExtension,
|
||||||
|
NoteStoreExtension,
|
||||||
|
ParagraphStoreExtension,
|
||||||
|
SurfaceRefStoreExtension,
|
||||||
|
TableStoreExtension,
|
||||||
|
|
||||||
|
FootnoteStoreExtension,
|
||||||
|
LinkStoreExtension,
|
||||||
|
ReferenceStoreExtension,
|
||||||
|
InlineLatexStoreExtension,
|
||||||
|
|
||||||
|
MigratingStoreExtension,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
const defaultBlockHtmlAdapterMatchers = [RootBlockHtmlAdapterExtension];
|
|
||||||
|
|
||||||
const defaultBlockMarkdownAdapterMatchers = [RootBlockMarkdownAdapterExtension];
|
|
||||||
|
|
||||||
const defaultBlockNotionHtmlAdapterMatchers: ExtensionType[] = [
|
|
||||||
RootBlockNotionHtmlAdapterExtension,
|
|
||||||
];
|
|
||||||
|
|
||||||
function getHtmlAdapterExtensions(): ExtensionType[] {
|
|
||||||
return [
|
|
||||||
...HtmlInlineToDeltaAdapterExtensions,
|
|
||||||
...defaultBlockHtmlAdapterMatchers,
|
|
||||||
...InlineDeltaToHtmlAdapterExtensions,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
function getMarkdownAdapterExtensions(): ExtensionType[] {
|
|
||||||
return [
|
|
||||||
...MarkdownInlineToDeltaAdapterExtensions,
|
|
||||||
...defaultBlockMarkdownAdapterMatchers,
|
|
||||||
...InlineDeltaToMarkdownAdapterExtensions,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
function getNotionHtmlAdapterExtensions(): ExtensionType[] {
|
|
||||||
return [
|
|
||||||
...NotionHtmlInlineToDeltaAdapterExtensions,
|
|
||||||
...defaultBlockNotionHtmlAdapterMatchers,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
function getPlainTextAdapterExtensions(): ExtensionType[] {
|
|
||||||
return [...InlineDeltaToPlainTextAdapterExtensions];
|
|
||||||
}
|
|
||||||
|
|
||||||
const MigratingStoreExtensions: ExtensionType[] = [
|
|
||||||
RootBlockSchemaExtension,
|
|
||||||
SurfaceBlockSchemaExtension,
|
|
||||||
TranscriptionBlockSchemaExtension,
|
|
||||||
|
|
||||||
BlockSelectionExtension,
|
|
||||||
TextSelectionExtension,
|
|
||||||
SurfaceSelectionExtension,
|
|
||||||
CursorSelectionExtension,
|
|
||||||
HighlightSelectionExtension,
|
|
||||||
DatabaseSelectionExtension,
|
|
||||||
|
|
||||||
getHtmlAdapterExtensions(),
|
|
||||||
getMarkdownAdapterExtensions(),
|
|
||||||
getNotionHtmlAdapterExtensions(),
|
|
||||||
getPlainTextAdapterExtensions(),
|
|
||||||
getAdapterFactoryExtensions(),
|
|
||||||
|
|
||||||
FeatureFlagService,
|
|
||||||
LinkPreviewerService,
|
|
||||||
FileSizeLimitService,
|
|
||||||
BlockMetaService,
|
|
||||||
].flat();
|
|
||||||
|
|
||||||
export class MigratingStoreExtension extends StoreExtensionProvider {
|
|
||||||
override name = 'migrating';
|
|
||||||
|
|
||||||
override setup(context: StoreExtensionContext) {
|
|
||||||
super.setup(context);
|
|
||||||
context.register(MigratingStoreExtensions);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,42 +1,56 @@
|
|||||||
import {
|
import { AttachmentViewExtension } from '@blocksuite/affine-block-attachment/view';
|
||||||
type ViewExtensionContext,
|
import { BookmarkViewExtension } from '@blocksuite/affine-block-bookmark/view';
|
||||||
ViewExtensionProvider,
|
import { CalloutViewExtension } from '@blocksuite/affine-block-callout/view';
|
||||||
} from '@blocksuite/affine-ext-loader';
|
import { CodeBlockViewExtension } from '@blocksuite/affine-block-code/view';
|
||||||
|
import { DataViewViewExtension } from '@blocksuite/affine-block-data-view/view';
|
||||||
|
import { DatabaseViewExtension } from '@blocksuite/affine-block-database/view';
|
||||||
|
import { DividerViewExtension } from '@blocksuite/affine-block-divider/view';
|
||||||
|
import { EdgelessTextViewExtension } from '@blocksuite/affine-block-edgeless-text/view';
|
||||||
|
import { EmbedViewExtension } from '@blocksuite/affine-block-embed/view';
|
||||||
|
import { FrameViewExtension } from '@blocksuite/affine-block-frame/view';
|
||||||
|
import { ImageViewExtension } from '@blocksuite/affine-block-image/view';
|
||||||
|
import { LatexViewExtension } from '@blocksuite/affine-block-latex/view';
|
||||||
|
import { ListViewExtension } from '@blocksuite/affine-block-list/view';
|
||||||
|
import { NoteViewExtension } from '@blocksuite/affine-block-note/view';
|
||||||
|
import { ParagraphViewExtension } from '@blocksuite/affine-block-paragraph/view';
|
||||||
|
import { SurfaceRefViewExtension } from '@blocksuite/affine-block-surface-ref/view';
|
||||||
|
import { TableViewExtension } from '@blocksuite/affine-block-table/view';
|
||||||
|
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 { ReferenceViewExtension } from '@blocksuite/affine-inline-reference/view';
|
||||||
|
|
||||||
import { effects } from './effects';
|
import { MigratingViewExtension } from './migrating-view';
|
||||||
import {
|
|
||||||
MigratingEdgelessEditorBlockSpecs,
|
|
||||||
MigratingPageEditorBlockSpecs,
|
|
||||||
MigratingPreviewEdgelessEditorBlockSpecs,
|
|
||||||
MigratingPreviewPageEditorBlockSpecs,
|
|
||||||
} from './migrating';
|
|
||||||
|
|
||||||
export class MigratingViewExtension extends ViewExtensionProvider {
|
export function getInternalViewExtensions() {
|
||||||
override name = 'migrating';
|
return [
|
||||||
|
MigratingViewExtension,
|
||||||
|
|
||||||
override effect() {
|
// Block
|
||||||
super.effect();
|
AttachmentViewExtension,
|
||||||
effects();
|
BookmarkViewExtension,
|
||||||
}
|
CalloutViewExtension,
|
||||||
|
CodeBlockViewExtension,
|
||||||
|
DataViewViewExtension,
|
||||||
|
DatabaseViewExtension,
|
||||||
|
DividerViewExtension,
|
||||||
|
EdgelessTextViewExtension,
|
||||||
|
EmbedViewExtension,
|
||||||
|
FrameViewExtension,
|
||||||
|
ImageViewExtension,
|
||||||
|
LatexViewExtension,
|
||||||
|
ListViewExtension,
|
||||||
|
NoteViewExtension,
|
||||||
|
ParagraphViewExtension,
|
||||||
|
SurfaceRefViewExtension,
|
||||||
|
TableViewExtension,
|
||||||
|
|
||||||
override setup(context: ViewExtensionContext) {
|
// Inline
|
||||||
super.setup(context);
|
FootnoteViewExtension,
|
||||||
const scope = context.scope;
|
LinkViewExtension,
|
||||||
if (scope === 'preview-page') {
|
ReferenceViewExtension,
|
||||||
context.register(MigratingPreviewPageEditorBlockSpecs);
|
InlineLatexViewExtension,
|
||||||
return;
|
MentionViewExtension,
|
||||||
}
|
];
|
||||||
if (scope === 'preview-edgeless') {
|
|
||||||
context.register(MigratingPreviewEdgelessEditorBlockSpecs);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (scope === 'page' || scope === 'mobile-page') {
|
|
||||||
context.register(MigratingPageEditorBlockSpecs);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (scope === 'edgeless' || scope === 'mobile-edgeless') {
|
|
||||||
context.register(MigratingEdgelessEditorBlockSpecs);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
1
blocksuite/affine/all/src/inlines/latex/store.ts
Normal file
1
blocksuite/affine/all/src/inlines/latex/store.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from '@blocksuite/affine-inline-latex/store';
|
||||||
1
blocksuite/affine/all/src/inlines/latex/view.ts
Normal file
1
blocksuite/affine/all/src/inlines/latex/view.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from '@blocksuite/affine-inline-latex/view';
|
||||||
1
blocksuite/affine/all/src/inlines/mention/view.ts
Normal file
1
blocksuite/affine/all/src/inlines/mention/view.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from '@blocksuite/affine-inline-mention/view';
|
||||||
1
blocksuite/affine/all/src/inlines/reference/store.ts
Normal file
1
blocksuite/affine/all/src/inlines/reference/store.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from '@blocksuite/affine-inline-reference/store';
|
||||||
1
blocksuite/affine/all/src/inlines/reference/view.ts
Normal file
1
blocksuite/affine/all/src/inlines/reference/view.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from '@blocksuite/affine-inline-reference/view';
|
||||||
@@ -7,7 +7,6 @@ import {
|
|||||||
} from '@blocksuite/affine-shared/adapters';
|
} from '@blocksuite/affine-shared/adapters';
|
||||||
import type { DeltaInsert } from '@blocksuite/store';
|
import type { DeltaInsert } from '@blocksuite/store';
|
||||||
import { nanoid } from '@blocksuite/store';
|
import { nanoid } from '@blocksuite/store';
|
||||||
import { bundledLanguagesInfo, codeToHast } from 'shiki';
|
|
||||||
|
|
||||||
export const codeBlockHtmlAdapterMatcher: BlockHtmlAdapterMatcher = {
|
export const codeBlockHtmlAdapterMatcher: BlockHtmlAdapterMatcher = {
|
||||||
flavour: CodeBlockSchema.model.flavour,
|
flavour: CodeBlockSchema.model.flavour,
|
||||||
@@ -69,24 +68,38 @@ export const codeBlockHtmlAdapterMatcher: BlockHtmlAdapterMatcher = {
|
|||||||
enter: async (o, context) => {
|
enter: async (o, context) => {
|
||||||
const { walkerContext } = context;
|
const { walkerContext } = context;
|
||||||
const rawLang = o.node.props.language as string | null;
|
const rawLang = o.node.props.language as string | null;
|
||||||
const matchedLang = rawLang
|
|
||||||
? (bundledLanguagesInfo.find(
|
|
||||||
info =>
|
|
||||||
info.id === rawLang ||
|
|
||||||
info.name === rawLang ||
|
|
||||||
info.aliases?.includes(rawLang)
|
|
||||||
)?.id ?? 'text')
|
|
||||||
: 'text';
|
|
||||||
|
|
||||||
const text = (o.node.props.text as Record<string, unknown>)
|
const text = (o.node.props.text as Record<string, unknown>)
|
||||||
.delta as DeltaInsert[];
|
.delta as DeltaInsert[];
|
||||||
const code = text.map(delta => delta.insert).join('');
|
const code = text.map(delta => delta.insert).join('');
|
||||||
const hast = await codeToHast(code, {
|
|
||||||
lang: matchedLang,
|
|
||||||
theme: 'light-plus',
|
|
||||||
});
|
|
||||||
|
|
||||||
walkerContext.openNode(hast as never, 'children').closeNode();
|
walkerContext
|
||||||
|
.openNode(
|
||||||
|
{
|
||||||
|
type: 'element',
|
||||||
|
tagName: 'pre',
|
||||||
|
properties: {},
|
||||||
|
children: [],
|
||||||
|
},
|
||||||
|
'children'
|
||||||
|
)
|
||||||
|
.openNode(
|
||||||
|
{
|
||||||
|
type: 'element',
|
||||||
|
tagName: 'code',
|
||||||
|
properties: {
|
||||||
|
className: [`code-${rawLang ?? 'text'}`],
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
type: 'text',
|
||||||
|
value: code,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
'children'
|
||||||
|
)
|
||||||
|
.closeNode()
|
||||||
|
.closeNode();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@blocksuite/affine-components": "workspace:*",
|
"@blocksuite/affine-components": "workspace:*",
|
||||||
|
"@blocksuite/affine-ext-loader": "workspace:*",
|
||||||
"@blocksuite/affine-inline-reference": "workspace:*",
|
"@blocksuite/affine-inline-reference": "workspace:*",
|
||||||
"@blocksuite/affine-model": "workspace:*",
|
"@blocksuite/affine-model": "workspace:*",
|
||||||
"@blocksuite/affine-rich-text": "workspace:*",
|
"@blocksuite/affine-rich-text": "workspace:*",
|
||||||
@@ -40,7 +41,9 @@
|
|||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.ts",
|
".": "./src/index.ts",
|
||||||
"./effects": "./src/effects.ts"
|
"./effects": "./src/effects.ts",
|
||||||
|
"./view": "./src/view.ts",
|
||||||
|
"./store": "./src/store.ts"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"src",
|
"src",
|
||||||
|
|||||||
21
blocksuite/affine/inlines/latex/src/store.ts
Normal file
21
blocksuite/affine/inlines/latex/src/store.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import {
|
||||||
|
type StoreExtensionContext,
|
||||||
|
StoreExtensionProvider,
|
||||||
|
} from '@blocksuite/affine-ext-loader';
|
||||||
|
|
||||||
|
import {
|
||||||
|
latexDeltaMarkdownAdapterMatch,
|
||||||
|
latexDeltaToMarkdownAdapterMatcher,
|
||||||
|
markdownInlineMathToDeltaMatcher,
|
||||||
|
} from './adapters';
|
||||||
|
|
||||||
|
export class LatexStoreExtension extends StoreExtensionProvider {
|
||||||
|
override name = 'affine-latex-inline';
|
||||||
|
|
||||||
|
override setup(context: StoreExtensionContext) {
|
||||||
|
super.setup(context);
|
||||||
|
context.register(latexDeltaMarkdownAdapterMatch);
|
||||||
|
context.register(latexDeltaToMarkdownAdapterMatcher);
|
||||||
|
context.register(markdownInlineMathToDeltaMatcher);
|
||||||
|
}
|
||||||
|
}
|
||||||
29
blocksuite/affine/inlines/latex/src/view.ts
Normal file
29
blocksuite/affine/inlines/latex/src/view.ts
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import {
|
||||||
|
type ViewExtensionContext,
|
||||||
|
ViewExtensionProvider,
|
||||||
|
} from '@blocksuite/affine-ext-loader';
|
||||||
|
|
||||||
|
import { effects } from './effects';
|
||||||
|
import {
|
||||||
|
LatexEditorUnitSpecExtension,
|
||||||
|
LatexInlineSpecExtension,
|
||||||
|
} from './inline-spec';
|
||||||
|
import { LatexEditorInlineManagerExtension } from './latex-node/latex-editor-menu';
|
||||||
|
|
||||||
|
export class LatexViewExtension extends ViewExtensionProvider {
|
||||||
|
override name = 'affine-latex-inline';
|
||||||
|
|
||||||
|
override effect(): void {
|
||||||
|
super.effect();
|
||||||
|
effects();
|
||||||
|
}
|
||||||
|
|
||||||
|
override setup(context: ViewExtensionContext) {
|
||||||
|
super.setup(context);
|
||||||
|
context.register([
|
||||||
|
LatexInlineSpecExtension,
|
||||||
|
LatexEditorUnitSpecExtension,
|
||||||
|
LatexEditorInlineManagerExtension,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
"include": ["./src"],
|
"include": ["./src"],
|
||||||
"references": [
|
"references": [
|
||||||
{ "path": "../../components" },
|
{ "path": "../../components" },
|
||||||
|
{ "path": "../../ext-loader" },
|
||||||
{ "path": "../reference" },
|
{ "path": "../reference" },
|
||||||
{ "path": "../../model" },
|
{ "path": "../../model" },
|
||||||
{ "path": "../../rich-text" },
|
{ "path": "../../rich-text" },
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@blocksuite/affine-components": "workspace:*",
|
"@blocksuite/affine-components": "workspace:*",
|
||||||
|
"@blocksuite/affine-ext-loader": "workspace:*",
|
||||||
"@blocksuite/affine-model": "workspace:*",
|
"@blocksuite/affine-model": "workspace:*",
|
||||||
"@blocksuite/affine-shared": "workspace:*",
|
"@blocksuite/affine-shared": "workspace:*",
|
||||||
"@blocksuite/global": "workspace:*",
|
"@blocksuite/global": "workspace:*",
|
||||||
@@ -33,7 +34,8 @@
|
|||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.ts",
|
".": "./src/index.ts",
|
||||||
"./effects": "./src/effects.ts"
|
"./effects": "./src/effects.ts",
|
||||||
|
"./view": "./src/view.ts"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"src",
|
"src",
|
||||||
|
|||||||
21
blocksuite/affine/inlines/mention/src/view.ts
Normal file
21
blocksuite/affine/inlines/mention/src/view.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import {
|
||||||
|
type ViewExtensionContext,
|
||||||
|
ViewExtensionProvider,
|
||||||
|
} from '@blocksuite/affine-ext-loader';
|
||||||
|
|
||||||
|
import { effects } from './effects';
|
||||||
|
import { MentionInlineSpecExtension } from './inline-spec';
|
||||||
|
|
||||||
|
export class MentionViewExtension extends ViewExtensionProvider {
|
||||||
|
override name = 'affine-mention-inline';
|
||||||
|
|
||||||
|
override effect(): void {
|
||||||
|
super.effect();
|
||||||
|
effects();
|
||||||
|
}
|
||||||
|
|
||||||
|
override setup(context: ViewExtensionContext): void {
|
||||||
|
super.setup(context);
|
||||||
|
context.register(MentionInlineSpecExtension);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
"include": ["./src"],
|
"include": ["./src"],
|
||||||
"references": [
|
"references": [
|
||||||
{ "path": "../../components" },
|
{ "path": "../../components" },
|
||||||
|
{ "path": "../../ext-loader" },
|
||||||
{ "path": "../../model" },
|
{ "path": "../../model" },
|
||||||
{ "path": "../../shared" },
|
{ "path": "../../shared" },
|
||||||
{ "path": "../../../framework/global" },
|
{ "path": "../../../framework/global" },
|
||||||
|
|||||||
@@ -5,12 +5,10 @@ import { InlineDeltaToHtmlAdapterExtensions } from './html/inline-delta';
|
|||||||
import { InlineDeltaToMarkdownAdapterExtensions } from './markdown/inline-delta';
|
import { InlineDeltaToMarkdownAdapterExtensions } from './markdown/inline-delta';
|
||||||
import { MarkdownInlineToDeltaAdapterExtensions } from './markdown/markdown-inline';
|
import { MarkdownInlineToDeltaAdapterExtensions } from './markdown/markdown-inline';
|
||||||
import { NotionHtmlInlineToDeltaAdapterExtensions } from './notion-html/html-inline';
|
import { NotionHtmlInlineToDeltaAdapterExtensions } from './notion-html/html-inline';
|
||||||
import { InlineDeltaToPlainTextAdapterExtensions } from './plain-text/inline-delta';
|
|
||||||
|
|
||||||
export const InlineAdapterExtensions: ExtensionType[] = [
|
export const InlineAdapterExtensions: ExtensionType[] = [
|
||||||
HtmlInlineToDeltaAdapterExtensions,
|
HtmlInlineToDeltaAdapterExtensions,
|
||||||
InlineDeltaToHtmlAdapterExtensions,
|
InlineDeltaToHtmlAdapterExtensions,
|
||||||
InlineDeltaToPlainTextAdapterExtensions,
|
|
||||||
NotionHtmlInlineToDeltaAdapterExtensions,
|
NotionHtmlInlineToDeltaAdapterExtensions,
|
||||||
InlineDeltaToMarkdownAdapterExtensions,
|
InlineDeltaToMarkdownAdapterExtensions,
|
||||||
MarkdownInlineToDeltaAdapterExtensions,
|
MarkdownInlineToDeltaAdapterExtensions,
|
||||||
@@ -21,4 +19,3 @@ export * from './html/inline-delta';
|
|||||||
export * from './markdown/inline-delta';
|
export * from './markdown/inline-delta';
|
||||||
export * from './markdown/markdown-inline';
|
export * from './markdown/markdown-inline';
|
||||||
export * from './notion-html/html-inline';
|
export * from './notion-html/html-inline';
|
||||||
export * from './plain-text/inline-delta';
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import { referenceDeltaToHtmlAdapterMatcher } from '@blocksuite/affine-inline-reference';
|
|
||||||
import type { InlineHtmlAST } from '@blocksuite/affine-shared/adapters';
|
import type { InlineHtmlAST } from '@blocksuite/affine-shared/adapters';
|
||||||
import { InlineDeltaToHtmlAdapterExtension } from '@blocksuite/affine-shared/adapters';
|
import { InlineDeltaToHtmlAdapterExtension } from '@blocksuite/affine-shared/adapters';
|
||||||
import { ThemeProvider } from '@blocksuite/affine-shared/services';
|
import { ThemeProvider } from '@blocksuite/affine-shared/services';
|
||||||
@@ -152,5 +151,4 @@ export const InlineDeltaToHtmlAdapterExtensions = [
|
|||||||
highlightBackgroundDeltaToHtmlAdapterMatcher,
|
highlightBackgroundDeltaToHtmlAdapterMatcher,
|
||||||
highlightColorDeltaToHtmlAdapterMatcher,
|
highlightColorDeltaToHtmlAdapterMatcher,
|
||||||
inlineCodeDeltaToHtmlAdapterMatcher,
|
inlineCodeDeltaToHtmlAdapterMatcher,
|
||||||
referenceDeltaToHtmlAdapterMatcher,
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
import { latexDeltaToMarkdownAdapterMatcher } from '@blocksuite/affine-inline-latex';
|
|
||||||
import { referenceDeltaToMarkdownAdapterMatcher } from '@blocksuite/affine-inline-reference';
|
|
||||||
import { InlineDeltaToMarkdownAdapterExtension } from '@blocksuite/affine-shared/adapters';
|
import { InlineDeltaToMarkdownAdapterExtension } from '@blocksuite/affine-shared/adapters';
|
||||||
|
|
||||||
export const boldDeltaToMarkdownAdapterMatcher =
|
export const boldDeltaToMarkdownAdapterMatcher =
|
||||||
@@ -52,10 +50,8 @@ export const inlineCodeDeltaToMarkdownAdapterMatcher =
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const InlineDeltaToMarkdownAdapterExtensions = [
|
export const InlineDeltaToMarkdownAdapterExtensions = [
|
||||||
referenceDeltaToMarkdownAdapterMatcher,
|
|
||||||
inlineCodeDeltaToMarkdownAdapterMatcher,
|
inlineCodeDeltaToMarkdownAdapterMatcher,
|
||||||
boldDeltaToMarkdownAdapterMatcher,
|
boldDeltaToMarkdownAdapterMatcher,
|
||||||
italicDeltaToMarkdownAdapterMatcher,
|
italicDeltaToMarkdownAdapterMatcher,
|
||||||
strikeDeltaToMarkdownAdapterMatcher,
|
strikeDeltaToMarkdownAdapterMatcher,
|
||||||
latexDeltaToMarkdownAdapterMatcher,
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import { markdownInlineMathToDeltaMatcher } from '@blocksuite/affine-inline-latex';
|
|
||||||
import { MarkdownASTToDeltaExtension } from '@blocksuite/affine-shared/adapters';
|
import { MarkdownASTToDeltaExtension } from '@blocksuite/affine-shared/adapters';
|
||||||
|
|
||||||
export const markdownTextToDeltaMatcher = MarkdownASTToDeltaExtension({
|
export const markdownTextToDeltaMatcher = MarkdownASTToDeltaExtension({
|
||||||
@@ -94,7 +93,6 @@ export const MarkdownInlineToDeltaAdapterExtensions = [
|
|||||||
markdownStrongToDeltaMatcher,
|
markdownStrongToDeltaMatcher,
|
||||||
markdownEmphasisToDeltaMatcher,
|
markdownEmphasisToDeltaMatcher,
|
||||||
markdownDeleteToDeltaMatcher,
|
markdownDeleteToDeltaMatcher,
|
||||||
markdownInlineMathToDeltaMatcher,
|
|
||||||
markdownListToDeltaMatcher,
|
markdownListToDeltaMatcher,
|
||||||
markdownHtmlToDeltaMatcher,
|
markdownHtmlToDeltaMatcher,
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
import { latexDeltaMarkdownAdapterMatch } from '@blocksuite/affine-inline-latex';
|
|
||||||
import { referenceDeltaMarkdownAdapterMatch } from '@blocksuite/affine-inline-reference';
|
|
||||||
import type { ExtensionType } from '@blocksuite/store';
|
|
||||||
|
|
||||||
export const InlineDeltaToPlainTextAdapterExtensions: ExtensionType[] = [
|
|
||||||
referenceDeltaMarkdownAdapterMatch,
|
|
||||||
latexDeltaMarkdownAdapterMatch,
|
|
||||||
];
|
|
||||||
@@ -1,6 +1,3 @@
|
|||||||
import { inlineLatexExtensions } from '@blocksuite/affine-inline-latex';
|
|
||||||
import { inlineMentionExtensions } from '@blocksuite/affine-inline-mention';
|
|
||||||
import { inlineReferenceExtensions } from '@blocksuite/affine-inline-reference';
|
|
||||||
import type { AffineTextAttributes } from '@blocksuite/affine-shared/types';
|
import type { AffineTextAttributes } from '@blocksuite/affine-shared/types';
|
||||||
import {
|
import {
|
||||||
type InlineRootElement,
|
type InlineRootElement,
|
||||||
@@ -104,7 +101,4 @@ export const InlineSpecExtensions: ExtensionType[] = [
|
|||||||
CodeInlineSpecExtension,
|
CodeInlineSpecExtension,
|
||||||
BackgroundInlineSpecExtension,
|
BackgroundInlineSpecExtension,
|
||||||
ColorInlineSpecExtension,
|
ColorInlineSpecExtension,
|
||||||
...inlineReferenceExtensions,
|
|
||||||
...inlineLatexExtensions,
|
|
||||||
...inlineMentionExtensions,
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@blocksuite/affine-components": "workspace:*",
|
"@blocksuite/affine-components": "workspace:*",
|
||||||
|
"@blocksuite/affine-ext-loader": "workspace:*",
|
||||||
"@blocksuite/affine-model": "workspace:*",
|
"@blocksuite/affine-model": "workspace:*",
|
||||||
"@blocksuite/affine-shared": "workspace:*",
|
"@blocksuite/affine-shared": "workspace:*",
|
||||||
"@blocksuite/global": "workspace:*",
|
"@blocksuite/global": "workspace:*",
|
||||||
@@ -33,7 +34,9 @@
|
|||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./src/index.ts",
|
".": "./src/index.ts",
|
||||||
"./effects": "./src/effects.ts"
|
"./effects": "./src/effects.ts",
|
||||||
|
"./store": "./src/store.ts",
|
||||||
|
"./view": "./src/view.ts"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"src",
|
"src",
|
||||||
|
|||||||
21
blocksuite/affine/inlines/reference/src/store.ts
Normal file
21
blocksuite/affine/inlines/reference/src/store.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import {
|
||||||
|
type StoreExtensionContext,
|
||||||
|
StoreExtensionProvider,
|
||||||
|
} from '@blocksuite/affine-ext-loader';
|
||||||
|
|
||||||
|
import {
|
||||||
|
referenceDeltaMarkdownAdapterMatch,
|
||||||
|
referenceDeltaToHtmlAdapterMatcher,
|
||||||
|
referenceDeltaToMarkdownAdapterMatcher,
|
||||||
|
} from './adapters';
|
||||||
|
|
||||||
|
export class ReferenceStoreExtension extends StoreExtensionProvider {
|
||||||
|
override name = 'affine-reference-inline';
|
||||||
|
|
||||||
|
override setup(context: StoreExtensionContext) {
|
||||||
|
super.setup(context);
|
||||||
|
context.register(referenceDeltaToHtmlAdapterMatcher);
|
||||||
|
context.register(referenceDeltaToMarkdownAdapterMatcher);
|
||||||
|
context.register(referenceDeltaMarkdownAdapterMatch);
|
||||||
|
}
|
||||||
|
}
|
||||||
25
blocksuite/affine/inlines/reference/src/view.ts
Normal file
25
blocksuite/affine/inlines/reference/src/view.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import {
|
||||||
|
type ViewExtensionContext,
|
||||||
|
ViewExtensionProvider,
|
||||||
|
} from '@blocksuite/affine-ext-loader';
|
||||||
|
|
||||||
|
import { effects } from './effects';
|
||||||
|
import { ReferenceInlineSpecExtension } from './inline-spec';
|
||||||
|
import { RefNodeSlotsExtension } from './reference-node';
|
||||||
|
import { referenceNodeToolbar } from './toolbar';
|
||||||
|
|
||||||
|
export class ReferenceViewExtension extends ViewExtensionProvider {
|
||||||
|
override name = 'affine-reference-inline';
|
||||||
|
|
||||||
|
override effect(): void {
|
||||||
|
super.effect();
|
||||||
|
effects();
|
||||||
|
}
|
||||||
|
|
||||||
|
override setup(context: ViewExtensionContext) {
|
||||||
|
super.setup(context);
|
||||||
|
context.register(referenceNodeToolbar);
|
||||||
|
context.register(ReferenceInlineSpecExtension);
|
||||||
|
context.register(RefNodeSlotsExtension);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
"include": ["./src"],
|
"include": ["./src"],
|
||||||
"references": [
|
"references": [
|
||||||
{ "path": "../../components" },
|
{ "path": "../../components" },
|
||||||
|
{ "path": "../../ext-loader" },
|
||||||
{ "path": "../../model" },
|
{ "path": "../../model" },
|
||||||
{ "path": "../../shared" },
|
{ "path": "../../shared" },
|
||||||
{ "path": "../../../framework/global" },
|
{ "path": "../../../framework/global" },
|
||||||
|
|||||||
@@ -1,49 +1,7 @@
|
|||||||
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 { StoreExtensionManager } from '@blocksuite/affine/ext-loader';
|
import { StoreExtensionManager } from '@blocksuite/affine/ext-loader';
|
||||||
import { MigratingStoreExtension } from '@blocksuite/affine/extensions/store';
|
import { getInternalStoreExtensions } from '@blocksuite/affine/extensions/store';
|
||||||
import { FootnoteStoreExtension } from '@blocksuite/affine/inlines/footnote/store';
|
|
||||||
import { LinkStoreExtension } from '@blocksuite/affine/inlines/link/store';
|
|
||||||
|
|
||||||
const manager = new StoreExtensionManager([
|
const manager = new StoreExtensionManager(getInternalStoreExtensions());
|
||||||
AttachmentStoreExtension,
|
|
||||||
BookmarkStoreExtension,
|
|
||||||
CalloutStoreExtension,
|
|
||||||
CodeStoreExtension,
|
|
||||||
DataViewStoreExtension,
|
|
||||||
DatabaseStoreExtension,
|
|
||||||
DividerStoreExtension,
|
|
||||||
EdgelessTextStoreExtension,
|
|
||||||
EmbedStoreExtension,
|
|
||||||
FrameStoreExtension,
|
|
||||||
ImageStoreExtension,
|
|
||||||
LatexStoreExtension,
|
|
||||||
ListStoreExtension,
|
|
||||||
NoteStoreExtension,
|
|
||||||
ParagraphStoreExtension,
|
|
||||||
SurfaceRefStoreExtension,
|
|
||||||
TableStoreExtension,
|
|
||||||
|
|
||||||
FootnoteStoreExtension,
|
|
||||||
LinkStoreExtension,
|
|
||||||
|
|
||||||
MigratingStoreExtension,
|
|
||||||
]);
|
|
||||||
|
|
||||||
export function getTestStoreManager() {
|
export function getTestStoreManager() {
|
||||||
return manager;
|
return manager;
|
||||||
|
|||||||
@@ -1,51 +1,8 @@
|
|||||||
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 { 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 { ViewExtensionManager } from '@blocksuite/affine/ext-loader';
|
import { ViewExtensionManager } from '@blocksuite/affine/ext-loader';
|
||||||
import { MigratingViewExtension } from '@blocksuite/affine/extensions/view';
|
import { getInternalViewExtensions } from '@blocksuite/affine/extensions/view';
|
||||||
import { FootnoteViewExtension } from '@blocksuite/affine/inlines/footnote/view';
|
|
||||||
import { LinkViewExtension } from '@blocksuite/affine/inlines/link/view';
|
const manager = new ViewExtensionManager(getInternalViewExtensions());
|
||||||
|
|
||||||
export function getTestViewManager() {
|
export function getTestViewManager() {
|
||||||
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,
|
|
||||||
]);
|
|
||||||
return manager;
|
return manager;
|
||||||
}
|
}
|
||||||
|
|||||||
8
packages/common/nbstore/src/sync/indexer/bs-store.ts
Normal file
8
packages/common/nbstore/src/sync/indexer/bs-store.ts
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import { StoreExtensionManager } from '@blocksuite/affine/ext-loader';
|
||||||
|
import { getInternalStoreExtensions } from '@blocksuite/affine/extensions/store';
|
||||||
|
|
||||||
|
const manager = new StoreExtensionManager(getInternalStoreExtensions());
|
||||||
|
|
||||||
|
export function getStoreManager() {
|
||||||
|
return manager;
|
||||||
|
}
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters';
|
|
||||||
import { Container } from '@blocksuite/affine/global/di';
|
import { Container } from '@blocksuite/affine/global/di';
|
||||||
import type {
|
import type {
|
||||||
AttachmentBlockModel,
|
AttachmentBlockModel,
|
||||||
@@ -28,6 +27,7 @@ import {
|
|||||||
} from 'yjs';
|
} from 'yjs';
|
||||||
|
|
||||||
import { IndexerDocument } from '../../storage';
|
import { IndexerDocument } from '../../storage';
|
||||||
|
import { getStoreManager } from './bs-store';
|
||||||
|
|
||||||
const blocksuiteSchema = new Schema();
|
const blocksuiteSchema = new Schema();
|
||||||
blocksuiteSchema.register([...AffineSchemas]);
|
blocksuiteSchema.register([...AffineSchemas]);
|
||||||
@@ -119,9 +119,11 @@ function generateMarkdownPreviewBuilder(
|
|||||||
};
|
};
|
||||||
|
|
||||||
const container = new Container();
|
const container = new Container();
|
||||||
getMarkdownAdapterExtensions().forEach(ext => {
|
getStoreManager()
|
||||||
ext.setup(container);
|
.get('store')
|
||||||
});
|
.forEach(ext => {
|
||||||
|
ext.setup(container);
|
||||||
|
});
|
||||||
|
|
||||||
const provider = container.provider();
|
const provider = container.provider();
|
||||||
const markdownAdapter = new MarkdownAdapter(
|
const markdownAdapter = new MarkdownAdapter(
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { getStoreManager } from '@affine/core/blocksuite/manager/migrating-store';
|
||||||
import { AffineContext } from '@affine/core/components/context';
|
import { AffineContext } from '@affine/core/components/context';
|
||||||
import { AppFallback } from '@affine/core/mobile/components/app-fallback';
|
import { AppFallback } from '@affine/core/mobile/components/app-fallback';
|
||||||
import { configureMobileModules } from '@affine/core/mobile/modules';
|
import { configureMobileModules } from '@affine/core/mobile/modules';
|
||||||
@@ -30,7 +31,6 @@ import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspac
|
|||||||
import { getWorkerUrl } from '@affine/env/worker';
|
import { getWorkerUrl } from '@affine/env/worker';
|
||||||
import { I18n } from '@affine/i18n';
|
import { I18n } from '@affine/i18n';
|
||||||
import { StoreManagerClient } from '@affine/nbstore/worker/client';
|
import { StoreManagerClient } from '@affine/nbstore/worker/client';
|
||||||
import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters';
|
|
||||||
import { Container } from '@blocksuite/affine/global/di';
|
import { Container } from '@blocksuite/affine/global/di';
|
||||||
import {
|
import {
|
||||||
docLinkBaseURLMiddleware,
|
docLinkBaseURLMiddleware,
|
||||||
@@ -251,9 +251,11 @@ framework.scope(ServerScope).override(AuthProvider, resolver => {
|
|||||||
const snapshot = transformer.docToSnapshot(blockSuiteDoc);
|
const snapshot = transformer.docToSnapshot(blockSuiteDoc);
|
||||||
|
|
||||||
const container = new Container();
|
const container = new Container();
|
||||||
getMarkdownAdapterExtensions().forEach(ext => {
|
getStoreManager()
|
||||||
ext.setup(container);
|
.get('store')
|
||||||
});
|
.forEach(ext => {
|
||||||
|
ext.setup(container);
|
||||||
|
});
|
||||||
const provider = container.provider();
|
const provider = container.provider();
|
||||||
|
|
||||||
const adapter = new MarkdownAdapter(transformer, provider);
|
const adapter = new MarkdownAdapter(transformer, provider);
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspac
|
|||||||
import { getWorkerUrl } from '@affine/env/worker';
|
import { getWorkerUrl } from '@affine/env/worker';
|
||||||
import { I18n } from '@affine/i18n';
|
import { I18n } from '@affine/i18n';
|
||||||
import { StoreManagerClient } from '@affine/nbstore/worker/client';
|
import { StoreManagerClient } from '@affine/nbstore/worker/client';
|
||||||
import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters';
|
|
||||||
import { Container } from '@blocksuite/affine/global/di';
|
import { Container } from '@blocksuite/affine/global/di';
|
||||||
import {
|
import {
|
||||||
docLinkBaseURLMiddleware,
|
docLinkBaseURLMiddleware,
|
||||||
@@ -263,9 +262,11 @@ const frameworkProvider = framework.provider();
|
|||||||
const snapshot = transformer.docToSnapshot(blockSuiteDoc);
|
const snapshot = transformer.docToSnapshot(blockSuiteDoc);
|
||||||
|
|
||||||
const container = new Container();
|
const container = new Container();
|
||||||
getMarkdownAdapterExtensions().forEach(ext => {
|
getStoreManager()
|
||||||
ext.setup(container);
|
.get('store')
|
||||||
});
|
.forEach(ext => {
|
||||||
|
ext.setup(container);
|
||||||
|
});
|
||||||
const provider = container.provider();
|
const provider = container.provider();
|
||||||
|
|
||||||
const adapter = new MarkdownAdapter(transformer, provider);
|
const adapter = new MarkdownAdapter(transformer, provider);
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { createReactComponentFromLit } from '@affine/component';
|
import { createReactComponentFromLit } from '@affine/component';
|
||||||
import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters';
|
|
||||||
import {
|
import {
|
||||||
defaultImageProxyMiddleware,
|
defaultImageProxyMiddleware,
|
||||||
ImageProxyService,
|
ImageProxyService,
|
||||||
@@ -36,6 +35,7 @@ import { keyed } from 'lit/directives/keyed.js';
|
|||||||
import { literal } from 'lit/static-html.js';
|
import { literal } from 'lit/static-html.js';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
|
import { getStoreManager } from '../../manager/migrating-store';
|
||||||
import { getViewManager } from '../../manager/migrating-view';
|
import { getViewManager } from '../../manager/migrating-view';
|
||||||
import { markDownToDoc } from '../../utils';
|
import { markDownToDoc } from '../../utils';
|
||||||
import type {
|
import type {
|
||||||
@@ -231,9 +231,11 @@ export class TextRenderer extends WithDisposable(ShadowlessElement) {
|
|||||||
provider = this.host.std.store.provider;
|
provider = this.host.std.store.provider;
|
||||||
} else {
|
} else {
|
||||||
const container = new Container();
|
const container = new Container();
|
||||||
getMarkdownAdapterExtensions().forEach(ext => {
|
getStoreManager()
|
||||||
ext.setup(container);
|
.get('store')
|
||||||
});
|
.forEach(ext => {
|
||||||
|
ext.setup(container);
|
||||||
|
});
|
||||||
|
|
||||||
provider = container.provider();
|
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 { Container } from '@blocksuite/affine/global/di';
|
||||||
import { TestWorkspace } from '@blocksuite/affine/store/test';
|
import { TestWorkspace } from '@blocksuite/affine/store/test';
|
||||||
import { describe, expect, test } from 'vitest';
|
import { describe, expect, test } from 'vitest';
|
||||||
@@ -6,9 +6,11 @@ import { describe, expect, test } from 'vitest';
|
|||||||
import { markdownToMindmap } from '../mindmap-preview.js';
|
import { markdownToMindmap } from '../mindmap-preview.js';
|
||||||
|
|
||||||
const container = new Container();
|
const container = new Container();
|
||||||
getMarkdownAdapterExtensions().forEach(ext => {
|
getStoreManager()
|
||||||
ext.setup(container);
|
.get('store')
|
||||||
});
|
.forEach(ext => {
|
||||||
|
ext.setup(container);
|
||||||
|
});
|
||||||
const provider = container.provider();
|
const provider = container.provider();
|
||||||
|
|
||||||
describe('markdownToMindmap: convert markdown list to a mind map tree', () => {
|
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 {
|
import {
|
||||||
type StoreExtensionContext,
|
type StoreExtensionContext,
|
||||||
StoreExtensionManager,
|
StoreExtensionManager,
|
||||||
StoreExtensionProvider,
|
StoreExtensionProvider,
|
||||||
} from '@blocksuite/affine/ext-loader';
|
} from '@blocksuite/affine/ext-loader';
|
||||||
import { MigratingStoreExtension } from '@blocksuite/affine/extensions/store';
|
import { getInternalStoreExtensions } from '@blocksuite/affine/extensions/store';
|
||||||
import { FootnoteStoreExtension } from '@blocksuite/affine/inlines/footnote/store';
|
|
||||||
import { LinkStoreExtension } from '@blocksuite/affine/inlines/link/store';
|
|
||||||
|
|
||||||
import { AIChatBlockSchemaExtension } from '../ai/blocks/ai-chat-block/model';
|
import { AIChatBlockSchemaExtension } from '../ai/blocks/ai-chat-block/model';
|
||||||
|
|
||||||
@@ -36,29 +17,7 @@ class MigratingAffineStoreExtension extends StoreExtensionProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const manager = new StoreExtensionManager([
|
const manager = new StoreExtensionManager([
|
||||||
// Block
|
...getInternalStoreExtensions(),
|
||||||
AttachmentStoreExtension,
|
|
||||||
BookmarkStoreExtension,
|
|
||||||
CalloutStoreExtension,
|
|
||||||
CodeStoreExtension,
|
|
||||||
DataViewStoreExtension,
|
|
||||||
DatabaseStoreExtension,
|
|
||||||
DividerStoreExtension,
|
|
||||||
EdgelessTextStoreExtension,
|
|
||||||
EmbedStoreExtension,
|
|
||||||
FrameStoreExtension,
|
|
||||||
ImageStoreExtension,
|
|
||||||
LatexStoreExtension,
|
|
||||||
ListStoreExtension,
|
|
||||||
NoteStoreExtension,
|
|
||||||
ParagraphStoreExtension,
|
|
||||||
SurfaceRefStoreExtension,
|
|
||||||
TableStoreExtension,
|
|
||||||
// Inline
|
|
||||||
FootnoteStoreExtension,
|
|
||||||
LinkStoreExtension,
|
|
||||||
|
|
||||||
MigratingStoreExtension,
|
|
||||||
MigratingAffineStoreExtension,
|
MigratingAffineStoreExtension,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -1,30 +1,11 @@
|
|||||||
import { PeekViewService } from '@affine/core/modules/peek-view';
|
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 { 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 {
|
import {
|
||||||
type ViewExtensionContext,
|
type ViewExtensionContext,
|
||||||
ViewExtensionManager,
|
ViewExtensionManager,
|
||||||
ViewExtensionProvider,
|
ViewExtensionProvider,
|
||||||
} from '@blocksuite/affine/ext-loader';
|
} from '@blocksuite/affine/ext-loader';
|
||||||
import { MigratingViewExtension } from '@blocksuite/affine/extensions/view';
|
import { getInternalViewExtensions } from '@blocksuite/affine/extensions/view';
|
||||||
import { FootnoteViewExtension } from '@blocksuite/affine/inlines/footnote/view';
|
|
||||||
import { LinkViewExtension } from '@blocksuite/affine/inlines/link/view';
|
|
||||||
import { ToolbarModuleExtension } from '@blocksuite/affine/shared/services';
|
import { ToolbarModuleExtension } from '@blocksuite/affine/shared/services';
|
||||||
import { BlockFlavourIdentifier } from '@blocksuite/affine/std';
|
import { BlockFlavourIdentifier } from '@blocksuite/affine/std';
|
||||||
import { FrameworkProvider } from '@toeverything/infra';
|
import { FrameworkProvider } from '@toeverything/infra';
|
||||||
@@ -147,29 +128,7 @@ class MigratingAffineViewExtension extends ViewExtensionProvider<
|
|||||||
}
|
}
|
||||||
|
|
||||||
const manager = new ViewExtensionManager([
|
const manager = new ViewExtensionManager([
|
||||||
MigratingViewExtension,
|
...getInternalViewExtensions(),
|
||||||
|
|
||||||
// Block
|
|
||||||
AttachmentViewExtension,
|
|
||||||
BookmarkViewExtension,
|
|
||||||
CalloutViewExtension,
|
|
||||||
CodeBlockViewExtension,
|
|
||||||
DataViewViewExtension,
|
|
||||||
DatabaseViewExtension,
|
|
||||||
DividerViewExtension,
|
|
||||||
EdgelessTextViewExtension,
|
|
||||||
EmbedViewExtension,
|
|
||||||
FrameViewExtension,
|
|
||||||
ImageViewExtension,
|
|
||||||
LatexViewExtension,
|
|
||||||
ListViewExtension,
|
|
||||||
NoteViewExtension,
|
|
||||||
ParagraphViewExtension,
|
|
||||||
SurfaceRefViewExtension,
|
|
||||||
TableViewExtension,
|
|
||||||
// Inline
|
|
||||||
FootnoteViewExtension,
|
|
||||||
LinkViewExtension,
|
|
||||||
|
|
||||||
MigratingAffineViewExtension,
|
MigratingAffineViewExtension,
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -652,6 +652,7 @@ export const PackageList = [
|
|||||||
name: '@blocksuite/affine-inline-latex',
|
name: '@blocksuite/affine-inline-latex',
|
||||||
workspaceDependencies: [
|
workspaceDependencies: [
|
||||||
'blocksuite/affine/components',
|
'blocksuite/affine/components',
|
||||||
|
'blocksuite/affine/ext-loader',
|
||||||
'blocksuite/affine/inlines/reference',
|
'blocksuite/affine/inlines/reference',
|
||||||
'blocksuite/affine/model',
|
'blocksuite/affine/model',
|
||||||
'blocksuite/affine/rich-text',
|
'blocksuite/affine/rich-text',
|
||||||
@@ -680,6 +681,7 @@ export const PackageList = [
|
|||||||
name: '@blocksuite/affine-inline-mention',
|
name: '@blocksuite/affine-inline-mention',
|
||||||
workspaceDependencies: [
|
workspaceDependencies: [
|
||||||
'blocksuite/affine/components',
|
'blocksuite/affine/components',
|
||||||
|
'blocksuite/affine/ext-loader',
|
||||||
'blocksuite/affine/model',
|
'blocksuite/affine/model',
|
||||||
'blocksuite/affine/shared',
|
'blocksuite/affine/shared',
|
||||||
'blocksuite/framework/global',
|
'blocksuite/framework/global',
|
||||||
@@ -710,6 +712,7 @@ export const PackageList = [
|
|||||||
name: '@blocksuite/affine-inline-reference',
|
name: '@blocksuite/affine-inline-reference',
|
||||||
workspaceDependencies: [
|
workspaceDependencies: [
|
||||||
'blocksuite/affine/components',
|
'blocksuite/affine/components',
|
||||||
|
'blocksuite/affine/ext-loader',
|
||||||
'blocksuite/affine/model',
|
'blocksuite/affine/model',
|
||||||
'blocksuite/affine/shared',
|
'blocksuite/affine/shared',
|
||||||
'blocksuite/framework/global',
|
'blocksuite/framework/global',
|
||||||
|
|||||||
@@ -3355,6 +3355,7 @@ __metadata:
|
|||||||
resolution: "@blocksuite/affine-inline-latex@workspace:blocksuite/affine/inlines/latex"
|
resolution: "@blocksuite/affine-inline-latex@workspace:blocksuite/affine/inlines/latex"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@blocksuite/affine-components": "workspace:*"
|
"@blocksuite/affine-components": "workspace:*"
|
||||||
|
"@blocksuite/affine-ext-loader": "workspace:*"
|
||||||
"@blocksuite/affine-inline-reference": "workspace:*"
|
"@blocksuite/affine-inline-reference": "workspace:*"
|
||||||
"@blocksuite/affine-model": "workspace:*"
|
"@blocksuite/affine-model": "workspace:*"
|
||||||
"@blocksuite/affine-rich-text": "workspace:*"
|
"@blocksuite/affine-rich-text": "workspace:*"
|
||||||
@@ -3418,6 +3419,7 @@ __metadata:
|
|||||||
resolution: "@blocksuite/affine-inline-mention@workspace:blocksuite/affine/inlines/mention"
|
resolution: "@blocksuite/affine-inline-mention@workspace:blocksuite/affine/inlines/mention"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@blocksuite/affine-components": "workspace:*"
|
"@blocksuite/affine-components": "workspace:*"
|
||||||
|
"@blocksuite/affine-ext-loader": "workspace:*"
|
||||||
"@blocksuite/affine-model": "workspace:*"
|
"@blocksuite/affine-model": "workspace:*"
|
||||||
"@blocksuite/affine-shared": "workspace:*"
|
"@blocksuite/affine-shared": "workspace:*"
|
||||||
"@blocksuite/global": "workspace:*"
|
"@blocksuite/global": "workspace:*"
|
||||||
@@ -3484,6 +3486,7 @@ __metadata:
|
|||||||
resolution: "@blocksuite/affine-inline-reference@workspace:blocksuite/affine/inlines/reference"
|
resolution: "@blocksuite/affine-inline-reference@workspace:blocksuite/affine/inlines/reference"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@blocksuite/affine-components": "workspace:*"
|
"@blocksuite/affine-components": "workspace:*"
|
||||||
|
"@blocksuite/affine-ext-loader": "workspace:*"
|
||||||
"@blocksuite/affine-model": "workspace:*"
|
"@blocksuite/affine-model": "workspace:*"
|
||||||
"@blocksuite/affine-shared": "workspace:*"
|
"@blocksuite/affine-shared": "workspace:*"
|
||||||
"@blocksuite/global": "workspace:*"
|
"@blocksuite/global": "workspace:*"
|
||||||
|
|||||||
Reference in New Issue
Block a user