mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-08 20:57:08 +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,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
|
||||
);
|
||||
Reference in New Issue
Block a user