Skip to content

Commit

Permalink
refactor(editor): reorg blocks
Browse files Browse the repository at this point in the history
  • Loading branch information
Saul-Mirone committed Feb 21, 2025
1 parent 07cbf5a commit 8a389ee
Show file tree
Hide file tree
Showing 49 changed files with 224 additions and 320 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ async function renderNoteContent(
match: ids.map(id => ({ id, viewType: 'display' })),
};
const previewDoc = doc.doc.getStore({ query });
const previewSpec = SpecProvider.getInstance().getSpec('preview:page');
const previewSpec = SpecProvider._.getSpec('preview:page');
const previewStd = new BlockStdScope({
store: previewDoc,
extensions: previewSpec.value,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ export class EmbedSyncedDocBlockComponent extends EmbedBlockComponent<EmbedSynce

protected _buildPreviewSpec = (name: 'preview:page' | 'preview:edgeless') => {
const nextDepth = this.depth + 1;
const previewSpecBuilder = SpecProvider.getInstance().getSpec(name);
const previewSpecBuilder = SpecProvider._.getSpec(name);
const currentDisposables = this.disposables;
const editorSetting =
this.std.getOptional(EditorSettingProvider) ??
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,7 @@ export class FramePreview extends WithDisposable(ShadowlessElement) {

private _previewDoc: Store | null = null;

private readonly _previewSpec =
SpecProvider.getInstance().getSpec('preview:edgeless');
private readonly _previewSpec = SpecProvider._.getSpec('preview:edgeless');

private readonly _updateFrameViewportWH = () => {
const [, , w, h] = deserializeXYWH(this.frame.xywh);
Expand Down
2 changes: 1 addition & 1 deletion blocksuite/affine/block-root/src/transformers/html.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ type ImportHTMLZipOptions = {

function getProvider() {
const container = new Container();
const exts = SpecProvider.getInstance().getSpec('store').value;
const exts = SpecProvider._.getSpec('store').value;
exts.forEach(ext => {
ext.setup(container);
});
Expand Down
2 changes: 1 addition & 1 deletion blocksuite/affine/block-root/src/transformers/markdown.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { createAssetsArchive, download, Unzip } from './utils.js';

function getProvider() {
const container = new Container();
const exts = SpecProvider.getInstance().getSpec('store').value;
const exts = SpecProvider._.getSpec('store').value;
exts.forEach(ext => {
ext.setup(container);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ type ImportNotionZipOptions = {

function getProvider() {
const container = new Container();
const exts = SpecProvider.getInstance().getSpec('store').value;
const exts = SpecProvider._.getSpec('store').value;
exts.forEach(ext => {
ext.setup(container);
});
Expand Down
2 changes: 1 addition & 1 deletion blocksuite/affine/block-surface-ref/src/portal/note.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ export class SurfaceRefNotePortal extends WithDisposable(ShadowlessElement) {
query: this.query,
readonly: true,
});
const previewSpec = SpecProvider.getInstance().getSpec('preview:page');
const previewSpec = SpecProvider._.getSpec('preview:page');
return new BlockStdScope({
store: doc,
extensions: previewSpec.value.slice(),
Expand Down
3 changes: 1 addition & 2 deletions blocksuite/affine/block-surface-ref/src/surface-ref-block.ts
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,7 @@ export class SurfaceRefBlockComponent extends BlockComponent<SurfaceRefBlockMode

private _previewDoc: Store | null = null;

private readonly _previewSpec =
SpecProvider.getInstance().getSpec('preview:edgeless');
private readonly _previewSpec = SpecProvider._.getSpec('preview:edgeless');

private _referencedModel: GfxModel | null = null;

Expand Down
2 changes: 1 addition & 1 deletion blocksuite/affine/shared/src/utils/spec/spec-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export class SpecProvider {

private constructor() {}

static getInstance() {
static get _() {
if (!SpecProvider.instance) {
SpecProvider.instance = new SpecProvider();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ export class PreviewHelper {
const editorSetting = std.get(EditorSettingProvider).peek();
const query = this._calculateQuery(blockIds as string[], mode);
const store = widget.doc.doc.getStore({ query });
const previewSpec = SpecProvider.getInstance().getSpec(
const previewSpec = SpecProvider._.getSpec(
isEdgeless ? 'preview:edgeless' : 'preview:page'
);
const settingSignal = signal({ ...editorSetting });
Expand Down
29 changes: 2 additions & 27 deletions blocksuite/blocks/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,28 +47,7 @@
"@blocksuite/global": "workspace:*",
"@blocksuite/icons": "^2.2.1",
"@blocksuite/inline": "workspace:*",
"@blocksuite/store": "workspace:*",
"@floating-ui/dom": "^1.6.10",
"@lit/context": "^1.1.2",
"@preact/signals-core": "^1.8.0",
"@toeverything/theme": "^1.1.11",
"@vanilla-extract/css": "^1.17.0",
"date-fns": "^4.0.0",
"dompurify": "^3.2.4",
"fflate": "^0.8.2",
"file-type": "^20.0.0",
"fractional-indexing": "^3.2.0",
"html2canvas": "^1.4.1",
"katex": "^0.16.11",
"lit": "^3.2.0",
"lodash-es": "^4.17.21",
"lz-string": "^1.5.0",
"minimatch": "^10.0.1",
"nanoid": "^5.0.7",
"shiki": "^2.0.0",
"simple-xml-to-json": "^1.2.2",
"yjs": "^13.6.21",
"zod": "^3.23.8"
"@blocksuite/store": "workspace:*"
},
"exports": {
".": "./src/index.ts",
Expand All @@ -79,13 +58,9 @@
"src",
"dist",
"!src/__tests__",
"!dist/__tests__",
"schemas.d.ts",
"schemas.js"
"!dist/__tests__"
],
"devDependencies": {
"@types/katex": "^0.16.7",
"@types/lodash-es": "^4.17.12",
"@vanilla-extract/vite-plugin": "^5.0.0",
"vitest": "3.0.6"
}
Expand Down
2 changes: 0 additions & 2 deletions blocksuite/blocks/schemas.d.ts

This file was deleted.

3 changes: 0 additions & 3 deletions blocksuite/blocks/schemas.js

This file was deleted.

17 changes: 2 additions & 15 deletions blocksuite/blocks/src/__tests__/adapters/html.unit.spec.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
import {
HtmlInlineToDeltaAdapterExtensions,
InlineDeltaToHtmlAdapterExtensions,
} from '@blocksuite/affine-components/rich-text';
import { DefaultTheme, NoteDisplayMode } from '@blocksuite/affine-model';
import {
embedSyncedDocMiddleware,
HtmlAdapter,
} from '@blocksuite/affine-shared/adapters';
import { Container } from '@blocksuite/global/di';
import type {
BlockSnapshot,
DocSnapshot,
Expand All @@ -16,19 +11,11 @@ import type {
import { AssetsManager, MemoryBlobCRUD } from '@blocksuite/store';
import { describe, expect, test } from 'vitest';

import { defaultBlockHtmlAdapterMatchers } from '../../_common/adapters/html/block-matcher.js';
import { createJob } from '../utils/create-job.js';
import { getProvider } from '../utils/get-provider.js';
import { nanoidReplacement } from '../utils/nanoid-replacement.js';

const container = new Container();
[
...HtmlInlineToDeltaAdapterExtensions,
...defaultBlockHtmlAdapterMatchers,
...InlineDeltaToHtmlAdapterExtensions,
].forEach(ext => {
ext.setup(container);
});
const provider = container.provider();
const provider = getProvider();

describe('snapshot to html', () => {
const template = (html: string, title?: string) => {
Expand Down
18 changes: 2 additions & 16 deletions blocksuite/blocks/src/__tests__/adapters/markdown.unit.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
import {
InlineDeltaToMarkdownAdapterExtensions,
MarkdownInlineToDeltaAdapterExtensions,
} from '@blocksuite/affine-components/rich-text';
import {
DefaultTheme,
NoteDisplayMode,
Expand All @@ -11,7 +7,6 @@ import {
embedSyncedDocMiddleware,
MarkdownAdapter,
} from '@blocksuite/affine-shared/adapters';
import { Container } from '@blocksuite/global/di';
import type {
BlockSnapshot,
DocSnapshot,
Expand All @@ -21,20 +16,11 @@ import type {
import { AssetsManager, MemoryBlobCRUD } from '@blocksuite/store';
import { describe, expect, test } from 'vitest';

import { defaultBlockMarkdownAdapterMatchers } from '../../_common/adapters/markdown/block-matcher.js';
import { createJob } from '../utils/create-job.js';
import { getProvider } from '../utils/get-provider.js';
import { nanoidReplacement } from '../utils/nanoid-replacement.js';

const container = new Container();
[
...MarkdownInlineToDeltaAdapterExtensions,
...defaultBlockMarkdownAdapterMatchers,
...InlineDeltaToMarkdownAdapterExtensions,
].forEach(ext => {
ext.setup(container);
});

const provider = container.provider();
const provider = getProvider();

describe('snapshot to markdown', () => {
test('code', async () => {
Expand Down
14 changes: 2 additions & 12 deletions blocksuite/blocks/src/__tests__/adapters/notion-html.unit.spec.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,17 @@
import { NotionHtmlInlineToDeltaAdapterExtensions } from '@blocksuite/affine-components/rich-text';
import { DefaultTheme, NoteDisplayMode } from '@blocksuite/affine-model';
import { NotionHtmlAdapter } from '@blocksuite/affine-shared/adapters';
import { Container } from '@blocksuite/global/di';
import {
AssetsManager,
type BlockSnapshot,
MemoryBlobCRUD,
} from '@blocksuite/store';
import { describe, expect, test } from 'vitest';

import { defaultBlockNotionHtmlAdapterMatchers } from '../../_common/adapters/notion-html/block-matcher.js';
import { createJob } from '../utils/create-job.js';
import { getProvider } from '../utils/get-provider.js';
import { nanoidReplacement } from '../utils/nanoid-replacement.js';

const container = new Container();
[
...NotionHtmlInlineToDeltaAdapterExtensions,
...defaultBlockNotionHtmlAdapterMatchers,
].forEach(ext => {
ext.setup(container);
});

const provider = container.provider();
const provider = getProvider();

describe('notion html to snapshot', () => {
test('code', async () => {
Expand Down
13 changes: 2 additions & 11 deletions blocksuite/blocks/src/__tests__/adapters/plain-text.unit.spec.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,19 @@
import { InlineDeltaToPlainTextAdapterExtensions } from '@blocksuite/affine-components/rich-text';
import { DefaultTheme, NoteDisplayMode } from '@blocksuite/affine-model';
import {
embedSyncedDocMiddleware,
PlainTextAdapter,
} from '@blocksuite/affine-shared/adapters';
import { Container } from '@blocksuite/global/di';
import type {
BlockSnapshot,
DocSnapshot,
TransformerMiddleware,
} from '@blocksuite/store';
import { describe, expect, test } from 'vitest';

import { defaultBlockPlainTextAdapterMatchers } from '../../_common/adapters/plain-text/block-matcher.js';
import { createJob } from '../utils/create-job.js';
import { getProvider } from '../utils/get-provider.js';

const container = new Container();
[
...defaultBlockPlainTextAdapterMatchers,
...InlineDeltaToPlainTextAdapterExtensions,
].forEach(ext => {
ext.setup(container);
});
const provider = container.provider();
const provider = getProvider();

describe('snapshot to plain text', () => {
test('paragraph', async () => {
Expand Down
15 changes: 15 additions & 0 deletions blocksuite/blocks/src/__tests__/utils/get-provider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { SpecProvider } from '@blocksuite/affine-shared/utils';
import { Container } from '@blocksuite/global/di';

import { registerSpecs } from '../../extensions/register';

registerSpecs();

export function getProvider() {
const container = new Container();
const exts = SpecProvider._.getSpec('store').value;
exts.forEach(ext => {
ext.setup(container);
});
return container.provider();
}
22 changes: 0 additions & 22 deletions blocksuite/blocks/src/_common/adapters/extension.ts

This file was deleted.

6 changes: 0 additions & 6 deletions blocksuite/blocks/src/_specs/index.ts

This file was deleted.

31 changes: 0 additions & 31 deletions blocksuite/blocks/src/_specs/preset/adapters.ts

This file was deleted.

9 changes: 0 additions & 9 deletions blocksuite/blocks/src/_specs/preset/edgeless-specs.ts

This file was deleted.

Loading

0 comments on commit 8a389ee

Please sign in to comment.