ወደ ዋናው ይዘት ዝለል

መመሪያዎች

ማካተት

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` ክፍል ውስጥ ሬዱ አክቲቭ ሬን ፓተርን ያሳያል፦ `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} />;
};

እያንዳንዱ API የት ይሰራል

Editor እና Renderer ቀጥታ DOM ይጭናሉ፣ ስለዚህ በአሳሹ ውስጥ ብቻ ይሰራሉ፦ ለእነሱ effects ወይም የ use client መመሪያ ይጠቀሙ። የአገልጋይ ውጤት ግን አያስፈልጋቸውም፦ renderBlocks ያለ ምንም DOM ዝግጁ HTML ይሳላል፣ ከታች ተሸፍኗል።

Editor.create ወይም Renderer.render በአገልጋይ ክፍል ውስጥ አይጥሩ፤ እውነተኛ document ያስፈልጋቸዋል። በአገልጋይ ላይ ለመሳል በምትኩ renderBlocks ይጠቀሙ።

የአገልጋይ ማሳያ

renderBlocks ያንኑ ሰነድ ያለ DOM ወደ ዝግጁ የ HTML ሕብረቁምፊ ይሳላል፣ ስለዚህ አገልጋዩ እውነተኛ ምልክት መላክ ይችላል፦ ሰርሳሪዎች ያነቡታል እና በመጫን ጊዜ ምንም አይደገምም። pageStylesheet() አብረው ያቅርቡ፣ እና ከመጫን በኋላ activateBlocks ይጥሩ።

TypeScript
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);
React ይጠቀማሉ? @clepit/react ይህንኑ ቧንቧ መስመር እንደ ClepitContent ያሽጋል፣ አገልጋይ-መጀመሪያ ክፍል፤ የ React ገጹን ይመልከቱ።

ፍሬምዎርክ-አዘቢ

ዋናው @clepit/core ጥቅል ቀጥታ TypeScript ነው፣ ምንም የ React ጥገኛ የለም። React፣ Vue፣ Svelte፣ Angular ወይም ቫኒላ TS/JS ትጠቀሙ፣ ሁሉም ተመሳሳዩ API ይጠቀማሉ።