उदाहरण
नीचे दिए उदाहरण वास्तविक एक्सपोर्ट और विकल्प नामों का उपयोग करते हैं। चलाने से पहले @powerduck/md-editor/dist/style.css को एक बार आयात करें। पृष्ठ में संदर्भित कंटेनर एलिमेंट बनाएँ और अपलोड के उदाहरणों के लिए अपना अपलोड एंडपॉइंट दें।
1. सामान्य विकल्पों वाला बुनियादी संपादक
सामान्य विकल्पों के साथ साधारण JavaScript में complex मोड का MarkdownEditor:
import { MarkdownEditor, type MarkdownEditorOptions } from '@powerduck/md-editor';
import '@powerduck/md-editor/dist/style.css';
const options: MarkdownEditorOptions = {
value: '# Hello\n\nStart writing here...',
mode: 'complex',
theme: 'light',
math: true,
mindmap: true,
codeHighlight: true,
tips: true,
preview: true,
autoPreview: true,
renderDebounce: false, // render synchronously for this demo
onChange: (value) => console.log('changed:', value.length, 'chars'),
onImageUpload: async (file) => {
const formData = new FormData();
formData.append('file', file);
const res = await fetch('/api/upload', { method: 'POST', body: formData });
if (!res.ok) throw new Error('Upload failed');
const data = await res.json();
return data.url as string;
},
toolbar: ['heading', 'bold', 'italic', 'link', 'image', 'code'],
};
const editor = new MarkdownEditor('#editor', options);
// Call editor.destroy() when removing this editor from the page.
document.querySelector('#save')?.addEventListener('click', () => {
console.log(editor.getValue());
});
2. नियंत्रित मान वाला React कंपोनेंट
import { useRef, useState } from 'react';
import { MarkdownEditorReact, type MarkdownEditorHandle } from '@powerduck/md-editor/react';
import '@powerduck/md-editor/dist/style.css';
function NoteEditor() {
const [value, setValue] = useState('# Draft\n\nWrite something...');
const handleRef = useRef<MarkdownEditorHandle>(null);
return (
<div>
<button onClick={() => handleRef.current?.getHtml()}>Render HTML</button>
<MarkdownEditorReact
ref={handleRef}
value={value}
onChange={setValue}
mode="complex"
theme="light"
/>
</div>
);
}
export default NoteEditor;
value और onChange इंस्टेंस को फिर से नहीं बनाते, इसलिए टाइप करते समय CodeMirror इंस्टेंस नष्ट नहीं होता।