> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق وضع الدفتر في واجهة Web SQL المدمجة (`/play`)، الذي يحوّل علامة التبويب إلى تسلسل من خلايا الاستعلامات والنصوص

# وضع الدفتر في واجهة الويب

يمكن لواجهة Web SQL المدمجة (`play.html`، المتاحة عبر المسار [`/play`](/ar/concepts/features/interfaces/http) على أي منفذ HTTP في ClickHouse) أن تحوّل علامة التبويب إلى دفتر، أي تسلسل مرتب من الخلايا تكون كل منها إما استعلامًا مع نتيجته الخاصة، وإما كتلة من نص Markdown. ويتبع هذا المستند البنية نفسها المعتمدة في Jupyter وObservable وHex وDeepnote، ويخدم الغرض ذاته: جمع سلسلة من الاستعلامات، مع التحليل الذي يربط بينها، في صفحة واحدة.

يعمل وضع الدفتر على مستوى كل علامة تبويب على حدة؛ إذ يمكن أن تكون إحدى علامات التبويب دفترًا بينما تبقى أخرى محررًا عاديًا لاستعلام واحد، وتحتفظ كل علامة تبويب بدفترها الخاص حتى بعد إعادة تحميل الصفحة.

<h2 id="adding-cells">
  إضافة الخلايا
</h2>

تبدأ علامة التبويب بخلية استعلام واحدة فقط، وتبدو تمامًا مثل المحرر العادي: لا ترويسات، ولا إطار للخلايا، ولا أثر ظاهر للدفتر. وما إن يُنتج الاستعلام نتيجة، حتى يظهر أسفله زر `[+]` كبير، بألوان خافتة عن قصد كي لا يصرف الانتباه عن النتيجة. وعند النقر عليه، يتوسّع ليعرض نوعَي الخلايا اللذين يمكن إضافتهما:

* **Query** — خلية استعلام جديدة. ينتقل إليها تركيز المحرر فورًا، فيمكنك البدء بالكتابة مباشرة.
* **Text** — خلية Markdown جديدة، تُفتح في وضع التحرير.

إضافة الخلية الثانية هي ما يُفعّل وضع الدفتر في علامة التبويب تلك.

<h2 id="cell-headers">
  ترويسات الخلايا
</h2>

عند وجود خليتين أو أكثر، تحصل كل خلية على ترويسة تعرض موضعها ونوعها، مثل `1. Query` أو `2. Text`. وتعرض خلايا الاستعلام أيضًا نقطة حالة أثناء التنفيذ، ونقطة حمراء إذا فشل التنفيذ؛ أما الخلية التي اكتمل تنفيذها فلا تحمل أي علامة، إذ تظهر نتيجتها أسفلها مباشرة.

تظهر إجراءات الترويسة عند تمرير المؤشر فوق الخلية أو عند تحديدها:

| الإجراء | المعنى |
| - | - |
| `▶` | تشغيل هذه الخلية (لخلايا الاستعلام فقط) |
| `✎` | تحرير هذه الخلية: نقل المحرر إليها، أو إعادة الخلية النصية إلى نصها المصدري |
| `＋` | إدراج خلية جديدة قبل هذه الخلية؛ ويظهر خيار Query/Text نفسه ضمن السطر |
| `↑` / `↓` | نقل الخلية إلى الأعلى أو إلى الأسفل |
| `✕` | حذف الخلية |

تحتوي علامة التبويب دائمًا على خلية استعلام واحدة على الأقل، لأنها تضم المحرر المشترك، ولذلك يكون الزر `✕` معطّلًا في آخر خلية استعلام متبقية.

<h2 id="query-cells">
  خلايا الاستعلام
</h2>

لا يوجد في الصفحة إلا محرر استعلام واحد فقط، وهو المحرر الكامل المزوّد بتمييز بناء الجملة والإكمال التلقائي وحقول إدخال معلمات الاستعلام. في وضع الدفتر، يُثبَّت المحرر داخل خلية الاستعلام النشطة أيًّا كانت، ولا يظهر إلا ما دام التركيز عليه: فبمجرد أن ينتقل التركيز عنه تُطوى تلك الخلية أيضًا، وبذلك لا يعرض الدفتر الذي تقرؤه أي مناطق نصية مفتوحة على الإطلاق. ويؤدي النقر على استعلام مطويّ إلى إعادة المحرر إليه (مع نقل المحرر إليه إن كان تابعًا لخلية أخرى). أما انتقال التركيز داخل المحرر نفسه، كالانتقال إلى حقل إدخال معلمة استعلام أو إلى أحد اقتراحات الإكمال، فلا يؤدي إلى طيّه.

تعرض خلية الاستعلام المطويّة استعلامها في سطر واحد، مع تمييز بناء الجملة، واختزال كل سلسلة متتالية من المسافات البيضاء (بما في ذلك المسافات البادئة وفواصل الأسطر) إلى مسافة واحدة، وتلاشي الجزء الأخير منه تدريجيًا على اليمين إن لم يتسع له السطر. وليس للخلية المطويّة خلفية خاصة بها، لذا تبدو نصًّا عاديًا ضمن الصفحة لا مربع إدخال آخر.

ينتقل زر `Run` وسطر التقدّم وإجراءات النسخ والتنزيل من ترويسة الصفحة لتُثبَّت أسفل الاستعلام الجاري تحريره، بينه وبين نتيجته؛ أي في الموضع الذي ينتمي إليه التشغيل الذي تصفه، وحيث تتضح طريقة تشغيل تلك الخلية. وهي تابعة للمحرر، فتظهر وتختفي معه عند التركيز على الخلية ومغادرتها.

تُعرض النتائج بصورة أكثر إحكامًا في وضع الدفتر: بخط أصغر، مع تصغير الحشو داخل الخلايا بما يتناسب معه، وبجدول لا يتجاوز ارتفاعه ربع ارتفاع منفذ العرض. اسحب الحافة السفلية لأي نتيجة لتمنحها مساحة أكبر أو أصغر، تمامًا كما يُغيَّر حجم محرر الاستعلام؛ ولمحرر Markdown في الخلية النصية المقبض نفسه. والجدول نفسه هو حاوية التمرير، عموديًا وأفقيًا، لذا تقع أشرطة التمرير الرفيعة عند حوافه هو، ولا تدفع النتيجة الطويلة أو العريضة بقية الدفتر إلى أسفل الصفحة ولا تزيد عرضه، وتبقى ترويسات الأعمدة مثبّتة أعلى الجدول أثناء التمرير. ولأن الترويسة تكون حينئذٍ في أعلى الجدول تمامًا، يظهر نوع العمود أسفلها مباشرة فوق الصفوف الأولى، بدلًا من ظهوره فوقها كما هو الحال في الجدول الذي يُمرَّر مع الصفحة.

يعمل التشغيل كما كان دائمًا: يشغّل `Ctrl/Cmd+Enter` (أو زر `Run`) الاستعلام الموجود في المحرر، أي استعلام الخلية النشطة. ولا يُشغَّل إلا استعلام واحد في كل مرة لكل علامة تبويب؛ فبدء تشغيل في خلية أخرى ضمن علامة التبويب نفسها، أو الضغط على `Stop`، يُنهي التشغيل السابق.

تتبع طريقتا العرض `Logs` و`Metrics` ومقاييس الموارد في سطر التقدّم الخليةَ التي تصف نتيجتها: إذ تحتفظ كل خلية باختيارها ومقاييس مواردها الخاصة، وتعرض مفاتيح التبديل المشتركة ما أنتجته الخلية النشطة. وعند التنقل بين الخلايا، تعود السجلات والمقاييس ومقاييس الموارد الخاصة بكل خلية. وأثناء تشغيل استعلام، يبقى سطر التقدّم مع الخلية التي يعمل فيها؛ فنقل المحرر إلى خلية أخرى لكتابة الاستعلام التالي لا يمحو التقدّم المباشر ولا يعيد توجيه مفاتيح التبديل تلك إلى نتيجة الخلية الأخرى.

كذلك يتبع كلٌّ من تلوين الأعمدة والأعمدة المثبّتة و[شكل النتيجة](/ar/concepts/features/interfaces/web-ui-result-shaping)، أي الفرز وعوامل التصفية والصفحة، الخليةَ نفسها: فهي تُحدَّد على نتيجة بعينها، ولذا تلازم تلك النتيجة. ويؤدي فرز نتيجة خلية أو تصفيتها إلى إعادة تشغيل تلك الخلية، بعد نقل المحرر إليها أولًا إن كان في خلية أخرى. والخلية التي أنتج فيها `Run all` عدة جداول تتشارك جداولها اختيارًا واحدًا، وتحتفظ كل خلية باختيارها الخاص؛ ويحمل الرابط المشترك وسجل المتصفح اختيار الخلية النشطة، بينما تنتقل اختيارات الخلايا الأخرى مع خلاياها.

<h2 id="text-cells">
  الخلايا النصية
</h2>

تحتوي الخلية النصية على نص بتنسيق Markdown. أثناء تحريرها، تعرض منطقة النص الشيفرة المصدرية مع إبراز وسوم التنسيق فيها — إذ تُلوَّن العناوين والتوكيد ومقاطع الشيفرة والروابط ونقاط القوائم والاقتباسات الكتلية دون أن تُصيَّر فتختفي — فيبقى ما تحرره دائمًا هو المصدر نفسه. وتتمدد منطقة النص تلقائيًا مع ازدياد محتواها.

تؤدي مغادرة منطقة النص (بالنقر في مكان آخر، أو الضغط على `Escape` أو `Ctrl/Cmd+Enter`) إلى إنهاء التحرير، فتحلّ محلها نسخة Markdown المُصيَّرة. وللعودة إلى وضع التحرير، يكفي النقر على النص المُصيَّر.

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

يدعم هذا التنسيق العناوين، والتوكيد، والشيفرة المضمّنة والمسوَّرة، والروابط والصور، وعناوين URL المرتبطة تلقائيًا، والقوائم المرتبة وغير المرتبة، والاقتباسات الكتلية، والخطوط الأفقية، والجداول المبنية بالأنابيب. أما HTML الخام في الخلية النصية فيُفلَت بدلًا من تصييره، كما تقتصر عناوين URL للروابط والصور على `http` و`https` و`mailto` والأهداف النسبية — فالرابط النسبي العادي مثل `[guide](guide.md)` أو `![pic](images/pic.png)` يعمل كما هو متوقع، بينما يُترك كنص عادي كلٌّ من المخططات مثل `javascript:` أو `data:`، والعناوين النسبية للبروتوكول مثل `//host/...` (إذ تشير إلى أصل آخر وليست أهدافًا نسبية).

<h2 id="persistence">
  التخزين الدائم
</h2>

يُخزَّن دفتر علامة التبويب بأكمله — بكل خلاياه ومحتواها ولقطات النتائج الصغيرة — في IndexedDB إلى جانب بقية مساحة العمل، ويُستعاد عند إعادة التحميل، وفق سلوك "أفضل جهد" نفسه وحدود حجم النتائج نفسها الموضحة في [واجهة Web SQL](/ar/concepts/features/interfaces/web-sql).

يتبع عنوان URL وسجل المتصفح الخلية النشطة: إذ يحمل الجزء `#` استعلام تلك الخلية، ويتنقل زرا الرجوع والتقدم بين الخلايا (وعلامات التبويب) التي زرتها. وعند مشاركة عنوان URL لدفتر ما، يُشارَك استعلام الخلية النشطة فقط، لا الدفتر بأكمله.

يؤدي نسخ علامة تبويب إلى نسخ الدفتر بأكمله، ولكن من دون النتائج.

عند حفظ علامات التبويب بصيغة Markdown (عبر زر الحفظ في شريط علامات التبويب)، تُكتب جميع خلايا الدفتر بالترتيب: كل خلية استعلام على هيئة كتلة شيفرة مسوَّرة تليها معلماتها وجداول نتائجها، وكل خلية نصية على هيئة كتلة شيفرة مسوَّرة مع سلسلة المعلومات `markdown`. وعند تحميل مستند كهذا، تُستعاد جميع علامات التبويب بكل خلاياها؛ أما النتائج فلا تُستعاد، ولذلك تكون خلايا الاستعلام المحمَّلة غير مشغَّلة في البداية.
