Upachikaji
Kuunganisha kihariri au kidhibiti cha Clepit katika programu yoyote ni rahisi: chombo cha DOM ndicho chanzo pekee cha udhibiti.
Kupachika kihariri
Weka id kwenye kipande cha chombo, ita `Editor.create({ containerId, ... })`, hifadhi `EditorAPI` iliyorudishwa, na ita `Editor.destroy(containerId)` wakati wa kusafisha.
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');Kuonyesha matokeo ya kusoma tu
Ita `Renderer.render({ containerId, data })`. Mfano hapa chini unaonyesha muundo halisi wa React kutoka kwa kipande cha `DocsRenderer`: `useId` hutengeneza id ya chombo ya kipekee na `useEffect` husababisha uonyeshaji.
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} />;
};Kila API inafanya kazi wapi
Editor na Renderer hupachika DOM hai, hivyo hufanya kazi kwenye kivinjari pekee: tumia effects au maelekezo ya use client kwao. Matokeo ya seva hayavihitaji: renderBlocks huchora HTML iliyokamilika bila DOM kabisa, imeelezwa hapa chini.
Uonyeshaji wa seva
renderBlocks huchora hati ile ile hadi mfuatano wa HTML uliokamilika bila DOM, hivyo seva inaweza kutuma alama halisi: watambazaji huzisoma na hakuna kinachochorwa upya wakati wa kupachika. Toa pageStylesheet() kando yake, na uite activateBlocks baada ya kupachika.
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);Haitegemei mfumo wowote
Pakiti kuu ya @clepit/core ni TypeScript safi, hakuna utegemezi wa React. Unatumia React, Vue, Svelte, Angular, au vanilla TS/JS, zote zinatumia API ile ile.