Rukia hadi maudhui makuu

Marejeo ya API

Mauzo ya umma kutoka @clepit/core. Kila ishara hapa chini hutoa sahihi yenye aina na mfano mdogo wa matumizi.

Editor

Darasa kuu la kihariri. Editor ina mbinu mbili za umma za tuli: create (kiwanda kikuu) na destroy. Njia ya create() inarudisha kitu cha EditorAPI ambacho kupitia kwake mbinu zote za nakala zinaweza kupatikana baada ya kihariri kupachikwa.

NjiaSainiMaelezo
Editor.createEditor.create(config: EditorConfig): EditorAPIUnda nakala mpya ya kihariri na uipachike kwenye kipengele cha DOM chenye containerId iliyotolewa.
Editor.destroyEditor.destroy(containerId: string): voidNjia ya destroy() kwenye kitu cha EditorAPI huita Editor.destroy() kwa nakala hii.
NjiaSainiMaelezo
data.extractdata.extract(): EditorDataToa data ya sasa ya vizuizi kutoka nakala ya kihariri kama EditorData salama kwa JSON.
data.setdata.set(data: EditorData): voidBadilisha orodha nzima ya vizuizi na mzigo mpya wa data. Huchochea uonyeshaji upya kamili.
data.cleardata.clear(): voidHusafisha maudhui ya vizuizi na data ya hali iliyohifadhiwa.
data.clearContentdata.clearContent(): voidHuondoa vizuizi tu, ukiacha data ya store bila kubadilishwa.
data.clearStoragedata.clearStorage(): voidHusafisha data ya store tu, ukiacha vizuizi vya sasa bila kubadilishwa.
blocks.insertblocks.insert<T extends BlockToolType>(type: T, data: Block<T>['data'], index: number, id?: string): HTMLElement | nullIngiza kizuizi kwenye index iliyotolewa. Hukubali umbo la data sawa na aina ya kizuizi lengwa.
blocks.convertblocks.convert(blockId: string, newType: BlockToolType): voidBadilisha kizuizi kuwa aina mpya papo hapo.
blocks.removeblocks.remove(index: number): voidOndoa kizuizi kilicho kwenye index iliyotolewa.
blocks.moveblocks.move(fromIndex: number, toIndex: number): voidHuhamisha kizuizi kutoka index moja hadi nyingine.
blocks.updateblocks.update<T extends BlockToolType>(blockId: string, data: Block<T>['data']): voidHusasisha data ya kizuizi kilichopo papo hapo. Aina haisababishwi.
blocks.getblocks.get(blockId: string): EditorData['blocks'][number] | nullHuleta kizuizi kwa ID yake. Hurejesha null ikiwa haikupatikana.
blocks.getAllblocks.getAll(): EditorData['blocks']Inarudisha data ya vizuizi vyote kama safu.
blocks.countblocks.count(): numberInarudisha idadi ya vizuizi katika kihariri.
focusfocus(): voidHusogeza umakini kwenye kihariri, ukizingatia kizuizi cha kwanza.
blurblur(): voidHuondoa umakini wowote unaofanya kazi ndani ya kihariri.
destroydestroy(): voidNjia ya destroy() kwenye kitu cha EditorAPI huita Editor.destroy() kwa nakala hii.
selection.getselection.get(): Selection | nullHurejesha kitu cha uchaguzi wa dirisha au null.
selection.setselection.set(selection: Selection): voidHuweka uchaguzi wa dirisha kwa kitu cha Selection kilichotolewa.
selection.clearselection.clear(): voidHuondoa safu zote kutoka kwa uchaguzi wa dirisha.
ui.showBlockMenuui.showBlockMenu(block: HTMLElement): voidHuonyesha menyu ya aina ya kizuizi kwa kipengele cha DOM cha kizuizi kilichopewa.
ui.hideBlockMenuui.hideBlockMenu(): voidHuficha menyu ya aina ya kizuizi ikiwa imefunguliwa.
ui.showToolbarui.showToolbar(x: number, y: number): voidHuonyesha upau wa zana wa ndani katika kuratibu x, y za eneo la mwonekano zilizotolewa.
ui.hideToolbarui.hideToolbar(): voidHuficha upau wa zana wa ndani ikiwa unaonekana.
view.getCurrentViewview.getCurrentView(containerId: string): EditorView | nullHurejesha mwonekano wa sasa (edit, preview, au json) kwa containerId iliyotolewa.
view.switchViewview.switchView(containerId: string, view: EditorView): voidHubadilisha kihariri hadi mwonekano maalum: edit, preview, au json.

Mfano wa matumizi ya kawaida

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

const editor = Editor.create({
  containerId: 'editor',
  theme: 'auto',
  placeholder: 'Start writing...',
  minHeight: 300,
});

// Insert a block
editor.blocks.insert('paragraph', { html: 'Hello world' }, 0);

// Extract data
const data = editor.data.extract();

// Switch view
editor.view.switchView('editor', 'preview');

// Tear down
editor.destroy();

Renderer

Darasa linaloobadilisha data ya vizuizi vilivyohifadhiwa kuwa HTML ya kusoma tu ndani ya kipengele cha DOM. Darasa hili lina njia moja ya tuli ya umma: render().

NjiaSainiMaelezo
Renderer.renderRenderer.render(config: RendererConfig): HTMLElementOnyesha JSON ya vizuizi iliyohifadhiwa ndani ya kontena kama HTML ya kusoma tu. Tumia hii popote unapotaka kuonyesha maudhui bila uwezo wa kuhariri.

Mfano wa matumizi ya kawaida

TypeScript
import { Renderer } from '@clepit/core';

Renderer.render({
  containerId: 'output',
  data,
  theme: 'auto',
  margins: { bottom: 12, top: 0 },
});

Uonyeshaji wa seva

Vipengele hivi hufanya kazi bila DOM na bila kivinjari: huchora mifuatano ya HTML iliyokamilika, hivyo hufanya kazi katika Node, mazingira ya edge, na vijenzi vya seva. Katika React, @clepit/react huvifunga kama ClepitContent.

NjiaSainiMaelezo
renderBlocksrenderBlocks(blocks: Block[], context?: DrawContext): stringHuchora hati hadi mfuatano wa HTML uliokamilika, bila kuhitaji DOM.
renderPagerenderPage(page: PublicPage, context?: DrawContext): stringHuchora ukurasa kamili wa HTML wa umma kwa hati: alama, laha ya mitindo, metadata, na id za vizuizi zinazofikika kwa nanga.
pageStylesheetpageStylesheet(): stringHurejesha laha ya mitindo ya alama zilizochorwa kistatiki, kutolewa au kuwekwa ndani kando ya matokeo ya renderBlocks.
activateBlocksactivateBlocks(container: HTMLElement, blocks: readonly Block[]): () => voidHuunganisha tabia za kuingiliana kwenye alama zilizochorwa na seva baada ya kupachika (tabo za msimbo, vitufe vya kunakili, tabo za majibu ya openapi, upakuaji wa CSV wa jedwali) na kurejesha kiondoshaji.
drawBlockdrawBlock(block: Block, backing: Backing, context?: DrawContext): ClepitElement | nullHuchora kizuizi kimoja dhidi ya backing; kwa string backing huchora bila DOM kabisa.
tokensToLightDarkBlocktokensToLightDarkBlock(light: ThemeTokens, dark: ThemeTokens, selector: string): stringHubadilisha jozi ya ThemeTokens ya mwanga na giza kuwa kizuizi cha vigezo vya CSS vya light-dark() kwa kichaguzi, kwa kuweka mandhari kwenye alama tuli bila StyleManager hai.
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);

StyleManager

Darasa la kati linaloosimamia mfumo wa mandhari. Linatoa mbinu tatu za tuli za umma zinazofaa kwa watumiaji: subscribe (kwa mabadiliko ya mandhari ya kiwango cha mfumo wa uendeshaji), getResolvedTheme (kusoma mandhari ya sasa ya mfumo wa uendeshaji), na injectStyles (kuingiza CSS maalum).

NjiaSainiMaelezo
StyleManager.subscribeStyleManager.subscribe(cb: (theme: 'light' | 'dark') => void): () => voidJiandikishe kwa mabadiliko ya tokeni za mandhari wakati wa utekelezaji. Msikilizaji huwaka kila theme au themeOverrides inapobadilika.
StyleManager.getResolvedThemeStyleManager.getResolvedTheme(): 'light' | 'dark'Husoma mandhari ya sasa ya mfumo wa uendeshaji ("light" au "dark"). Hurejesha "light" ikiwa matchMedia haipatikani.
StyleManager.injectStylesStyleManager.injectStyles(styleId: string, styles: string): booleanHuingiza mfuatano wa CSS katika document.head (tumia styleId ya kipekee). Hurejesha false ikiwa tayari ipo, true vinginevyo.

Mfano wa matumizi ya kawaida

TypeScript
import { StyleManager } from '@clepit/core';

// React to OS theme changes
const unsubscribe = StyleManager.subscribe(theme => {
  console.log('OS theme:', theme); // 'light' | 'dark'
});

// Read current OS theme
const current = StyleManager.getResolvedTheme();

// Inject custom CSS once
StyleManager.injectStyles('my-overrides', `
  .clepit-editor { font-family: 'Inter', sans-serif; }
`);

// Unsubscribe when done
unsubscribe();