মূল কন্টেন্টে যান

মূল ধারণাসমূহ

ব্লক মডেল

EditorData-র কেন্দ্রবিন্দু হলো blocks অ্যারে: Block অবজেক্টগুলো যা ক্রম ধরে রাখে। প্রতিটি Block তার ধরন (type), ধরন-নির্দিষ্ট ডেটা (data), এবং ঐচ্ছিক tunes মেটাডেটা ধারণ করে।

ফিল্ডধরনবিবরণ
idstring | undefinedঐচ্ছিক অনন্য শনাক্তকারী, editor দ্বারা তৈরির সময় বরাদ্দ করা হয়।
typeBlockToolTypeলিটারেল কী যা ব্লককে তার স্কিমা, ইনপুট কম্পোনেন্ট এবং রেন্ডারারের সাথে সংযুক্ত করে।
dataobjectটাইপ-নির্দিষ্ট ডেটা অবজেক্ট: প্রতিটি block type-এর জন্য আকার ভিন্ন।
tunesBlockTunes | undefinedঐচ্ছিক ক্রস-টাইপ tune মেটাডেটা ডিকশনারি। কী হলো tune নাম এবং মান হলো মুক্ত-ফর্ম ডেটা।
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." }
    }
  ]
}

ব্লক টুল বনাম ইনলাইন টুল

ব্লক টুলগুলো EditorData-র ভেতরে সরাসরি স্বতন্ত্র স্লট তৈরি করে। ইনলাইন টুলগুলো ব্লকের html পেলোডের ভেতরে টেক্সট সাজায়। দুটি স্তর সম্পূর্ণ আলাদা। এগুলো বিনিময়যোগ্য নয়।

JSON-প্রথম আউটপুট

এডিটর কখনো HTML সঞ্চয় করে না। যখন আপনি editor.data.extract() কল করেন, তখন আপনি EditorData-র বিশুদ্ধ JSON পাবেন: মিডিয়া URL সহ সমস্ত কিছু। এই JSON ডেটাবেজে সংরক্ষণ, পার্সোনালাইজ বা অন্য ফরম্যাটে রূপান্তর করা যেতে পারে।

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 বনাম Renderer

Editor ব্যবহারকারীকে কন্টেন্ট সম্পাদনা করতে ব্রাউজার DOM ব্যবহার করে (শুধুমাত্র ব্রাউজার)। Renderer পূর্বে সংরক্ষিত EditorData নিয়ে HTML হিসেবে উপস্থাপন করে (ব্রাউজার বা SSR-এ চলতে পারে)।

ব্লক tunes

Tunes হলো যেকোনো ব্লক টাইপের জন্য একটি টাইপ-অ্যাগনস্টিক মেটাডেটা স্লট। কী হলো সিস্টেম বা প্লাগইন দ্বারা নির্ধারিত tune নাম এবং মান BlockTuneData-তে টাইপ করা হয়: string, number, boolean বা null-এর যেকোনো সমন্বয়। Tunes মূল ডেটা না ভেঙেই অর্থ যোগ করতে পারে।

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