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.
| Sehemu | Aina | Maelezo |
|---|---|---|
| id | string | undefined | Kitambulisho kipekee cha hiari, kilichokabidhiwa na kihariri wakati wa uundaji. |
| type | BlockToolType | Ufunguo wa moja kwa moja unaounganisha kizuizi na muundo wake, sehemu ya uingizaji, na kionyeshi. |
| data | object | Kitu cha data maalum kwa aina: umbo hutofautiana kwa kila aina ya kizuizi. |
| tunes | BlockTunes | undefined | Kamusi ya hiari ya metadata ya tune inayovuka aina. Ufunguo ni jina la tune na thamani ni data ya muundo huru. |
{
"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.
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
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.
{
"id": "abc123",
"type": "paragraph",
"data": { "html": "Some text." },
"tunes": {
"textAlign": { "alignment": "center" },
"visibility": { "hidden": false }
}
}