ወደ ዋናው ይዘት ዝለል

የAPI ማጣቀሻ

ከ@clepit/core የሚገኙ ይፋዊ ኤክስፖርቶች። ከታች ያለ እያንዳንዱ ምልክት የተተየበ ፊርማ እና አነስተኛ የአጠቃቀም ምሳሌ ያቀርባል።

Editor

ዋናው የአርታኢ ክፍል ነው። Editor.create() ሁለት የህዝብ static ዘዴዎችን ይዟል፦ create (ዋናው ፋብሪካ) እና destroy። create() ዘዴ EditorAPI ዕቃን ይመልሳል፣ አርታኢው ከተሸጠ በኋላ ሁሉም ዘዴዎች ሊደርሱ ይችላሉ።

ዘዴፊርማመግለጫ
Editor.createEditor.create(config: EditorConfig): EditorAPIአዲስ የአርታኢ ምሳሌ ይፍጠሩ እና በተሰጠው containerId ካለው የDOM ኤለመንት ውስጥ ይጫኑት።
Editor.destroyEditor.destroy(containerId: string): voidየ EditorAPI ዕቃ destroy() ዘዴ ለዚህ ምሳሌ Editor.destroy() ይደውላል።
ዘዴፊርማመግለጫ
data.extractdata.extract(): EditorDataከአርታኢ ምሳሌ የአሁኑን የብሎክ ውሂብ እንደ JSON-ደህንነቱ የተጠበቀ EditorData ያውጡ።
data.setdata.set(data: EditorData): voidሙሉውን የብሎክ ዝርዝር በአዲስ የውሂብ ጭነት ይተኩ። ሙሉ እንደገና-ማቅረብ ያስነሳል።
data.cleardata.clear(): voidየብሎክ ይዘቱን እና የተቀመጠ ሁኔታ ዳታ ሁለቱንም ያጥፋቸዋል።
data.clearContentdata.clearContent(): voidብሎኮቹን ብቻ ያስወግዳል፤ የ store ውስጥ ዳታ ሳይነካ ይቀርላል።
data.clearStoragedata.clearStorage(): voidየ store ውስጥ ዳታ ብቻ ይጥርጋል፤ ዓሁን ያሉ ብሎኮች ሳይነካ ይቀርላሉ።
blocks.insertblocks.insert<T extends BlockToolType>(type: T, data: Block<T>['data'], index: number): HTMLElement | nullበተሰጠው index ላይ ብሎክ ያስገቡ። እንደ ዒላማው የብሎክ አይነት ተመሳሳይ የውሂብ ቅርጽ ይቀበላል።
blocks.convertblocks.convert(blockId: string, newType: BlockToolType): voidብሎክን በቦታው ወደ አዲስ አይነት ይለውጡ።
blocks.removeblocks.remove(index: number): voidበተሰጠው index ላይ ያለውን ብሎክ ያስወግዱ።
blocks.moveblocks.move(fromIndex: number, toIndex: number): voidብሎክን ከአንድ index ወደ ሌላ index ያዙዋዝ።
blocks.updateblocks.update<T extends BlockToolType>(blockId: string, data: Block<T>['data']): voidነባር ብሎክ ዳታ በቦታው ያዘምን። ዓይነቱ አይቀየርም።
blocks.getblocks.get(blockId: string): EditorData['blocks'][number] | nullብሎክን በ ID ያምጣ። ካልተገኘ null ይመልሳል።
blocks.getAllblocks.getAll(): EditorData['blocks']ሁሉም ብሎኮች ዳታ ወደ ድርድር ይመልሳል።
blocks.countblocks.count(): numberበአርታኢ ውስጥ ያሉ ብሎኮች ቁጥር ይመልሳል።
focusfocus(): voidወደ አርታኢ ውስጥ ትኩረት ያቅናል፣ ለመጀመሪያ ብሎክ ትኩረት ይሰጣሉ።
blurblur(): voidወደ አርታኢ ውስጥ ምንም ንቁ ትኩረት ካለ ያስወግዳል።
destroydestroy(): voidየ EditorAPI ዕቃ destroy() ዘዴ ለዚህ ምሳሌ Editor.destroy() ይደውላል።
selection.getselection.get(): Selection | nullየዊንዶው ምርጫ ነገር ወይም null ይመልሳል።
selection.setselection.set(selection: Selection): voidየዊንዶው ምርጫ ወደ ሰጡት Selection ነገር ያዘጋጃሉ።
selection.clearselection.clear(): voidየዊንዶው ምርጫ ሁሉ ክልሎቹን ያስወግዳቸዋል።
ui.showBlockMenuui.showBlockMenu(block: HTMLElement): voidለተሰጠ ብሎክ DOM ኤለመንት የብሎክ ዓይነት ምናሌ ያሳያሉ።
ui.hideBlockMenuui.hideBlockMenu(): voidከተከፈተ የብሎክ ዓይነት ምናሌ ይደብቃሉ።
ui.showToolbarui.showToolbar(x: number, y: number): voidኢንላይን ቱልባሩን በተሰጡ x፣ y ቅርፅ አስተባባሪዎች ያሳያሉ።
ui.hideToolbarui.hideToolbar(): voidይዘት-ያለው ቅጣፎ ከተለቀቀ ኢንላይን ቱልባር ይደብቃሉ።
view.getCurrentViewview.getCurrentView(containerId: string): EditorView | nullለተሰጠ containerId የሚሰራ ዓሁን ያለ view (edit፣ preview፣ ወይም json) ይመልሳል።
view.switchViewview.switchView(containerId: string, view: EditorView): voidምርጦቹን view ወደ edit፣ preview፣ ወይም json ይቀይሩ።

የተለመደ አጠቃቀም

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

የተቀመጠ ብሎክ ዳታን ወደ DOM ኤለመንት ውስጥ እንደ ለንባብ-ብቻ HTML የሚቀይር ክፍል ነው። ለዚህ ክፍል አንድ ብቸኛ የህዝብ static ዘዴ አለ፦ render()።

ዘዴፊርማመግለጫ
Renderer.renderRenderer.render(config: RendererConfig): HTMLElementየተቀመጠ የብሎክ JSON ን ወደ መያዣ እንደ ለንባብ-ብቻ HTML ያቅርቡ። ይዘትን ያለ የአርታኢ ምቹነቶች ለማሳየት በሚፈልጉበት ቦታ ሁሉ ይህን ይጠቀሙ።

የተለመደ አጠቃቀም

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

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

StyleManager

የቲም ስርዓቱን የሚያስተዳድር ማዕከላዊ ክፍል ነው። ለሸማቾች ሦስት ጠቃሚ የህዝብ static ዘዴዎችን ያቀርባል፦ subscribe (ለ OS-ደረጃ ቲም ለውጦች)፣ getResolvedTheme (አሁን ያለውን OS ቲም ለማወቅ) እና injectStyles (ብጁ CSS ለማስወተት)።

ዘዴፊርማመግለጫ
StyleManager.subscribeStyleManager.subscribe(cb: (theme: 'light' | 'dark') => void): () => voidለሩጫ-ጊዜ የገጽታ token ለውጦች ይመዝገቡ። theme ወይም themeOverrides በተቀየረ ቁጥር listener ይተኮሳል።
StyleManager.getResolvedThemeStyleManager.getResolvedTheme(): 'light' | 'dark'አሁን ያለ OS ቲም ያነሳሉ ("light" ወይም "dark")። matchMedia ካልተገኘ "light" ነው ሚመልስ።
StyleManager.injectStylesStyleManager.injectStyles(styleId: string, styles: string): booleanየCSS ሃረን ወደ document.head ያስወቁታሉ (ሲአሌ ዩናክ styleId ይጠቀሙ)። ቀደም ሲል ካለ false ይመልሳሉ፣ ካልሆነ true ይመልሳሉ።

የተለመደ አጠቃቀም

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();