Наименование | Описание | Тип | По умолчанию | Примечание |
---|---|---|---|---|
id | Элемент ID | String | undefined |
Если не пусто, то редактор, область текста и область предварительного просмотра имеют идентификаторы {id} , {id}_md , {id}_html соответственно |
value | Содержание | String | ' ' |
|
name | Имя textarea | String | 'textarea' | |
renderHTML | Рендеринг Markdown в HTML или ReactElement | `(text: string) => string | ReactElement | Promise |
placeholder | Текст по умолчанию | String | undefined | |
readOnly | Только для чтения | Boolean | false | |
plugins | Список плагинов | string[] | undefined | |
shortcuts | Включить ярлыки Markdown | boolean | false | |
view | Конфигурация того, какие проекты отображаются по умолчанию, включая: menu (панель меню), md (редактор), html (область предварительного просмотра) | Object | { menu: true, md: true, html: true } |
|
canView | Конфигурация того, что можно отображать, включая: меню (панель меню), редактор (md), область предварительного просмотра (html), полноэкранный режим (fullScreen), скрыть кнопку меню (hideMenu) | Object | { menu: true, md: true, html: true, fullScreen: true, hideMenu: true } |
|
htmlClass | className области предварительного просмотра. Если требуется стиль по умолчанию, сохраните custom-html-style . Например, your-style custom-html-style
|
String | 'custom-html-style' |
|
markdownClass | className редактора | String | '' |
|
imageUrl | Изображение по умолчанию при отсутствии функции загрузки | String | '' |
|
linkUrl | URL-адрес ссылки по умолчанию | String | '' |
|
loggerMaxSize | Максимальный размер истории (количество записей) | number | 100 | |
loggerInterval | Интервал запуска истории (мс) | number | 600 | |
table | Максимальное количество строк и столбцов таблицы через панель меню | Object | {maxRow: 4, maxCol: 6} |
|
syncScrollMode | Синхронная прокрутка области предварительного просмотра и редактора | Array | ['rightFollowLeft', 'leftFollowRight'] |
|
imageAccept | Типы изображений, которые принимаются, например, .jpg,.png
|
String | '' |
|
onChange | Обратный вызов при изменении содержимого редактора | Function | ({text, html}, event) => {} |
|
onChangeTrigger | Настройка триггера обратного вызова изменения, варианты: both, beforeRender (перед рендерингом HTML), afterRender (после рендеринга HTML) | Enum | 'both |
|
onImageUpload | Вызывается при загрузке изображения, должен возвращать Promise, который завершается с возвратом адреса изображения | (file: File) => Promise<string>; |
undefined | |
onCustomImageUpload | Событие клика по кнопке пользовательской загрузки изображения, должно возвращать Promise, которое завершается с возвращением адреса изображения. Если эта функция определена, onImageUpload не действует | () => Promise<string> |
undefined |
renderHTML может возвращать HTML-текст или ReactElement, например, markdown-it возвращает HTML-текст, а react-markdown возвращает ReactElement. Обратите внимание: свойства, полученные обратным вызовом onChange, относятся к текущему состоянию. Если renderHTML является асинхронным, текст и html могут не совпадать полностью.
import React from 'react';
import MdEditor from 'react-markdown-editor-lite';
// Импорт стиля редактора
import 'react-markdown-editor-lite/lib/index.css';
// Два разных парсера
import MarkdownIt from 'markdown-it';
import * as ReactMarkdown from 'react-markdown';
const mdParser = new MarkdownIt(/* Параметры Markdown-it */);
function renderHTML(text: string) {
// Использование markdown-it
return mdParser.render(text);
// Использование react-markdown
return React.createElement(ReactMarkdown, {
source: text,
});
}
export default (props) => {
return (<MdEditor renderHTML={renderHTML} />)
}
Обратный вызов загрузки изображения
// Эта функция может преобразовать File в строку datauri, используется в качестве примера
function onImageUpload(file) {
return new Promise(resolve => {
const reader = new FileReader();
reader.onload = data => {
resolve(data.target.result);
};
reader.readAsDataURL(file);
});
}
export default (props) => {
return (<MdEditor onImageUpload={onImageUpload} />)
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )