تخطَّ إلى المحتوى الرئيسي

مرجع الكتل

توثّق هذه الصفحة كل نوع كتلة يتضمّنه المحرر. لكل كتلة شكل JSON ومُصيّر (renderer) ومسار إدراج برمجي عبر editor.blocks.insert.

تشترك جميع الكتل في الغلاف نفسه عند التسلسل: id وtype وdata وسجل tunes اختياري.

شكل الكتلة

يتسلسل كل كتلة إلى غلاف JSON متطابق. يُعيَّن id بواسطة المحرر ويمكن حذفه عند بناء البيانات برمجيًا.

JSON
{
  "id": "abc123",
  "type": "paragraph",
  "data": { "html": "Hello <b>world</b>" },
  "tunes": {}
}

alert

صندوق تنبيه مميَّز بأربعة أنماط.

الحقلالنوعمطلوبالوصف
htmlstringنعممحتوى HTML لرسالة التنبيه. يُدعم ترميز الأدوات المضمّنة.
variant'error' | 'info' | 'success' | 'warning'نعمالنمط المرئي للتنبيه. أحد القيم: error وinfo وsuccess وwarning.
JSON
{
  "type": "alert",
  "data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}

audio

كتلة صوت. تُستهلك عبر دالة الاستدعاء audioUploader في Editor.create.

الحقلالنوعمطلوبالوصف
urlstringنعمرابط ملف الصوت المراد تضمينه.
captionstringلاتعليق نصي عادي يظهر أسفل مشغّل الصوت.
altstringلاتسمية يمكن الوصول إليها لعنصر الصوت.
alignment'center' | 'left' | 'right'لاالمحاذاة الأفقية للمشغّل. أحد القيم: center وleft وright.
JSON
{
  "type": "audio",
  "data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}

checklist

قائمة مربعات اختيار تفاعلية مع حالة محدّدة لكل عنصر.

الحقلالنوعمطلوبالوصف
itemsChecklistItem[]نعممصفوفة من عناصر القائمة المرجعية، كل منها يحتوي على نص وحالة تحديد.
items[].textstringنعممحتوى HTML لتسمية العنصر.
items[].checkedbooleanنعمما إذا كان مربع الاختيار مُحدَّدًا.
JSON
{
  "type": "checklist",
  "data": {
    "items": [
      { "text": "Install the package", "checked": true },
      { "text": "Mount the editor", "checked": false }
    ]
  }
}

code

كتلة كود بتمييز لوني للصياغة. تدعم 50 لغة، منها typescript وpython وrust وgo وruby وswift وkotlin.

الحقلالنوعمطلوبالوصف
codestringنعمسلسلة الكود الخام المراد عرضها.
languageCodeLanguageلالغة تمييز بناء الجملة. القيمة الافتراضية: typescript.
themeCodeThemeلاثيم ألوان المحرر. القيمة الافتراضية: github-dark.
showCopybooleanلاعرض زر نسخ في الناتج المُصيَّر.
syncKeystringلاالكتل التي تتشارك مفتاحًا تبدّل اللغة معًا.
variantsCodeVariant[]لاعند امتلائها تعرض شريط تبويبات وتكون هي المرجع.
JSON
{
  "type": "code",
  "data": { "code": "const x = 42;", "language": "typescript", "theme": "github-dark", "showCopy": true }
}

collapsible

قسم قابل للطي بعنوان وكتل فرعية متداخلة. تُحفظ أنواع الكتل الفرعية غير المعروفة كما هي، لذا تنجو المستندات الأحدث في العارضات الأقدم.

الحقلالنوعمطلوبالوصف
htmlstringنعمعنوان القسم بصيغة HTML مضمّن.
openbooleanلاما إذا كان القسم يُعرض موسّعًا.
childrenBlock[]لاكتل فرعية متداخلة.
JSON
{
  "type": "collapsible",
  "data": {
    "html": "Details",
    "open": true,
    "children": [{ "type": "paragraph", "data": { "html": "Hidden until opened." } }]
  }
}

collection

يضمّن عرض مجموعة حيًّا عبر المعرّف. لا تخزّن الكتلة سوى هوية المجموعة؛ فالخادم يملك الشكل والبيانات.

الحقلالنوعمطلوبالوصف
collectionIdstringنعممعرّف المجموعة المضمّنة. الشيء الوحيد المخزّن.
JSON
{
  "type": "collection",
  "data": { "collectionId": "c-42" }
}

columns

تخطيط متعدد الأعمدة من عمودين إلى أربعة، يحمل كل عمود قائمته الخاصة من الكتل الفرعية.

الحقلالنوعمطلوبالوصف
columnsBlock[][]نعمالأعمدة، كل منها قائمة كتل فرعية. من عمودين إلى أربعة.
JSON
{
  "type": "columns",
  "data": {
    "columns": [
      [{ "type": "paragraph", "data": { "html": "Left" } }],
      [{ "type": "paragraph", "data": { "html": "Right" } }]
    ]
  }
}

date

تاريخ تقويمي، يُخزَّن دون منطقة زمنية حتى يتفق عليه كل المتعاونين.

الحقلالنوعمطلوبالوصف
datestringنعمتاريخ ISO بصيغة yyyy-MM-dd، دون منطقة زمنية.
JSON
{
  "type": "date",
  "data": { "date": "2026-08-31" }
}

delimiter

فاصل بصري بين الأقسام.

الحقلالنوعمطلوبالوصف
variant'line' | 'stars'نعمالنمط المرئي للفاصل. أحد القيم: line وstars.
JSON
{
  "type": "delimiter",
  "data": { "variant": "line" }
}

doc_card

بطاقة رابط غنية لمستند آخر. تخزّن معرّف الصفحة المُشار إليها ولقطة عرض يحدّثها المضيف عند إعادة التسمية.

الحقلالنوعمطلوبالوصف
pageIdstringنعممعرّف الصفحة المُشار إليها؛ هوية البطاقة.
titlestringنعملقطة عرض لعنوان الصفحة.
iconstringلاأيقونة اختيارية تظهر على البطاقة.
descriptionstringلاوصف اختياري يظهر أسفل العنوان.
JSON
{
  "type": "doc_card",
  "data": { "pageId": "p-7", "title": "Release notes", "icon": "📄" }
}

embed

رابط مضمّن. تخزّن الكتلة الرابط فقط؛ ويُشتق المزوّد وترميز التضمين عند العرض، مع حقول المعاينة كبطاقة احتياطية.

الحقلالنوعمطلوبالوصف
urlstringنعمالرابط المضمّن. يُشتق منه المزوّد وترميز التضمين عند العرض.
titlestringلالقطة معاينة لبطاقة الرابط.
descriptionstringلاوصف المعاينة لبطاقة الرابط.
imageUrlstringلاصورة المعاينة لبطاقة الرابط.
display'card'لا"card" لعرض بطاقة رابط حتى حيث يتوفر عرض مباشر.
fileobjectلااسم ملف Drive ونوعه وأيقونته، من حساب Google الخاص بمن لصق الرابط.
gistobjectلاملفات gist كما لُصقت، تُرسم كشيفرة حيث لا يمكن تحميل عرض GitHub.
reasonstringلاسبب عدم عرض العرض المباشر: connect_google أو no_access أو provider_unreachable أو switched_off.
issueobjectلارابط مشكلة يُعرض ككرت: آخر لقطة قُرئت (tool وkey وtitle وstateName وcategory وassigneeName وupdatedAt وreason).
JSON
{
  "type": "embed",
  "data": { "url": "https://www.youtube.com/watch?v=abc123" }
}

file

مرفق ملف مع رابط تنزيل واسم، وحجم ونوع محتوى اختياريين.

الحقلالنوعمطلوبالوصف
urlstringنعمالمكان الذي يُقدَّم منه الملف.
namestringنعماسم الملف الظاهر على المرفق.
sizenumberلاحجم الملف بالبايت.
contentTypestringلانوع MIME للملف.
JSON
{
  "type": "file",
  "data": { "url": "/files/notes.pdf", "name": "notes.pdf", "size": 2048, "contentType": "application/pdf" }
}

glance

لوحة ملخّص من تسميات وقيم: صفوف حقائق تُقرأ بلمحة، مع تعليق وخلفية اختياريين.

الحقلالنوعمطلوبالوصف
rowsGlanceRow[]نعمالحقائق المعروضة: كل صف تسمية وقيمة HTML مضمّنة.
captionstringلاتعليق اختياري فوق الصفوف.
variant'plain' | 'error' | 'info' | 'success' | 'warning'لاخلفية العرض؛ plain بلا تنسيق، والبقية تطابق لوحة ألوان التنبيه.
JSON
{
  "type": "glance",
  "data": {
    "caption": "Facts",
    "rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
    "variant": "plain"
  }
}

عناوين المستوى الأعلى وعناوين الأقسام (من h1 إلى h6). تعمل الأدوات المضمّنة داخل حمولة html.

الحقلالنوعمطلوبالوصف
htmlstringنعممحتوى HTML للعنوان. يُدعم ترميز الأدوات المضمّنة.
level'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'لامستوى العنوان. أحد القيم: h1 وh2 وh3 وh4 وh5 وh6. القيمة الافتراضية: h1.
JSON
{
  "type": "header",
  "data": { "html": "Getting started", "level": "h2" }
}

image

كتلة صورة مع تعليق ونص بديل alt. تُستهلك عبر دالة الاستدعاء imageUploader في Editor.create.

الحقلالنوعمطلوبالوصف
urlstringنعمرابط الصورة المراد تضمينها.
captionstringلاتعليق نصي عادي يظهر أسفل الصورة.
altstringلاالنص البديل لعنصر الصورة.
alignment'center' | 'left' | 'right'لاالمحاذاة الأفقية للصورة. أحد القيم: center وleft وright.
JSON
{
  "type": "image",
  "data": { "url": "/img/hero.jpg", "caption": "Hero image", "alt": "A hero", "alignment": "center" }
}

issues

جدول بالمشكلات المرتبطة يُشتق عند العرض من شارات وكروت المشكلات في الصفحة (المشكلة، العنوان، الحالة، المسؤول). لا يخزّن بيانات خاصة به.

لا تخزّن هذه الكتلة أي حقول؛ تُشتق الصفوف من شارات وكروت المشكلات في الصفحة عند العرض.

JSON
{
  "type": "issues",
  "data": {}
}

latex

رياضيات LaTeX، تُخزَّن كمصدر وتُنضَّد عند العرض. أي منضّد أفضل لاحقًا يحسّن كل مستند موجود بالفعل.

الحقلالنوعمطلوبالوصف
sourcestringنعممصدر LaTeX. يُخزَّن كمصدر، وليس أبدًا كناتج منضَّد.
JSON
{
  "type": "latex",
  "data": { "source": "\\frac{a}{b}" }
}

list

قائمة مرتّبة أو غير مرتّبة. كل عنصر هو html.

الحقلالنوعمطلوبالوصف
type'ordered' | 'unordered'نعمنوع القائمة. أحد القيم: ordered وunordered.
itemsstring[]نعممصفوفة من سلاسل HTML، واحدة لكل عنصر من عناصر القائمة.
JSON
{
  "type": "list",
  "data": { "type": "unordered", "items": ["First item", "Second item"] }
}

mermaid

مخطط Mermaid، يُخزَّن كمصدر ويُرسم عند العرض، وليس أبدًا كصورة نقطية.

الحقلالنوعمطلوبالوصف
sourcestringنعممصدر Mermaid. يُخزَّن كمصدر، وليس أبدًا كناتج مرسوم.
JSON
{
  "type": "mermaid",
  "data": { "source": "flowchart TD\n  A --> B" }
}

openapi

يعرض مرجع API تفاعليًا من مستند OpenAPI 3.x، مضمّنًا أو مجلوبًا من رابط، مع منتقي خوادم ومقاطع شيفرة.

الحقلالنوعمطلوبالوصف
specobjectلامستند OpenAPI 3.x مضمّن. يتقدّم على url عند ضبط الاثنين.
urlstringلامن أين يُجلب مستند OpenAPI عند العرض.
includeOpenApiFilterلامرشّح للعمليات التي تُعرض.
excludeOpenApiFilterلامرشّح للعمليات التي تُخفى.
defaultServerstringلاالخادم الذي يختاره المرجع افتراضيًا.
snippetLanguagesCodeLanguage[]لااللغات المتاحة لمقاطع الطلبات.
JSON
{
  "type": "openapi",
  "data": { "url": "/api/openapi.json", "defaultServer": "https://api.example.com" }
}

paragraph

فقرة نص منسّق. تقبل ترميز الأدوات المضمّنة مثل bold وitalic وcode وlink وmarker وtooltip.

الحقلالنوعمطلوبالوصف
htmlstringنعممحتوى HTML للفقرة. يُدعم ترميز الأدوات المضمّنة.
JSON
{
  "type": "paragraph",
  "data": { "html": "This is a <b>paragraph</b> with inline markup." }
}

quote

اقتباس مع إسناد اختياري للمؤلف.

الحقلالنوعمطلوبالوصف
htmlstringنعممحتوى HTML لجسم الاقتباس. يُدعم ترميز الأدوات المضمّنة.
authorstringلاإسناد نصي عادي أو HTML يظهر أسفل الاقتباس.
JSON
{
  "type": "quote",
  "data": { "html": "The best way to predict the future is to invent it.", "author": "Alan Kay" }
}

sketch

رسم حر يُخزَّن كضربات، وليس أبدًا كصورة نقطية، فيبقى قابلًا للتحرير ويتدرّج بنقاء.

الحقلالنوعمطلوبالوصف
strokesSketchStroke[]نعمالرسم كضربات: كل ضربة قائمة نقاط مع لون وعرض اختياريين.
JSON
{
  "type": "sketch",
  "data": { "strokes": [{ "points": [0, 0, 10, 10], "color": "#ff0000", "width": 3 }] }
}

table

شبكة بيانات. يمكن استخدام الصف الأول كرأس؛ كل خلية هي html.

الحقلالنوعمطلوبالوصف
datastring[][]نعممصفوفة ثنائية الأبعاد من سلاسل خلايا HTML. الصف الأول هو صف الرأس.
captionstringلاتعليق نصي عادي أو HTML يظهر أسفل الجدول.
showDownloadbooleanلاعرض زر تنزيل في الناتج المُصيَّر.
JSON
{
  "type": "table",
  "data": {
    "data": [["Name", "Type"], ["html", "string"], ["variant", "AlertVariant"]],
    "caption": "AlertData fields",
    "showDownload": false
  }
}

toc

جدول محتويات يُشتق من عناوين المستند عند العرض. لا يخزّن بيانات خاصة به.

لا تخزّن هذه الكتلة أي حقول؛ تُشتق القائمة من عناوين المستند عند العرض.

JSON
{
  "type": "toc",
  "data": {}
}

updates

موجز نشاط حي لمستند. يخزّن الهوية لا لقطة، فيواصل عرض النشاط الجاري.

الحقلالنوعمطلوبالوصف
pageIdstringلانشاط أي مستند يُعرض. غيابه يعني المستند الذي تقع فيه الكتلة.
JSON
{
  "type": "updates",
  "data": { "pageId": "p-7" }
}

video

كتلة فيديو. تُستهلك عبر دالة الاستدعاء videoUploader في Editor.create.

الحقلالنوعمطلوبالوصف
urlstringنعمرابط ملف الفيديو أو رابط تضمين YouTube/Vimeo.
captionstringلاتعليق نصي عادي يظهر أسفل المشغّل.
altstringلاتسمية يمكن الوصول إليها لعنصر الفيديو.
alignment'center' | 'left' | 'right'لاالمحاذاة الأفقية للمشغّل. أحد القيم: center وleft وright.
JSON
{
  "type": "video",
  "data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}