mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-20 07:47:19 +08:00
32 lines
923 B
TypeScript
32 lines
923 B
TypeScript
import type { ExtensionType } from '@blocksuite/block-std';
|
|
import {
|
|
createIdentifier,
|
|
type ServiceIdentifier,
|
|
} from '@blocksuite/global/di';
|
|
|
|
import type { BlockAdapterMatcher } from '../types/adapter.js';
|
|
import type { MarkdownDeltaConverter } from './delta-converter.js';
|
|
import type { MarkdownAST } from './type.js';
|
|
|
|
export type BlockMarkdownAdapterMatcher = BlockAdapterMatcher<
|
|
MarkdownAST,
|
|
MarkdownDeltaConverter
|
|
>;
|
|
|
|
export const BlockMarkdownAdapterMatcherIdentifier =
|
|
createIdentifier<BlockMarkdownAdapterMatcher>('BlockMarkdownAdapterMatcher');
|
|
|
|
export function BlockMarkdownAdapterExtension(
|
|
matcher: BlockMarkdownAdapterMatcher
|
|
): ExtensionType & {
|
|
identifier: ServiceIdentifier<BlockMarkdownAdapterMatcher>;
|
|
} {
|
|
const identifier = BlockMarkdownAdapterMatcherIdentifier(matcher.flavour);
|
|
return {
|
|
setup: di => {
|
|
di.addImpl(identifier, () => matcher);
|
|
},
|
|
identifier,
|
|
};
|
|
}
|