ማካተት
Clepit አርታኢ ወይም ሬንደረርን ወደ ማናቸውም አፕሊኬሽን ማቀናጀት ቀላል ነው፦ የ DOM መያዣ ሙሉ ቁጥጥሩ ነው።
አርታኢውን መሰካት
ለ container አንድ id ያስቀምጡ፣ `Editor.create({ containerId, ... })` ብለው ይደውሉ፣ የተመለሰውን `EditorAPI` ያቆዩ፣ እና ሲያጸዱ `Editor.destroy(containerId)` ይጠቀሙ።
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` ክፍል ውስጥ ሬዱ አክቲቭ ሬን ፓተርን ያሳያል፦ `useId` ልዩ container id ይፈጥራል፣ `useEffect` ሬንደርን ያስጀምራል።
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} />;
};እያንዳንዱ API የት ይሰራል
Editor እና Renderer ቀጥታ DOM ይጭናሉ፣ ስለዚህ በአሳሹ ውስጥ ብቻ ይሰራሉ፦ ለእነሱ effects ወይም የ use client መመሪያ ይጠቀሙ። የአገልጋይ ውጤት ግን አያስፈልጋቸውም፦ renderBlocks ያለ ምንም DOM ዝግጁ HTML ይሳላል፣ ከታች ተሸፍኗል።
የአገልጋይ ማሳያ
renderBlocks ያንኑ ሰነድ ያለ DOM ወደ ዝግጁ የ HTML ሕብረቁምፊ ይሳላል፣ ስለዚህ አገልጋዩ እውነተኛ ምልክት መላክ ይችላል፦ ሰርሳሪዎች ያነቡታል እና በመጫን ጊዜ ምንም አይደገምም። pageStylesheet() አብረው ያቅርቡ፣ እና ከመጫን በኋላ activateBlocks ይጥሩ።
import { activateBlocks, pageStylesheet, renderBlocks } from '@clepit/core';
// On the server: finished HTML, no DOM needed
const html = renderBlocks(doc.blocks);
const css = pageStylesheet();
// In the browser, after mount: wire the interactive blocks
const dispose = activateBlocks(container, doc.blocks);ፍሬምዎርክ-አዘቢ
ዋናው @clepit/core ጥቅል ቀጥታ TypeScript ነው፣ ምንም የ React ጥገኛ የለም። React፣ Vue፣ Svelte፣ Angular ወይም ቫኒላ TS/JS ትጠቀሙ፣ ሁሉም ተመሳሳዩ API ይጠቀማሉ።