मुख्य सामग्री पर जाएँ

एम्बेडिंग

Clepit एडिटर या रेंडरर को किसी भी एप्लिकेशन में एकीकृत करना सीधा है: एक DOM कंटेनर ही पूरे नियंत्रण का केंद्र है।

एडिटर माउंट करना

Container एलिमेंट को एक id दें, `Editor.create({ containerId, ... })` कॉल करें, लौटाई गई `EditorAPI` रखें और टियरडाउन पर `Editor.destroy(containerId)` कॉल करें।

TypeScript
import { Editor } from '@clepit/core';
import type { EditorAPI } from '@clepit/core';

// 1. Give your container a stable id
// <div id="my-editor"></div>

// 2. Create the editor and hold the returned API
const editor: EditorAPI = Editor.create({
  containerId: 'my-editor',
  minHeight: 400,
  placeholder: 'Start writing...',
  theme: 'auto',
  onChange: data => console.log(data),
  onReady: () => console.log('Editor ready'),
});

// 3. Extract content any time
const data = editor.data.extract();

// 4. Destroy on teardown (e.g. component unmount)
Editor.destroy('my-editor');

आउटपुट को रीड-ओनली रेंडर करना

`Renderer.render({ containerId, data })` कॉल करें। नीचे दिया गया उदाहरण `DocsRenderer` कंपोनेंट से वास्तविक React पैटर्न दर्शाता है: `useId` एक अनूठी container id बनाता है और `useEffect` रेंडर को ट्रिगर करता है।

TSX
import { Renderer } from '@clepit/core';
import type { EditorData } from '@clepit/core';
import { useEffect, useId } from 'react';

type Props = { content: EditorData };

const ReadOnlyView = ({ content }: Props) => {
  // useId produces a stable, unique id per component instance
  const containerId = useId().replace(/[^a-z0-9]/gi, '');

  useEffect(() => {
    Renderer.render({
      containerId,
      data: content,
      margins: { bottom: 0, top: 0 },
    });
  }, [containerId, content]);

  return <div id={containerId} />;
};

केवल क्लाइंट रेंडरिंग / SSR

Editor और Renderer दोनों DOM पर काम करते हैं, इसलिए केवल browser में चलते हैं: effects (`useEffect`) या `'use client'` directive का उपयोग करें। ये SSR के दौरान नहीं चलते।

`Editor.create` या `Renderer.render` को `useEffect` के बाहर या server component के अंदर कॉल न करें; इससे "document is not defined" error आएगी।

फ्रेमवर्क-अज्ञेयवादी

मुख्य @clepit/core पैकेज सरल TypeScript है, कोई React डिपेंडेंसी नहीं। चाहे आप React, Vue, Svelte, Angular या vanilla TS/JS उपयोग करें, सभी एक ही API का उपयोग करते हैं।