mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-22 04:21:40 +08:00
refactor(editor): unify directories naming (#11516)
**Directory Structure Changes** - Renamed multiple block-related directories by removing the "block-" prefix: - `block-attachment` → `attachment` - `block-bookmark` → `bookmark` - `block-callout` → `callout` - `block-code` → `code` - `block-data-view` → `data-view` - `block-database` → `database` - `block-divider` → `divider` - `block-edgeless-text` → `edgeless-text` - `block-embed` → `embed`
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
import type { ExtensionType } from '@blocksuite/store';
|
||||
|
||||
import { EmbedYoutubeBlockHtmlAdapterExtension } from './html.js';
|
||||
import { EmbedYoutubeMarkdownAdapterExtension } from './markdown.js';
|
||||
import { EmbedYoutubeBlockNotionHtmlAdapterExtension } from './notion-html.js';
|
||||
import { EmbedYoutubeBlockPlainTextAdapterExtension } from './plain-text.js';
|
||||
|
||||
export const EmbedYoutubeBlockAdapterExtensions: ExtensionType[] = [
|
||||
EmbedYoutubeBlockHtmlAdapterExtension,
|
||||
EmbedYoutubeMarkdownAdapterExtension,
|
||||
EmbedYoutubeBlockPlainTextAdapterExtension,
|
||||
EmbedYoutubeBlockNotionHtmlAdapterExtension,
|
||||
];
|
||||
@@ -0,0 +1,51 @@
|
||||
import { EmbedYoutubeBlockSchema } from '@blocksuite/affine-model';
|
||||
import {
|
||||
BlockHtmlAdapterExtension,
|
||||
HastUtils,
|
||||
} from '@blocksuite/affine-shared/adapters';
|
||||
import { nanoid } from '@blocksuite/store';
|
||||
|
||||
import { createEmbedBlockHtmlAdapterMatcher } from '../../common/adapters/html.js';
|
||||
|
||||
export const embedYoutubeBlockHtmlAdapterMatcher =
|
||||
createEmbedBlockHtmlAdapterMatcher(EmbedYoutubeBlockSchema.model.flavour, {
|
||||
toMatch: o => HastUtils.isElement(o.node) && o.node.tagName === 'iframe',
|
||||
toBlockSnapshot: {
|
||||
enter: (o, context) => {
|
||||
if (!HastUtils.isElement(o.node)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const src = o.node.properties?.src;
|
||||
if (typeof src !== 'string') {
|
||||
return;
|
||||
}
|
||||
|
||||
const { walkerContext } = context;
|
||||
if (src.startsWith('https://www.youtube.com/embed/')) {
|
||||
const videoId = src.substring(
|
||||
'https://www.youtube.com/embed/'.length,
|
||||
src.indexOf('?') !== -1 ? src.indexOf('?') : undefined
|
||||
);
|
||||
walkerContext
|
||||
.openNode(
|
||||
{
|
||||
type: 'block',
|
||||
id: nanoid(),
|
||||
flavour: 'affine:embed-youtube',
|
||||
props: {
|
||||
url: `https://www.youtube.com/watch?v=${videoId}`,
|
||||
},
|
||||
children: [],
|
||||
},
|
||||
'children'
|
||||
)
|
||||
.closeNode();
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const EmbedYoutubeBlockHtmlAdapterExtension = BlockHtmlAdapterExtension(
|
||||
embedYoutubeBlockHtmlAdapterMatcher
|
||||
);
|
||||
@@ -0,0 +1,4 @@
|
||||
export * from './html.js';
|
||||
export * from './markdown.js';
|
||||
export * from './notion-html.js';
|
||||
export * from './plain-text.js';
|
||||
@@ -0,0 +1,10 @@
|
||||
import { EmbedYoutubeBlockSchema } from '@blocksuite/affine-model';
|
||||
import { BlockMarkdownAdapterExtension } from '@blocksuite/affine-shared/adapters';
|
||||
|
||||
import { createEmbedBlockMarkdownAdapterMatcher } from '../../common/adapters/markdown.js';
|
||||
|
||||
export const embedYoutubeBlockMarkdownAdapterMatcher =
|
||||
createEmbedBlockMarkdownAdapterMatcher(EmbedYoutubeBlockSchema.model.flavour);
|
||||
|
||||
export const EmbedYoutubeMarkdownAdapterExtension =
|
||||
BlockMarkdownAdapterExtension(embedYoutubeBlockMarkdownAdapterMatcher);
|
||||
@@ -0,0 +1,14 @@
|
||||
import { EmbedYoutubeBlockSchema } from '@blocksuite/affine-model';
|
||||
import { BlockNotionHtmlAdapterExtension } from '@blocksuite/affine-shared/adapters';
|
||||
|
||||
import { createEmbedBlockNotionHtmlAdapterMatcher } from '../../common/adapters/notion-html.js';
|
||||
import { youtubeUrlRegex } from '../embed-youtube-model.js';
|
||||
|
||||
export const embedYoutubeBlockNotionHtmlAdapterMatcher =
|
||||
createEmbedBlockNotionHtmlAdapterMatcher(
|
||||
EmbedYoutubeBlockSchema.model.flavour,
|
||||
youtubeUrlRegex
|
||||
);
|
||||
|
||||
export const EmbedYoutubeBlockNotionHtmlAdapterExtension =
|
||||
BlockNotionHtmlAdapterExtension(embedYoutubeBlockNotionHtmlAdapterMatcher);
|
||||
@@ -0,0 +1,12 @@
|
||||
import { EmbedYoutubeBlockSchema } from '@blocksuite/affine-model';
|
||||
import { BlockPlainTextAdapterExtension } from '@blocksuite/affine-shared/adapters';
|
||||
|
||||
import { createEmbedBlockPlainTextAdapterMatcher } from '../../common/adapters/plain-text.js';
|
||||
|
||||
export const embedYoutubeBlockPlainTextAdapterMatcher =
|
||||
createEmbedBlockPlainTextAdapterMatcher(
|
||||
EmbedYoutubeBlockSchema.model.flavour
|
||||
);
|
||||
|
||||
export const EmbedYoutubeBlockPlainTextAdapterExtension =
|
||||
BlockPlainTextAdapterExtension(embedYoutubeBlockPlainTextAdapterMatcher);
|
||||
Reference in New Issue
Block a user