Rukia hadi maudhui makuu

Dhana za msingi

Mfano wa kizuizi

Kiini cha EditorData ni safu ya blocks: vitu vya Block vinavyohifadhi mpangilio. Kila Block hubeba aina yake (type), data maalum ya aina, na metadata ya tunes ya hiari.

SehemuAinaMaelezo
idstring | undefinedKitambulisho kipekee cha hiari, kilichokabidhiwa na kihariri wakati wa uundaji.
typeBlockToolTypeUfunguo wa moja kwa moja unaounganisha kizuizi na muundo wake, sehemu ya uingizaji, na kionyeshi.
dataobjectKitu cha data maalum kwa aina: umbo hutofautiana kwa kila aina ya kizuizi.
tunesBlockTunes | undefinedKamusi ya hiari ya metadata ya tune inayovuka aina. Ufunguo ni jina la tune na thamani ni data ya muundo huru.
JSON
{
  "time": 1745000000000,
  "version": "1.0.0",
  "blocks": [
    {
      "id": "abc123",
      "type": "header",
      "data": { "html": "Hello world", "level": "h1" }
    },
    {
      "id": "def456",
      "type": "paragraph",
      "data": { "html": "This is a <b>rich</b> paragraph." }
    }
  ]
}

Zana za kizuizi dhidi ya zana za ndani ya mstari

Zana za kizuizi huunda nafasi za kiwango cha juu moja kwa moja ndani ya EditorData. Zana za ndani ya mstari hupamba maandishi ndani ya mzigo wa html uliomo kwenye kizuizi. Tabaka hizi mbili zimegawanyika kabisa. Haziwezi kubadilishana.

Matokeo ya JSON-kwanza

Kihariri hakiwahi kudumu kwa HTML. Unapopiga simu editor.data.extract(), unapata JSON safi ya EditorData: kamili ikiwa ni pamoja na URL za media. JSON hii inaweza kuhifadhiwa kwenye hifadhidata, kubinafsishwa, au kubadilishwa kuwa miundo mingine.

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

const editor = Editor.create({ containerId: 'editor' });

const data = editor.data.extract();
// data: EditorData
// {
//   time: 1745000000000,
//   version: '1.0.0',
//   blocks: [ ... ]
// }

Editor dhidi ya Renderer

Editor hutumia DOM ya kivinjari kumruhusu mtumiaji kuhariri maudhui (kivinjari pekee). Renderer huchukua EditorData iliyohifadhiwa awali na kuionyesha kama HTML (inaweza kukimbia kwenye kivinjari au kupitia SSR).

Urekebishaji wa kizuizi

Tunes ni nafasi ya metadata isiyotegemea aina kwa aina yoyote ya kizuizi. Ufunguo ni jina la tune lililowekwa na mfumo au programu-jalizi, na thamani imewekwa aina kwa BlockTuneData: mchanganyiko wowote wa string, number, boolean, au null. Tunes inaweza kuongeza semantiki bila kuvunja umbo la data kuu.

JSON
{
  "id": "abc123",
  "type": "paragraph",
  "data": { "html": "Some text." },
  "tunes": {
    "textAlign": { "alignment": "center" },
    "visibility": { "hidden": false }
  }
}