Rukia hadi maudhui makuu

Usanidi

EditorConfig na RendererConfig ni vituo vya kuingilia kwa kila ubinafsishaji. Pita moja kati yake kwa Editor.create() au Renderer.render() ipasavyo. Ni containerId tu (na data kwa renderer) inayohitajika, chaguzi zote nyingine zina mipangilio salama ya chaguo-msingi.

EditorConfig

Pita EditorConfig kama hoja pekee kwa Editor.create(). containerId inayohitajika lazima ilingane na id ya kipengele cha DOM kilichopo.

ChaguoAinaInahitajikaMaelezo
containerIdstringNdiyoID ya kipengele cha DOM ambacho kitaandaa kihariri. Lazima kiwepo kwenye DOM kabla ya Editor.create() kuitwa.
maxHeightnumberHapanaUrefu wa juu zaidi wa kihariri kwa pixels. Weka 0 (chaguo-msingi) kwa hakuna kikomo cha urefu.
minHeightnumberHapanaUrefu wa chini zaidi wa kihariri kwa pixels. Chaguo-msingi ni 300.
onChange(data: EditorData) => voidHapanaCallback inayowaka kila wakati hati inabadilika. Inapokea picha kamili ya EditorData.
onReady() => voidHapanaCallback inayowaka mara kihariri kimekamilika kuanzishwa na kiko tayari kukubali simu za API.
placeholderstringHapanaMaandishi ya mpangilio yaliyoonyeshwa wakati kihariri kiko tupu. Chaguo-msingi ni 'Start writing...'.
initialDataEditorDataHapanaEditorData iliyojazwa awali kupakia wakati kihariri kinawekwa.
initialView'edit' | 'preview' | 'json'HapanaHali ya mwanzo ya mtazamo. Moja ya: edit, preview, json. Chaguo-msingi ni 'edit'.
allowJsonViewEditingbooleanHapanaIwapo true, mtazamo wa JSON unaweza kuhaririwa na mabadiliko yanaenea nyuma kwenye hati. Chaguo-msingi ni false.
marginsBlockMarginsHapanaPembezoni ya juu na chini ya ulimwenguni (kwa pixels) inayotumika kwa kila block. Mipangilio ya kila block ina kipaumbele.
stylesEditorStylesHapanaKitu cha EditorStyles kwa ubinafsishaji wa CSS wa kina wa chrome ya kihariri (mwambaa wa zana, mazungumzo, vidhibiti).
classNamesEditorClassNamesHapanaKitu cha EditorClassNames kuambatanisha majina ya darasa la CSS kwa vipengele vya chrome ya kihariri.
imageUploaderUploadFunctionHapanaKazi ya async inayopakia faili la picha na kurudisha mfuatano wa URL ya umma.
audioUploaderUploadFunctionHapanaKazi ya async inayopakia faili la sauti na kurudisha mfuatano wa URL ya umma.
videoUploaderUploadFunctionHapanaKazi ya async inayopakia faili la video na kurudisha mfuatano wa URL ya umma.
theme'auto' | 'light' | 'dark'HapanaMpango wa rangi. Moja ya: auto (inafuata mfumo), light, dark. Chaguo-msingi ni auto.
themeOverrides{ light?: ThemeTokens; dark?: ThemeTokens }HapanaUbatilishaji wa token kwa kila hali. Toa ramani za token za light na/au dark kubinafsisha rangi bila kubadilisha mandhari nzima.
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

Pita RendererConfig kama hoja pekee kwa Renderer.render(). containerId na data zote mbili zinahitajika.

ChaguoAinaInahitajikaMaelezo
containerIdstringNdiyoID ya kipengele cha DOM ambapo matokeo yaliyochapishwa yataingizwa.
dataEditorDataNdiyoHati ya EditorData ya kuchapishwa. Inahitajika.
marginsBlockMarginsHapanaPembezoni ya juu na chini ya ulimwenguni (kwa pixels) inayotumika kwa kila block iliyochapishwa.
stylesBlockStylesHapanaRamani ya BlockStyles kwa ubinafsishaji wa CSS wa kila aina ya block ya matokeo yaliyochapishwa.
classNamesBlockClassNamesHapanaRamani ya BlockClassNames kwa majina ya darasa la CSS ya kila aina ya block kwenye matokeo yaliyochapishwa.
editorClassNamesEditorClassNamesHapanaEditorClassNames zilizopitishwa kwa blocks ambazo zinaonyesha vipengele vya mwingiliano (mf. classNames za tooltip kwa aya).
configsPartial<BlockTypeOutputConfigs>HapanaRamani ya sehemu ya vitu vya OutputConfig kwa kila block. Kila ingizo linaweza kuweka pembezoni za ngazi ya block na majina ya darasa la tooltip.
theme'auto' | 'light' | 'dark'HapanaMpango wa rangi. Moja ya: auto, light, dark.
themeOverrides{ light?: ThemeTokens; dark?: ThemeTokens }HapanaUbatilishaji wa token kwa kila hali kwa matokeo yaliyochapishwa.
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 },
});

Uundaji wa mtindo wa ngazi ya block

Zote EditorConfig na RendererConfig zinakubali styles, classNames, na configs zilizofungwa kwa aina ya block. Tumia hizi kwa ubatilishaji uliolenga; angalia ukurasa wa Themes kwa marejeo kamili ya kila token.

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,
});