موقع لمشروع لحاف.
تم تصميم هذا الموقع باستخدام Astro و MDX و I18Next. يتم استضافته على صفحات CloudFlare. إذا كنت ترغب في التعرف أكثر على Astro ، فيمكنك قراءة وثائقها.
إذا تعثرت أو لديك أسئلة ، فيرجى الانضمام إلينا في موضوع #Website على خادم Discord الخاص بنا.
أبسط محرر لاستخدامه هو Visual Studio Code (VSCode) ، لأنه يحتوي على ملحقات لغة رسمية لـ Astro و MDX. عندما تفتح المستودع في VSCODE ، سترى نافذة منبثقة في الزاوية اليمنى السفلية تقدم لتثبيت بعض الامتدادات الموصى بها. يمكنك أيضًا كتابة @recommended في شريط البحث التمديد لتصفح الامتدادات الموصى بها وتثبيت تلك التي تريدها يدويًا.

إذا كنت تفضل عدم استخدام VSCODE ، فيمكنك استخدام أي محرر يدعم مجموعة فرعية من الأدوات التالية ، بناءً على ما تفعله:
كما ذكرنا سابقًا ، تم تصميم موقع الويب باستخدام Astro ، الذي تم كتابته في TypeScript ، لذلك ستحتاج إلى وقت تشغيل JavaScript المتوافق مع Node.js من أجل بناء وتشغيله للتطوير. إذا قمت بتقديم مساهمة بسيطة فقط ، مثل MOD غير متوافق أو منشور مدونة ، فإن إعداد بيئة تطوير ليس ضروريًا: سيتم إنشاء إصدار معاينة من الموقع عند إرسال طلب سحب لضمان أن كل شيء يعمل كما هو متوقع.
Node.js هو وقت تشغيل جافا سكريبت منصة. يمكن تثبيته مباشرة ، أو من المحتمل أن يكون متاحًا لمدير الحزمة المفضل لديك.
نستخدم PNPM كمدير حزمة Node.js. يمكن تثبيته بالطرق التالية:
npm install -g pnpmلمزيد من الخيارات ، راجع مستندات PNPM.
داخل المشروع ، قم بتثبيت جميع الحزم المطلوبة باستخدام PNPM:
pnpm i يتضمن Astro خادم تطوير يعمل تلقائيًا على إعادة تحميل نفسه أثناء تغيير الملفات داخل المشروع. لبدء ذلك ، قم بتشغيل pnpm dev :
> pnpm dev
15:05:32 [types] Generated 1ms
astro v4.15.2 ready in 702 ms
┃ Local http://localhost:4321/
┃ Network use --host to expose
15:05:32 watching for file changes...
يقوم Dev Server بإنشاء صفحات أثناء زيارتها لتقليل وقت البدء ، وبالتالي فإن أدائه أسوأ من الموقع المبني بالكامل.
لبناء نسخة كاملة من الموقع النهائي:
pnpm build
سيتم بناء الموقع في المجلد dist/ المجلد. يعد بناء الموقع وسيلة مفيدة للتحقق من أنك لم تكسر أي شيء دون ملاحظة.
يمكنك معاينة الموقع المبني باستخدام pnpm astro preview ، ولكن في معظم الحالات تكون الميزة الوحيدة التي يتمتع بها هذا على خادم Dev هي الأداء.
إذا كنت بحاجة إلى اختبار الوظائف الخاصة بصفحات CloudFlare (مثل أي شيء في functions/ الدليل) ، فيمكنك معاينة الموقع باستخدام CloudFlare's Wrangler Clito محاكاة نشر صفحات CloudFlare.
أولاً ، تثبيت Wrangler
pnpm install -g wranglerبناء الموقع:
pnpm build قم بتشغيل مجلد dist المخرج باستخدام Wrangler:
wrangler pages dev dist
على عكس خادم Dev's Astro ، لا يمكن لـ Wrangler سوى معاينة موقع تم تصميمه بالكامل.
للحصول على شرح مفصل لكيفية وضع المستودع ، انظر ARCHITECTURE.md
تعليمات لجعل أنواع مختلفة من المساهمات المشتركة.
افتح ملف incompatible-mods.json في public/api/v1/incompatible-mods.json وأضف إدخالًا جديدًا في أسفل القائمة.
يجب أن يحتوي إدخالك على الحقول التالية:
"ids": - قائمة معرفات وزارة الدفاع المتأثرة."Name": - الاسم الكامل للوزارة المتأثرة."type": - نوع عدم التوافق. يمكن أن تكون واحدة مما يلي:"GAME" - تحطم أو كسر لعبة الفانيليا."OTHERS" - يكسر واحد أو أكثر من التعديلات الأخرى."SELF" - يكسر نفسه."WORKAROUND" - لديه حل يسمح له بالعمل بشكل صحيح."Status": - مدى قرب عدم التوافق. يمكن أن تكون واحدة مما يلي:"BLOCKED" - يدرك مؤلفو MOD المشكلة ، ولكن يتم حظر الإصلاح بعامل خارجي."IN_PROGRESS" - يقوم مؤلفو MOD بتنفيذ إصلاح."NO_ANSWER" - تم الإبلاغ عن القضية ، لكن لم يرد مؤلفو MOD."ON_HOLD" - ينتظر مؤلفو وزارة الدفاع تنفيذ أو إطلاق الإصلاح."UNKNOWN" - لم يتم الإبلاغ عن المشكلة إلى مؤلفي وزارة الدفاع ، أو لا يمكنك العثور على تقرير."WONT_FIX" - تم الإبلاغ عن المشكلة ، لكن مؤلفي وزارة الدفاع يرفضون إصلاحه."tracking": - رابط للتقرير يتتبع عدم التوافق ، على سبيل المثال ، مشكلة github. ضبط على "UNKNOWN" إذا كنت لا تعرف."notes": (اختياري) - أي ملاحظات أخرى ، على سبيل المثال ، حلول معروف. قم بإنشاء ملف Markdown جديد في src/pages/en/blog ، والذي تم تسميته مع التاريخ الحالي وإصدار مختصر من العنوان. يجب أن يكون التاريخ بالتنسيق yyyy-mm-dd ، ويجب أن يكون العنوان في حالة صغيرة وفصله عن طريق الواصلة ( - ) ، على سبيل المثال ، 2024-03-09-example-post.md .
في الجزء العلوي من الملف ، تحتاج إلى إضافة المادة الأمامية ، والتي يتم كتابة البيانات الوصفية في Yaml. تبدو المسألة الأمامية لنشر المدونة مثل هذا:
---
title : " An Example Title " # The full title of the post
date : 2024-09-03 20:00:00 -00:00 # The date, time, and timezone that the post was written, relative to UTC. It is best practice to give the time in UTC and use an offset of -00:00, as shown.
authors : # A list of one or more authors
- Pineapple
layout : /src/layouts/Post.astro # This tells Astro what layout to use for the page, and should always be the same.
--- اكتب فقرة قصيرة قصيرة ، ثم أدخل سطرين ، ضع <!-- MORE --> ، ثم سطرين آخرين. على سبيل المثال:
A succinct first paragraph.
<!-- MORE -->
More text here.
هذا يخبر الموقع الإلكتروني بما يجب تضمينه في المعاينة القصيرة التي تسير على الصفحة الرئيسية وفي قائمة منشورات المدونة. من هنا فصاعدًا ، يمكنك الاستمرار في كتابة تخفيضات إلى محتوى قلبك. يتم أيضًا دعم بناء الجملة في كتل التعليمات البرمجية.
إذا كنت جزءًا من أحد فرق مطوري لحاف أو مجتمع مجتمع ، فمن المحتمل أن يكون لديك بطاقة على صفحة قوائم فريق موقع الويب. تم تصميم البيانات الموجودة داخل البطاقات في هذه الصفحة من ملف TeamData.mjs في src/data/ .
كل عضو في الفريق لديه كائن في هذا الملف مع بيانات عنها. ويستند القسم (القسم) في الصفحة التي تم إدراجها فيها على الفرق التي تقوم بها في GitHub.
يمكنك تغيير البيانات التالية لتخصيص بطاقتك:
name: - الاسم الموجود في الجزء العلوي من بطاقتك. يمكن أن يكون أي شيء تريده.discord: - اسم المستخدم الخاص بك.github: - اسم المستخدم الخاص بك. يستخدم هذا لتحديد الفرق التي تقوم بها في GitHub.avatar: - هذا عنوان URL لأي صورة تريدها. للحصول على أفضل النتائج ، يجب أن يكون مربعًا وليس كبيرًا جدًا. يمكنك وضع ملف في public/assets/team/images لاستضافته على الموقع الإلكتروني ، أو استخدام أي عنوان URL آخر للصور تريده.description: (اختياري) - جملة أو فقرة صغيرة حول من أنت.links: (اختياري) - قائمة بالروابط إلى صفحات الويب المختلفة أو ملفات تعريف الوسائط الاجتماعية. يتم تمثيل كل رابط بالكائن التالي:icon : رمز يمثل الرابط. يمكنك الاختيار من بين Icon Sets Coreui Brands ( cib: :) أو أيقونات تصميم المواد ( mdi: :) ، أو رموز المواد ( material-symbols: :) ؛ أو استخدم أيقوناتنا المخصصة لـ Curseforge ( curseforge ) و modrinth ( modrinth-small ). عند استخدام أيقونة من مجموعة أيقونة (على عكس واحدة مخصصة) ، يجب عليك بادئة اسم الأيقونة باسم مجموعة الأيقونات ، على سبيل المثال ، cib:youtube لاستخدام أيقونة youtube من Coreui Brands.url : الرابط إلى صفحة الويب.systemMembers: (اختياري) - هذا الحقل مخصص لأنظمة الجمع لعرض كل من أعضائها. لديها بعض القيم الممكنة:"---" سوف يظهر لك كنظام صيادي مع أعضائك مخفيين.name: اسم عضو النظام.icon: - الصورة الرمزية للعضو. يمكنك استخدام أي عنوان URL الذي تريده ، أو استضافة صورة على هذا الموقع في public/assets/team/images/<your-system-name>/ .