React Markdown Editor Lite — это лёгкий (20 КБ в заархивированном виде) редактор Markdown на основе компонента React.
Онлайн-демонстрация: https://harrychen0506.github.io/react-markdown-editor-lite/.
npm install react-markdown-editor-lite --save
# или
yarn add react-markdown-editor-lite
Следуйте шагам:
Пример кода:
// import react, react-markdown-editor-lite, and a markdown parser you like
import React from 'react';
import * as ReactDOM from 'react-dom';
import MarkdownIt from 'markdown-it';
import MdEditor from 'react-markdown-editor-lite';
// import style manually
import 'react-markdown-editor-lite/lib/index.css';
// Register plugins if required
// MdEditor.use(YOUR_PLUGINS_HERE);
// Initialize a markdown parser
const mdParser = new MarkdownIt(/* Markdown-it options */);
function handleEditorChange({ html, text }) {
console.log('handleEditorChange', html, text);
}
export default props => {
return (
<MdEditor style={{ height: '500px' }} renderHTML={text => mdParser.render(text)} onChange={handleEditorChange} />
);
};
Если вы используете фреймворк для серверного рендеринга, такой как Next.js или Gatsby, пожалуйста, используйте клиентский рендеринг для этого редактора.
Например, Next.js имеет next/dynamic, а Gatsby — loadable-components.
Следующий пример для Next.js:
import dynamic from 'next/dynamic';
import 'react-markdown-editor-lite/lib/index.css';
const MdEditor = dynamic(() => import('react-markdown-editor-lite'), {
ssr: false,
});
export default function() {
return <MdEditor style={{ height: '500px' }} renderHTML={/* Render function */} />;
}
С плагинами:
import dynamic from 'next/dynamic';
import 'react-markdown-editor-lite/lib/index.css';
const MdEditor = dynamic(
() => {
return new Promise(resolve => {
Promise.all([
import('react-markdown-editor-lite'),
import('./my-plugin'),
/** Add more plugins, and use below */
]).then(res => {
res[0].default.use(res[1].default);
resolve(res[0].default);
});
});
},
{
ssr: false,
},
);
export default function() {
return <MdEditor style={{ height: '500px' }} renderHTML={/* Render function */} />;
}
Полный пример см. здесь.
Начиная с версии 1.1.0, вы можете добавить теги script и link в свой браузер и использовать глобальную переменную ReactMarkdownEditorLite.
Вы можете загрузить эти файлы напрямую. Из:
from [![cdnjs][cdnjs-image]][cdnjs-url] [![jsdelivr][jsdelivr-image]][jsdelivr-url] [![unpkg][unpkg-image]][unpkg-url]
Note: you should import react before ReactMarkdownEditorLite
.
For example, in webpack, you import ReactMarkdownEditorLite by script
tag in your page, and write webpack config like this:
externals: {
react: 'React',
'react-markdown-editor-lite': 'ReactMarkdownEditorLite'
}
Перевод:
Из:
from [![cdnjs][cdnjs-изображение]][cdnjs-ссылка] [![jsdelivr][jsdelivr-изображение]][jsdelivr-ссылка] [![unpkg][unpkg-изображение]][unpkg-ссылка]
Обратите внимание: перед ReactMarkdownEditorLite
необходимо импортировать React.
Например, в webpack вы импортируете ReactMarkdownEditorLite с помощью тега script
на своей странице и пишете конфигурацию webpack следующим образом:
externals: {
реакт: «React»,
«react-markdown-editor-lite»: «ReactMarkdownEditorLite»
}
— ShuangYa GitHub/sylingd. — HarryChen0506 GitHub/HarryChen0506.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )