MarkdownEditor — эффективный инструмент для работы с Markdown, сочетающий режимы WYSIWYG и Markup. Он позволяет создавать и редактировать контент в удобном визуальном режиме с полным контролем над разметкой.
- Поддержка базового синтаксиса Markdown и YFM.
- Расширяемость за счет использования движков ProseMirror и CodeMirror.
- Возможность работы в режимах WYSIWYG и Markup для максимальной гибкости.
npm install @gravity-ui/markdown-editorДля начала работы с пакетом в проекте необходимо предварительно установить следующие зависимости: @diplodoc/transform, react, react-dom и др. Подробную информацию можно найти в разделе peerDependencies файла package.json.
MarkdownEditor поставляется в виде React-хука для создания экземпляра редактора и компонента для рендеринга представления.
Для настройки стиля и темы см. документацию UIKit.
import React from 'react';
import {useMarkdownEditor, MarkdownEditorView} from '@gravity-ui/markdown-editor';
function Editor({onSubmit}) {
const editor = useMarkdownEditor({allowHTML: false});
React.useEffect(() => {
function submitHandler() {
// Serialize current content to markdown markup
const value = editor.getValue();
onSubmit(value);
}
editor.on('submit', submitHandler);
return () => {
editor.off('submit', submitHandler);
};
}, [onSubmit]);
return <MarkdownEditorView stickyToolbar autofocus editor={editor} />;
}Полезные ссылки:
- Как подключить редактор в Create React App
- Как добавить предварительный просмотр для режима разметки
- Как добавить расширение HTML
- Как добавить расширение Latex
- Как добавить расширение Mermaid
- Как создать собственное расширение
- Как добавить расширение GPT
- Как добавить расширение привязки текста в Markdown
- Установите оркжуение Nodejs, нужная версия указано в файле
.nvmrc. Мы рекомендуем использовать NVM или похожий инструмент. - Установите pnpm, нужная версия указана в файле
package.jsonв поле "packageManager". - Установите зависимости:
pnpm i - Запустите дев-сервер Storybook:
pnpm start
Для настройки интернационализации используйте configure:
import {configure} from '@gravity-ui/markdown-editor';
configure({
lang: 'ru',
});Обязательно сделайте вызов configure() из UIKit и других UI-библиотек.
