pnpm add @osmn-byhn/mdarea
or
npm install @osmn-byhn/mdarea
import React, { useState } from 'react';
import { MarkdownEditor } from '@osmn-byhn/mdarea';
// IMPORTANT: Do not forget to import the styles!
import '@osmn-byhn/mdarea/styles.css';
export default function MyEditor() {
const [content, setContent] = useState('# Hello World');
return (
setContent(newContent)}
placeholder="Start typing your masterpiece..."
/>
);
}
| Package | Description | Use Case |
|---|---|---|
@osmn-byhn/mdarea
|
The main React component. | "I want a finished editor UI." |
@osmn-byhn/editor-core
|
The logic engine (State, Selection). | "I want to build my own UI from scratch." |
@osmn-byhn/editor-parsers
|
Converters (Markdown โ HTML). | "I need to save as HTML or load HTML." |
MarkdownEditor is highly
customizable. You don't have to stick with the default look.
/ In your global css file /
.md-toolbar-container {
background-color: #f0f0f0; / Change toolbar background /
}
.md-tab-btn.active {
color: #0070f3; / Change active tab color /
border-bottom-color: #0070f3;
}
@osmn-byhn/editor-core)
import { createEditor } from '@osmn-byhn/editor-core';
// 1. Create the engine
const editor = createEditor('Initial text');
// 2. Manipulate state programmatically
editor.insertText('Hello ');
editor.toggleWrap(''); // Toggles bold
editor.insertText('World');
editor.toggleWrap('');
// 3. Get the result
console.log(editor.getState().value);
// Output: "Hello World"
import { markdownToHtml, htmlToMarkdown } from '@osmn-byhn/editor-parsers';
// SAVE: Markdown -> HTML
const htmlOutput = await markdownToHtml('# Title');
// Result: Title
// LOAD: HTML -> Markdown
const markdownInput = htmlToMarkdown('Bold text');
// Result: Bold text
git clone https://github.com/osmn-byhn/mdarea.git
cd mdarea
pnpm install
pnpm run storybook
http://localhost:6006 where you
can see all components in action.
Author: Osman Beyhan
โค๏ธ Make via MDtoWeb