ወደ ዋናው ይዘት ዝለል

ውቅር

EditorConfig እና RendererConfig ለእያንዳንዱ ብጁ ማድረጊያ የግቤት ነጥቦች ናቸው። ወይ ለEditor.create() ወይም ለRenderer.render() ያስተላልፉ። containerId ብቻ (እና ለRenderer data) ያስፈልጋል፣ ሌሎቹ ሁሉ አስተማማኝ ነባሪዎች አሏቸው።

EditorConfig

EditorConfig ብቸኛ ክርክር ሆኖ ወደ Editor.create() ያስተላልፉ። አስፈላጊው containerId ከEditor.create() ከመጠራቱ በፊት ነባር DOM ኤለሜንት ID ጋር መዛመድ አለበት።

አማራጭአይነትአስፈላጊመግለጫ
containerIdstringአዎአርታኢውን የሚያስተናግደው DOM ኤለሜንት ID። Editor.create() ከመጠራቱ በፊት በDOM ውስጥ መኖር አለበት።
maxHeightnumberአይየአርታኢው ከፍተኛ ቁመት በፒክሰል። ምንም የቁመት ወሰን ለማይፈልጉ 0 (ነባሪ) ያዘጋጁ።
minHeightnumberአይየአርታኢው ዝቅተኛ ቁመት በፒክሰል። ነባሪ 300 ነው።
onChange(data: EditorData) => voidአይሰነዱ በተቀየረ ቁጥር የሚተኰሰ ኮልባክ። ሙሉ EditorData ቅጽሎ ይቀበላል።
onReady() => voidአይአርታኢው ሙሉ በሙሉ ተጀምሮ የ API ጥሪዎችን ለመቀበል ዝግጁ ሲሆን የሚተኰሰ ኮልባክ።
placeholderstringአይአርታኢው ባዶ በሚሆንበት ጊዜ የሚታይ ያስቀምጫ ጽሑፍ። ነባሪ "Start writing..." ነው።
initialDataEditorDataአይአርታኢው ሲጀምር ለመጫን አስቀድሞ የተሞላ EditorData።
initialView'edit' | 'preview' | 'json'አይየጀምሪያ እይታ ሁነታ። ከ: edit, preview, json አንዱ። ነባሪ "edit" ነው።
allowJsonViewEditingbooleanአይእውነት ሲሆን፣ የJSON እይታ ሊስተካከል ይችላል እና ለውጦቹ ወደ ሰነዱ ይመለሳሉ። ነባሪ false ነው።
hasViewSwitcherbooleanአይfalse ሲሆን፣ የአርትዕ፣ የቅድመ እይታ እና የJSON አዝራሮች ከድርጊት አሞሌው ይወጣሉ። ነባሪ true ነው።
hasDocumentActionsbooleanአይfalse ሲሆን፣ የመቅዳት፣ የማውረድ እና የማጽዳት አዝራሮች ከድርጊት አሞሌው ይወጣሉ። hasViewSwitcher ደግሞ false ከሆነ፣ የድርጊት አሞሌ አይሳልም። ነባሪ true ነው።
onClearRequest() => Promise<boolean>አይየማጽዳት አዝራር ሲጫን ይጠራል። ገጹ የሚጸዳው true ከመለሰ ብቻ ነው፤ ውድቅ ከሆነ ገጹ እንዳለ ይቀራል። ከሌለ፣ ማጽዳት ወዲያውኑ ይከናወናል።
marginsBlockMarginsአይለእያንዳንዱ ብሎክ የሚተገበር ዓለምአቀፍ የላይ እና ታች ክፍተት (በፒክሰል)። በብሎክ ደረጃ ውቅሮች ቅድሚያ ያገኛሉ።
stylesEditorStylesአይየአርታኢ ክሮም (ቶልባሮች፣ ዲያሎጎች፣ ቁጥጥሮች) ጥሩ ዝርዝር CSS ብጁ ማድረጊያ ለEditorStyles ነገር።
classNamesEditorClassNamesአይለአርታኢ ክሮም ኤለሜንቶች የCSS ክፍል ስሞችን ለማያያዝ EditorClassNames ነገር።
imageUploaderUploadFunctionአይምስል ፋይል የሚያስቀምጥ እና የህዝብ URL ሕብረቁምፊ የሚመልስ ያልሰሙ ተግባር።
audioUploaderUploadFunctionአይየኦዲዮ ፋይል የሚያስቀምጥ እና የህዝብ URL ሕብረቁምፊ የሚመልስ ያልሰሙ ተግባር።
videoUploaderUploadFunctionአይቪዲዮ ፋይል የሚያስቀምጥ እና የህዝብ URL ሕብረቁምፊ የሚመልስ ያልሰሙ ተግባር።
fileUploaderUploadFunctionአይየፋይል ብሎክ አባሪዎችን ወደ ማከማቻዎ የሚጭን የመጫኛ ተግባር።
localestringአይአርታኢው የሚያርትዐው ነጠላ ቋንቋ። ባለ ብዙ ቋንቋ ብሎኮች ወደዚህ ቋንቋ ይተለተላሉ።
defaultLocalestringአይብሎክ ለተጠየቀው ቋንቋ ይዘት ከሌለው የሚያገለግል መጠባበቂያ ቋንቋ።
onLocaleFallback(info: { blockId: string; locale: string }) => voidአይብሎክ ወደ መጠባበቂያ ቋንቋ ሲወድቅ ይጠራል፣ አስተናጋጁ ምልክት እንዲያሳይ።
onInlineRewrite(selection: string, action: InlineRewriteAction) => Promise<string | null>አይየተመረጠውን ጽሑፍ በ AI እንዲፃፍ የሚያደርግ ተግባር፤ ሲዘጋጅ የመሳሪያ አሞሌው የመፃፊያ አዝራር ያሳያል።
inlineRewriteLabelsPartial<Record<InlineRewriteAction, string>>አይየመፃፊያ ምናሌ ተግባሮች ስያሜዎችን ይተካል፣ ለትርጉም።
inlineRewriteTooltipstringአይበመስመር ውስጥ መሳሪያ አሞሌው ላይ ያለውን የመፃፊያ ዘንግ ፍንጭ ይተካል፣ ለትርጉም።
blockToolLabelsPartial<Record<BlockToolType, string>>አይየብሎክ መሳሪያዎች ስያሜዎችን በመሳሪያ ሳጥኑና በስላሽ ምናሌ ውስጥ ይተካል፣ ለትርጉም።
blockToolbarLabelsPartial<Record<BlockToolbarLabel, string>>አይየብሎክ የመሳሪያ አሞሌ ጽሑፎችን (ጨምር፣ አንቀሳቅስ፣ ሰርዝ እና ሌሎችም) እና በባዶ የብሎክ መስኮች የሚታዩ ፍንጮችን ይተካል፣ ለትርጉም።
controlLabelsPartial<Record<ControlLabel, string>>አይየድርጊት አሞሌ አዝራሮችን ስሞች (አርትዕ፣ ቅድመ እይታ፣ JSON፣ ቅዳ፣ አውርድ፣ አጽዳ) ይተካል፤ እንደ ተደራሽ ስማቸው እና ጠቃሚ ምክራቸው ያገለግላሉ፣ ለትርጉም።
dialogLabelsPartial<Record<DialogLabel, string>>አይየአገናኝ፣ የመረጃ ምክር እና የሁኔታ መገናኛዎች የሚያሳዩዋቸው ቃላት በስም ተደርድረው፦ ርዕሶች፣ የመስክ መለያዎች፣ ምሳሌ ጽሑፎች፣ የሁኔታ ቅጦች፣ ሰርዝ እና ተግብር። ከሌሉ በእንግሊዝኛ ይታያሉ።
resolveLink(url: string) => Promise<Partial<EmbedData>>አይየተለጠፈ አካትት ቅጽበታዊ ገጽታን ከአገልጋይዎ ይሞላል: ርዕስ፣ የDrive ፋይል፣ የgist ፋይሎች ወይም ቀጥታ እይታ የማይቻልበት ምክንያት። ስህተት የሚጥል ፍለጋ ካርዱን መሳሪያው እንዳልመለሰ ይስላል፣ ከጎኑ እንደገና ሞክር።
onEmbedAction(action: EmbedAction, blockId: string) => voidአይአስተናጋጁ ብቻ ሊፈጽመው የሚችለው ከካርዱ ምክንያት ጎን ያለው መፍትሄ: connectGoogle አባሉን የGoogle መለያውን እንዲያገናኝ ይልካል፤ retry አርታዒው ራሱ ያስተናግዳል።
disabledEmbedProvidersreadonly string[]አይበሽቦ ቁልፍ (figma፣ miro፣ loom፣ google_drive፣ github_gist) የስራ ቦታው ያጠፋቸው የአካትት መሳሪያዎች፤ አገናኞቻቸው ምክንያቱን የሚናገሩ ካርዶች ሆነው ይሳላሉ።
pasteEmbeds'live' | 'offer' | 'card'አይየሚደገፍ አገናኝ መለጠፍ ምን እንደሚያደርግ: በቀጥታ ማሳየት (ነባሪ)፣ ማቅረብ፣ ወይም ካርድ ማሳየት።
embedLabelsPartial<Record<EmbedLabel, string>>አይለአካትት ብሎክ የምክንያት መስመሮች፣ ድርጊቶች እና የgist መለያዎች የተተረጎሙ ቃላት፣ በEmbedLabel ቁልፍ፤ ካልሆነ የእንግሊዝኛ ነባሪዎች።
resolveIssues(urls: string[]) => Promise<Record<string, IssueSnapshot>>አይየገጽ የጉዳይ አገናኞችን በ URL ቁልፍ በቅጽበታዊ ገጾቻቸው ይመልሳል። ከሌለ ቺፖች እና ካርዶች ሰነዱ ያከማቸውን ይይዛሉ እና ምንም አይታደስም።
onIssueAction(action: IssueAction, tool: string) => voidአይከጉዳይ ምክንያት ጎን ያለው ማስተካከያ አስተናጋጁ ብቻ የሚያደርገው: መሳሪያውን ማገናኘት፣ ይህም በአስተናጋጁ የውህደቶች ገጽ ላይ ያሳርፋል።
issueCards'off' | 'on'አይበራሱ መስመር ላይ የተለጠፈ የጉዳይ አገናኝ ካርድ ይሁን፤ ከሌለ off። በዓረፍተ ነገር ውስጥ ያለ ቺፕ ሁልጊዜ ቺፕ ነው።
issueChip{ assignee: boolean; status: boolean }አይየአባሉ ሁለት የቺፕ መቀያየሪያዎች: የሁኔታ ፒል እና ያዢው። ከሌለ ሁለቱም በርተዋል።
issueLabelsPartial<Record<IssueLabel, string>>አይለጉዳይ ቺፑ፣ ካርዱ እና የተገናኙ ጉዳዮች ሰንጠረዥ የተተረጎሙ ቃላት፣ በIssueLabel ቁልፍ፤ ካልሆነ የእንግሊዝኛ ነባሪዎች።
jiraSitesreadonly string[]አይየሥራ ቦታው ግንኙነቶች የሚደርሱባቸው የ Jira ጣቢያዎች URLs፣ በራሱ ጎራ ላይ ያለ ጣቢያ አገናኝ እንደ ጉዳይ እንዲታወቅ።
allowedBlockToolsreadonly BlockToolType[]አይአርታዒው በብሎክ ምናሌ፣ በፍለጋው፣ በመቀየሪያ ምናሌ እና በመለጠፍ ላይ የሚያቀርባቸው የብሎክ ዓይነቶች። ከሌለ የተመዘገበ ብሎክ ሁሉ፤ ከዝርዝሩ ውጭ የተቀመጠ ብሎክ አሁንም ይታያል።
allowedInlineToolsreadonly InlineToolType[]አይየመስመር ውስጥ መሣሪያ አሞሌ የሚያቀርባቸው ምልክቶች። ከሌለ የተመዘገበ ምልክት ሁሉ።
theme'auto' | 'light' | 'dark'አይየቀለም ስርዓተ ጭነት። ከ: auto (ስርዓቱን ይከተላል)፣ light፣ dark። ነባሪ auto ነው።
themeOverrides{ light?: ThemeTokens; dark?: ThemeTokens }አይበሁነታ ደረጃ ቶከን ቅድሚያዎች። ሙሉ ጭነቱን ሳይተኩ ቀለሞችን ለማበጀት light እና/ወይም dark ቶከን ካርታዎችን ያቅርቡ።
TypeScript
import { Editor } from '@clepit/core';

const editor = Editor.create({
  containerId: 'editor',
  minHeight: 400,
  placeholder: 'Start writing...',
  theme: 'auto',
  onChange: data => console.log(data),
  onReady: () => console.log('Editor ready'),
  imageUploader: async file => {
    const form = new FormData();
    form.append('file', file);
    const res = await fetch('/api/upload', { body: form, method: 'POST' });
    const { url } = await res.json();
    return url;
  },
});

RendererConfig

RendererConfig ብቸኛ ክርክር ሆኖ ወደ Renderer.render() ያስተላልፉ። containerId እና data ሁለቱም ያስፈልጋሉ።

አማራጭአይነትአስፈላጊመግለጫ
containerIdstringአዎየተሰናዳ ውጤቱ የሚወጋ DOM ኤለሜንት ID።
dataEditorDataአዎሊሰናዳ የሚቀርበው EditorData ሰነድ። ያስፈልጋል።
marginsBlockMarginsአይለእያንዳንዱ የሰናዳ ብሎክ የሚተገበር ዓለምአቀፍ የላይ እና ታች ክፍተት (በፒክሰል)።
stylesBlockStylesአይሊሰናዱ ለሚቀርበው ውጤት ለብሎክ-አይነት CSS ብጁ ማድረጊያ BlockStyles ካርታ።
classNamesBlockClassNamesአይሊሰናዱ ለሚቀርበው ውጤት ለብሎክ-አይነት CSS ክፍል ስሞች BlockClassNames ካርታ።
editorClassNamesEditorClassNamesአይይነሰናዱ የሚቀርቡ ኮምፖኔንቶችን (ለምሳሌ ለፓራግራፎች tooltip ክፍል ስሞች) ለሚያሳዩ ብሎኮች EditorClassNames።
configsPartial<BlockTypeOutputConfigs>አይለብሎክ OutputConfig ነገሮች ከፊል ካርታ። እያንዳንዱ ግቤት የብሎክ ደረጃ ክፍተቶችን እና tooltip ክፍል ስሞችን ሊያዘጋጅ ይችላል።
theme'auto' | 'light' | 'dark'አይየቀለም ስርዓተ ጭነት። ከ: auto፣ light፣ dark አንዱ።
themeOverrides{ light?: ThemeTokens; dark?: ThemeTokens }አይሊሰናዱ ለሚቀርቡ ውጤቶች ሁነታ ደረጃ ቶከን ቅድሚያዎች።
TypeScript
import { Renderer } from '@clepit/core';
import type { EditorData } from '@clepit/core';

const data: EditorData = await fetch('/api/content/123').then(r => r.json());

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

በብሎክ ደረጃ ስታይል ማድረጊያ

EditorConfig እና RendererConfig ሁለቱም styles፣ classNames እና configs በብሎክ አይነት ቁልፍ ይቀበላሉ። እነዚህን ለዒላማ ቅድሚያዎች ይጠቀሙ፤ ሙሉ ቶከን ማጣቀሻ ለThemes ገጽ ይመልከቱ።

TypeScript
import { Editor, Renderer } from '@clepit/core';
import type { BlockStyles, BlockClassNames, EditorStyles } from '@clepit/core';

const editorStyles: EditorStyles = {
  blockToolbar: { container: { borderRadius: '8px' } },
};

const blockStyles: BlockStyles = {
  header: { h1: { fontFamily: 'Georgia, serif' } },
  paragraph: { lineHeight: '1.75' },
  table: { cell: { padding: '8px 12px' } },
};

const blockClassNames: BlockClassNames = {
  paragraph: 'prose-paragraph',
  header: { h1: 'prose-h1', h2: 'prose-h2' },
  alert: { info: 'alert-info', error: 'alert-error' },
};

Editor.create({
  containerId: 'editor',
  styles: editorStyles,
});

Renderer.render({
  containerId: 'output',
  data,
  styles: blockStyles,
  classNames: blockClassNames,
});