هذا الدليل يشرح كيف تكتب مقالات الرياضيات والهندسة من داخل أوبسيديان (Obsidian) لتحصل على التصميم الاحترافي الجديد تلقائياً بمجرد النشر في Quartz.
١. مكان حفظ المقال (شرط أساسي)
لكي يتم تطبيق التصميم الجديد واللغة العربية بشكل صحيح وتلقائي، يجب أن تحفظ المقال أو تنقله إلى أحد المجلدات التالية داخل مجلد content:
math أو رياضيات
engineering أو هندسة
بمجرد وضع الملف في أحد هذه المجلدات، سيقوم Quartz بتفعيل التصميم الجديد بالكامل.
٢. العناوين والنصوص
اكتب النصوص والعناوين بشكل طبيعي جداً باستخدام الـ Markdown المعتاد.
# عنوان رئيسي (سيتم وضع الخط الأصفر أسفله تلقائياً ويأخذ نوع الخط المخصص).
## عنوان فرعي
لكتابة خط فاصل مزخرف (الخط الذي يتوسطه المعين ◆)، اكتب فقط ثلاث شرطات ---.
٣. المعادلات الرياضية (LaTeX)
قاعدة ذهبية: LaTeX لا يعمل داخل HTML
محرك Quartz يعالج الـ LaTeX ($...$ و $$...$$) فقط في سياق الماركدوان العادي أو داخل Callouts.
إذا وضعت LaTeX داخل <div> أو أي وسم HTML — لن يتم تحويله وسيظهر كنص خام!
معادلة معزولة (Block) — وسط النص:
$$\lim_{x \to 0} \frac{\sin x}{x} = 1$$
x→0limxsinx=1
معادلة مضمنة (Inline):
استخدم علامة الدولار المفردة وسط النص: $x^2 + 1$ تُعطيك x2+1.
معادلة طويلة داخل صندوق (الطريقة المعتمدة):
التوافق مع شاشات الجوال — تلقائي
أي معادلة داخل Callout تتمتع بالتمرير الأفقي الناعم على شاشات الجوال تلقائياً.
المعادلة تبقى على سطر واحد وتُمرِّر يميناً ويساراً بدلاً من أن تنكسر لأسطر.
<div class="epq"> <p>نص الاقتباس هنا.</p> <div class="att">— اسم المؤلف</div></div>
لا تترك أسطراً فارغة داخل أكواد HTML
محرك Quartz يتعامل مع الأسطر الفارغة داخل HTML على أنها بداية فقرة جديدة ويغلفها في <p> مما يكسر التنسيق. اكتب HTML في كتلة متصلة بدون أسطر فارغة داخلها.
٦. الرسومات التفاعلية (Canvas)
الموقع يتضمن سكربت math-canvas.js يرسم رسومات بيانية تفاعلية على عناصر <canvas>. لإضافة رسم تفاعلي جديد:
مثال ١ (f(x) = x²): Canvas ID = ex1C، Slider ID = ex1S
مثال ٢ (ثقب في الدالة): Canvas ID = ex2C، Slider ID = ex2S
مثال ٣ (sin(x)/x): Canvas ID = ex3C، Slider ID = ex3S
مثال ٤ (نهاية غير موجودة): Canvas ID = ex4C، Slider ID = ex4S
الجوار المفرغ: Canvas ID = nlC
قاعدة التسمية
كل Canvas له ID فريد. أضف مثالاً جديداً باستخدام IDs لم تُستخدم من قبل (مثل ex5C, ex5S). لا تكرر نفس الـ ID في صفحتين مختلفتين.
٧. أمثلة كاملة على هيكل مقال
مثال أ — مقال رياضيات نظري (بدون رسومات تفاعلية)
---title: مبرهنة القيمة الوسطىdescription: شرح مبرهنة القيمة الوسطى في التفاضل والتكامل مع أمثلة تطبيقية---# مبرهنة القيمة الوسطىنص مقدمة المقال هنا...---## التعريف الرسمي> [!example] مبرهنة القيمة الوسطى (Cauchy)> > $$\exists\, c \in (a,b) \;\text{s.t.}\; f'(c) = \frac{f(b) - f(a)}{b - a}$$إذا كانت الدالة $f$ مستمرة على $[a, b]$ وقابلة للاشتقاق على $(a, b)$...---## مثال تطبيقي> [!warning] تحذير> > المبرهنة لا تنطبق إذا لم تكن الدالة مستمرة.> [!tip] فكرة رئيسية> > القيمة $c$ موجودة دائماً لكنها قد لا تكون وحيدة.
مثال ب — مقال رياضيات تفاعلي (مع Canvas)
---title: النهايات — مقدمة بصريةdescription: استكشاف مفهوم النهايات بشكل بصري تفاعلي---# النهايات — مقدمة بصريةنص المقدمة...---## مثال تفاعليالشريط التالي يوضح كيف تتغير قيمة $f(x) = x^2$ عند اقتراب $x$ من النقطة $c = 2$.<div class="dw"> <div class="dtit">الشريط الأصفر = هامش ε في المحور الصادي · الشريط الأخضر = نطاق δ في المحور السيني</div> <canvas id="ex1C" width="760" height="350" class="dc"></canvas> <div class="cr"><span class="cl">الهامش ε</span><input type="range" id="ex1S" min="0.05" max="4" step="0.05" value="2"><span class="cn" id="ex1V">2.00</span></div> <div class="ir"> <div class="ic"><div class="icl">هامش الخطأ في المخرج ε</div><div class="icv" style="color:var(--amber)" id="ex1Ev">2.0000</div></div> <div class="ic"><div class="icl">النطاق المناسب في المدخل δ</div><div class="icv" style="color:var(--teal)" id="ex1Dv">0.0000</div></div> </div></div>> [!note] ماذا تلاحظ؟> > كلما قلّلت ε، يتقلص δ بشكل متناسب — هذا هو جوهر تعريف النهاية.---## التعريف الرسمي> [!example] التعريف الكامل — فايرشتراس> > $$\lim_{x \to c} f(x) = L \iff \forall\,\varepsilon > 0,\;\exists\,\delta > 0 \;\text{s.t.}\; 0 < |x - c| < \delta \Rightarrow |f(x) - L| < \varepsilon$$
ملاحظة عن الـ Frontmatter
تأكد من وجود frontmatter واحد فقط في بداية الملف (بين --- و ---). تكرار الـ frontmatter سيظهر كنص عادي في الصفحة.
٨. التحكم بخصائص المقال (Frontmatter)
بإمكانك التحكم بخصائص المقال (مثل تثبيته في الصفحة الرئيسية أو إغلاق التعليقات عليه) مباشرةً من خلال الـ Frontmatter (الخصائص/Properties) أعلى ملف الأوبسيديان. يمكنك إضافة هذه القيم عبر واجهة Properties في أوبسيديان أو كتابتها يدوياً بين علامتي ---:
تثبيت المقال في الصفحة الرئيسية
لجعل المقال يظهر دائماً في أعلى قائمة المقالات في الصفحة الرئيسية (Pinned)، أضف خاصية pinned من نوع Checkbox واجعل قيمتها true:
---title: عنوان المقالpinned: true---
إغلاق أو منع التعليقات
إذا كنت لا ترغب في ظهور صندوق التعليقات أسفل مقال معين (كالصفحات الثابتة أو مقالات لا تحتاج لنقاش)، أضف خاصية comments من نوع Checkbox واجعل قيمتها false:
---title: عنوان المقالcomments: false---
يمكنك طبعاً دمج هذه الخصائص معاً بسهولة:
---title: مقال مهم ومغلق للتعليقاتpinned: truecomments: false---
٤. الأسئلة والحلول (تمارين تفاعلية)
أسهل طريقة لعمل أسئلة وحلول مخفية داخل المقالات هي استخدام عنصري الـ HTML المدمجين
و داخل ملف الـ Markdown.
مثال مباشر:
## سؤالإذا كان لدينا عملة عادلة ما احتمال ظهور صورتين متتاليتين عند رميها مرتين<details class="exercise"><summary>إظهار الحل</summary>عدد النواتج الممكنة = 4- صورة صورة- صورة كتابة- كتابة صورة- كتابة كتابةالحالة المطلوبة واحدة فقط.إذا:$P = \frac{1}{4}$</details>
ستحصل على صندوق منظم يحتوي على السؤال مع زر يمكن للمستخدم الضغط عليه لإظهار الحل.
نصيحة لمستخدمي Obsidian (Templater)
يمكنك إنشاء Template داخل قالب أوبسيديان لاختصار هذه العملية عبر اختصار كيبورد (Hotkey) ليكون القالب كالتالي:
يفيد هذا الأسلوب كثيرا في الأسئلة الرياضية لأنه مدعوم تلقائيا في Quartz و GitHub Pages دون أي إضافات برمجية خارجية معقدة.
📝 دليل نشر مقال ثنائي اللغة
بنية الملفات الجديدة
المقال الآن يُكتب كاملاً في ملف واحد فقط. لكي يتمكن الموقع من التفريق بين المحتوى العربي والإنجليزي، نستخدم وسوم HTML بسيطة كالتالي:
<div lang="ar" dir="rtl"># عنوان المقالاكتب هنا المحتوى العربي بالكامل...سيظهر هذا المحتوى فقط عندما تكون لغة الموقع عربية.</div><div lang="en" dir="ltr"># English TitleWrite your English content here...This content will only appear when the site is switched to English.</div>
ملاحظة: القصائد في مجلد poetry/ لا تحتاج هذه الوسوم، وسيظهر للمستخدم الأجنبي رابط مباشر لترجمة القصيدة عبر Google Translate.
Frontmatter المطلوب
لا تحتاج لإنشاء ملفين بعد الآن. الملف العربي الأساسي سيحتوي على خصائص اللغتين معاً:
---title: "عنوان المقال بالعربية"title_en: "Article Title in English" # اختياري - يظهر عند التبديل للإنجليزية في الشريط العلويdescription: "وصف المقال"tags: - ثقافةcreated: 2024-01-15---
خطوات النشر من Obsidian (حصرياً)
1. إنشاء المقال
أنشئ ملف Markdown جديد في المجلد المناسب داخل Obsidian.
أضف الـ frontmatter المطلوب.
ضع وسم <div lang="ar" dir="rtl"> واكتب تحته المحتوى العربي، ثم أغلقه بـ </div>.
إذا أردت إضافة ترجمة، ضع وسم <div lang="en" dir="ltr"> واكتب المحتوى الإنجليزي، ثم أغلقه.
3. النشر عبر Obsidian Git Plugin
هذه هي الطريقة الوحيدة والمعتمدة للنشر لضمان الاستقرار وسهولة الاستخدام:
افتح Obsidian Command Palette (Ctrl+P).
اكتب “Git” واختر Obsidian Git: Commit all changes.
أدخل رسالة توضح التحديث (مثلاً: إضافة مقال ثنائي اللغة).
افتح Command Palette مرة أخرى واختر Obsidian Git: Push.
سيتم رفع الملفات مباشرة وسيتم تحديث الموقع تلقائياً عبر المزامنة.
التحقق قبل النشر
تم تضمين المحتوى العربي داخل <div lang="ar" dir="rtl"> والمحتوى الإنجليزي داخل <div lang="en" dir="ltr">.
الـ frontmatter يحتوي title (اختيارياً title_en).
الصور والروابط تعمل وتستخدم الصيغة المدعومة في أوبسيديان.
بمجرد الانتهاء من النشر وإجراء Push، يمكنك التحقق من الرابط المباشر للمقال وتجربة زر EN للتأكد من تبديل المحتوى اللحظي بدون إعادة تحميل الصفحة.