본문으로 건너뛰기

Preset

Edybara 의 모든 서식과 플러그인을 통합 제공하는 단일 패키지입니다.

설치

npm install @edybara/preset

스타일

src/index.scss
@import "@edybara/preset/styles/preset.scss";

서식

edybaraPresetSchema

Edybara 의 모든 서식(Node, Mark)를 사용한 Schema 를 제공합니다.

플러그인

edybaraPresetPlugins

Edybara 의 모든 서식의 플러그인을 제공합니다.

사용 예시

src/index.ts
import { EditorState, Plugin } from 'prosemirror-state';
import { Schema } from 'prosemirror-model';
import { EditorView } from 'prosemirror-view';
import { Node } from 'prosemirror-model';
import { edybaraPresetSchema, edybaraPresetPlugins } from '@edybara/preset';
import { EdybaraMentionView } from '@edybara/mention';
import { faker } from '@faker-js/faker';

const persons = Array.from({ length: 200 }).map(() => ({
id: faker.string.uuid(),
name: faker.person.fullName(),
icon: faker.image.avatar(),
}));

const schema = edybaraPresetSchema();
const plugins = edybaraPresetPlugins({
schema,
mention: {
markType: schema.marks['mention'],
commandView: (view, plugin) =>
new EdybaraMentionView(view, plugin, (keyword) => {
return persons.filter((person) =>
person.name.toLowerCase().includes(keyword.toLowerCase()),
);
}),
},
});

const view = new EditorView(document.querySelector('#editor'), {
state: EditorState.create({
schema: schema,
plugins: plugins,
}),
});