diff --git a/src/content/docs/ar/basics/astro-pages.mdx b/src/content/docs/ar/basics/astro-pages.mdx new file mode 100644 index 0000000000000..b5672fe2c9844 --- /dev/null +++ b/src/content/docs/ar/basics/astro-pages.mdx @@ -0,0 +1,175 @@ +--- +title: الصفحات +description: مقدمة في صفحات أسترو +i18nReady: true +--- + +import ReadMore from '~/components/ReadMore.astro'; +import Since from '~/components/Since.astro' + +**الصفحات** هي الملفات التي تعيش في `src/pages/` من مشروع أسترو الخاص بك. إنهم مسؤولون عن التعامل مع توجيه وتحميل البيانات والتخطيط العام للصفحة لكل صفحة في موقع الويب الخاص بك. + +## ملفات الصفحات المدعومة + +يدعم أسترو أنواع الملفات التالية في المجلد `src/pages/`: +- [`astro.`](#astro-pages) +- [`md.`](#markdownmdx-pages) +- `mdx.` (مع [MDX التكامل المثبت](/ar/guides/integrations-guide/mdx/#installation)) +- [`html.`](#html-pages) +- `js` / `.ts.` (ك [النهايات](/ar/guides/endpoints/)) + +## التوجيه القائم على الملف + +يستفيد أسترو من استراتيجية توجيه تسمى **التوجيه المستند إلى الملف**. كل ملف في `src/pages/` الخاص بك يصبح نقطة نهاية على موقعك بناءً على مسار الملف الخاص به. + +يمكن لملف واحد أيضًا إنشاء صفحات متعددة باستخدام [التوجيه الديناميكي](/ar/guides/routing/#dynamic-routes). يتيح لك ذلك إنشاء صفحات حتى لو كان المحتوى الخاص بك موجودًا خارج الدليل `/pages/` الخاص، كما هو الحال في [جمع المحتوى](/ar/guides/content-collections/) أو [CMS](/ar/guides/cms/). + +اقرأ المزيد عن [التوجيه في أسترو](/ar/guides/routing/). + +### الربط بين الصفحات + +اكتب HTML القياسي [عناصر `` ](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a) في صفحات أسترو الخاصة بك للربط بصفحات أخرى على موقعك. استخدم **مسار عنوان URL المتعلق بنطاقك الجذر** كرابط خاص بك، وليس مسار ملف نسبي. + +على سبيل المثال، لربط `/https://example.com/authors/sonali` من أي صفحة أخرى `example.com`: + +```astro title="src/pages/index.astro" +Read more about Sonali. +``` + +## صفحات استرو + +تستخدم صفحات استرو `astro.` امتداد الملف ودعم نفس الميزات مثل [مكونات استرو](/ar/basics/astro-components/). + +```astro title="src/pages/index.astro" +--- +--- + + + My Homepage + + +

Welcome to my website!

+ + +``` + +يجب أن تنتج الصفحة مستند HTML كاملاً. إذا لم يتم تضمينه بشكل صريح، فسيضيف استرو الإعلان الضروري `` ومحتوى `` إلى أي مكون `astro.` موجود داخل `src/pages/` بشكل افتراضي. يمكنك إلغاء الاشتراك في هذا السلوك على أساس كل مكون عن طريق وضع علامة عليه كصفحة [جزئية](#page-partials). + +لتجنب تكرار نفس عناصر HTML في كل صفحة، يمكنك نقل العناصر `` و`` الشائعة إلى [مكونات التخطيط](/ar/basics/layouts/) الخاصة بك. يمكنك استخدام أكبر عدد ممكن أو قليل من مكونات التخطيط كما تريد. + +```astro {3} // +--- +// src/pages/index.astro +import MySiteLayout from '../layouts/MySiteLayout.astro'; +--- + +

My page content, wrapped in a layout!

+
+``` + +اقرأ المزيد عن [مكونات التخطيط](/ar/basics/layouts/) في استرو. + +## صفحات ماركداون/MDX + +يعامل استرو أيضًا أي ماركداون (`md.`) الملفات الموجودة داخل `src/pages/` كصفحات في موقع الويب النهائي الخاص بك. إذا كان [ التكامل MDX مثبتًا لديك](/ar/guides/integrations-guide/mdx/#installation)، فإنه يتعامل أيضًا مع ملفات MDX بنفس الطريقة. يتم استخدامها بشكل شائع للصفحات ذات النصوص الثقيلة مثل منشورات المدونات والوثائق. + +[مجموعات من محتوى صفحة ماركداون أو MDX](/ar/guides/content-collections/) في `src/content/` يمكن استخدامها لـ [إنشاء الصفحات ديناميكيًا](/ar/guides/routing/#dynamic-routes). + +تعد تخطيطات الصفحة مفيدة بشكل خاص لـ [ملفات ماركداون](#markdownmdx-pages). يمكن لملفات ماركداون استخدام خاصية الواجهة الأمامية الخاصة `layout` لتحديد [مكون التخطيط](/ar/basics/layouts/) الذي سيغلف محتوى ماركداون الخاص بها في مستند صفحة `...` كامل . + +```md {3} +--- +# Example: src/pages/page.md +layout: '../layouts/MySiteLayout.astro' +title: 'My Markdown page' +--- +# Title + +This is my page, written in **Markdown.** +``` + +اقرأ المزيد عن [ماركداون](/ar/guides/markdown-content/) في استرو. + +## صفحات HTML + +يمكن وضع الملفات ذات امتداد الملف `html.` في الدليل `src/pages/` واستخدامها مباشرة كصفحات على موقعك. لاحظ أن بعض ميزات استرو الرئيسية غير مدعومة في [مكونات HTML](/ar/basics/astro-components/#html-components). + +## صفحة خطأ 404 المخصصة + +بالنسبة لصفحة خطأ 404 مخصصة، يمكنك إنشاء ملف `404.astro` أو `404.md` في `/src/pages`. + +سيتم إنشاء هذا في صفحة `404.html`. معظم [خدمات النشر](/ar/guides/deploy/) ستجدها وتستخدمها. + +## أجزاء الصفحة + +

+ +:::caution +تهدف أجزاء الصفحة إلى استخدامها مع مكتبة الواجهة الأمامية، مثل [htmx](https://htmx.org/) أو [Unpoly](https://unpoly.com/). يمكنك أيضًا استخدامها إذا كنت مرتاحًا لكتابة JavaScript للواجهة الأمامية منخفضة المستوى. ولهذا السبب فهي ميزة متقدمة. + +بالإضافة إلى ذلك، لا ينبغي استخدام الأجزاء إذا كان المكون يحتوي على أنماط أو نصوص برمجية محددة النطاق، حيث سيتم تجريد هذه العناصر من مخرجات HTML. إذا كنت بحاجة إلى أنماط محددة، فمن الأفضل استخدام صفحات عادية وغير جزئية إلى جانب مكتبة الواجهة الأمامية التي تعرف كيفية دمج المحتويات في الرأس. +::: + +الأجزاء الجزئية هي مكونات صفحة موجودة ضمن `src/pages/` وليس المقصود منها عرضها كصفحات كاملة. + +مثل المكونات الموجودة خارج هذا المجلد، لا تتضمن هذه الملفات تلقائيًا إعلان `` ولا أي محتوى `` مثل الأنماط والبرامج النصية المحددة النطاق. + +ومع ذلك، ونظرًا لوجودها في الدليل `src/pages/` الخاص، فإن HTML الذي تم إنشاؤه متاح على عنوان URL المطابق لمسار الملف الخاص به. يسمح هذا لمكتبة العرض (مثل htmx وStimulus وjQuery) بالوصول إليها على العميل وتحميل أقسام HTML ديناميكيًا على الصفحة دون تحديث المتصفح أو التنقل في الصفحة. + +توفر الأجزاء الجزئية، عند دمجها مع مكتبة العرض، بديلاً لـ [جزر استرو](/ar/concepts/islands/) وعلامات [` + + +
+
Target here
+ + +
+``` + +يجب أن يكون الجزء `astro.` موجودًا في مسار الملف المقابل، ويتضمن تصديرًا يحدد الصفحة على أنها جزئية: + +```astro title="src/pages/partials/clicked.astro" {2} +--- +export const partial = true; +--- +
I was clicked!
+``` + +راجع [وثائق htmx](https://htmx.org/docs/) لمزيد من التفاصيل حول استخدام htmx.