أهلًا بك في ويكي ArabDev

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

صُمِّمت المنصة أولًا لمجتمع المطورين الناطقين بالعربية. تعمل الواجهة كلها بالعربية من اليمين إلى اليسار، وبالإنجليزية من اليسار إلى اليمين، ويمكن للمنشور الواحد أن يجمع اللغتين معًا، إذ تختار كل فقرة اتجاهها بنفسها.

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

يُفتح الويكي في تبويب مستقل في المتصفح لتبقيه بجانب ArabDev أثناء عملك. استخدم مربع البحث في الأعلى (أو اضغط /) للانتقال إلى أي موضوع.

ابدأ بهذه المقالات

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

تُعرض كتل الكود دائمًا من اليسار إلى اليمين أيًّا كانت اللغة المحيطة بها. وتُعزل الوسوم والإشارات عن النص المحيط، فتبقى @layla_dev مقروءة حتى في منتصف جملة عربية.

المقالة الرئيسية: كتابة المنشورات. انظر أيضًا: سهولة الوصول واللغات.

هل تعلم…

  • …أن الصفحة الرئيسية تعرض 20 منشورًا بالضبط في كل صفحة، مع أرقام للصفحات بدل التمرير اللانهائي؟ (الصفحة الرئيسية للمنشورات)
  • …أن الإعلان لا يظهر إلا بعد كل 8 منشورات، وأنه يُختار حسب الصفحة واللغة فقط، ولا يعتمد أبدًا على بياناتك الشخصية؟ (الإعلانات في ArabDev)
  • …أن كل صورة ترفعها يُعاد ترميزها، فتُزال منها البيانات المخفية مثل موقع التصوير الجغرافي؟ (الخصوصية والأمان)
  • …أن كتابة ## ثم مسافة في المحرر تحوّل السطر إلى عنوان؟ (مرجع التنسيق)
  • …أن #js و#JavaScript و#javascript تنتهي كلها إلى وسم واحد؟ (الوسوم والاهتمامات)
  • …أنك تستطيع إخفاء نفسك من البحث والاقتراحات مع إبقاء ملفك متاحًا عبر الرابط المباشر؟ (الإعدادات)
  • …أن ArabDev برمجية حرة بموجب رخصة GNU GPL، فيستطيع أي شخص أن يقرأ بنفسه كيف تتعامل مع البيانات؟ (المساهمة والترخيص)

تصفح حسب القسم

عن هذا الويكي

يوثّق هذا الويكي الإصدار 1.0.0 من ArabDev. عندما يغيّر إصدار جديد طريقة عمل شيء ما، تُحدَّث المقالة المعنية ويُذكر التغيير في ملاحظات الإصدار.

الويكي مجموعة صفحات ثابتة: لا حسابات فيه، ولا تعليقات، ولا أدوات تحليل أو تتبّع. الشيء الوحيد الذي يتذكره هو اختيارك بين الوضع الفاتح والداكن، ويتشاركه مع ArabDev عبر التخزين المحلي في متصفحك.

البداية

ترافقك هذه المقالة في دقائقك العشر الأولى على ArabDev: إنشاء الحساب، وتسجيل الدخول، وخطوات الإعداد الأربع التي تظهر في زيارتك الأولى، وما تفعله بعدها.

إنشاء حساب

افتح arabdev.site واختر إنشاء حساب. ستحتاج إلى أربعة أشياء:

  1. اسم المستخدم: المعرّف الفريد الذي يشير إليك به الآخرون (مثل @layla_dev).
  2. البريد الإلكتروني: يُستخدم لتسجيل الدخول واستعادة كلمة المرور، ولا يظهر أبدًا في ملفك الشخصي.
  3. كلمة المرور: تكتبها مرتين للتأكد من عدم وجود خطأ مطبعي.
  4. تُحفظ لغة الواجهة التي تستخدمها عند التسجيل تفضيلًا مبدئيًا لك، ويمكنك تغييرها في أي وقت.

أثناء كتابتك لاسم المستخدم يتحقق ArabDev من توفره، فيعرض علامة صح خضراء أو رسالة مثل «اسم المستخدم هذا مستخدم بالفعل.». وعندما تغادر حقل البريد يتحقق أيضًا من أن العنوان غير مسجل بحساب آخر.

قواعد اسم المستخدم

  • من 3 إلى 20 حرفًا.
  • حروف إنجليزية (a–z) وأرقام (0–9) والشرطة السفلية (_) فقط.
  • يجب أن يبدأ بحرف.
  • لا يفرّق بين الحروف الكبيرة والصغيرة: يُحفظ Layla_Dev على أنه layla_dev.
  • بعض الأسماء محجوزة لأن الموقع نفسه يستخدمها، مثل admin وapi وsettings وexplore وsearch وnotifications وprivacy وsupport وarabdev.

الاسم الظاهر منفصل عن اسم المستخدم ويمكن كتابته بأي لغة، بما فيها العربية. راجع الملفات الشخصية.

قواعد كلمة المرور

  • 8 أحرف على الأقل و128 حرفًا على الأكثر.
  • يجب أن تحتوي على حرف واحد على الأقل ورقم واحد على الأقل.
  • يجب ألا تكون مكررة أكثر من اللازم (تُرفض كلمة المرور المكوّنة من ثلاثة رموز مختلفة أو أقل).

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

نصيحة

عبارة مرور طويلة من أربع أو خمس كلمات غير مترابطة مع رقم تكون قوية وسهلة التذكّر. ومدير كلمات المرور أفضل من ذلك.

تسجيل الدخول

سجّل الدخول ببريدك الإلكتروني وكلمة المرور. إنشاء الحساب يسجّل دخولك تلقائيًا، فلن تحتاج إلى هذه الصفحة إلا عند عودتك.

  • خيار إبقائي مسجلًا للدخول (مفعّل افتراضيًا) يبقيك مسجلًا على هذا المتصفح لمدة تصل إلى 30 يومًا.
  • إذا ألغيت تفعيله تنتهي جلستك عند إغلاق المتصفح، وفي كل الأحوال بعد 12 ساعة.
  • إذا أخطأت في البريد أو كلمة المرور يكتفي ArabDev بقول «البريد الإلكتروني أو كلمة المرور غير صحيحة.»، ولا يكشف أبدًا إن كان البريد مسجلًا أم لا.
  • بعد 10 محاولات خلال دقيقة واحدة من الشبكة نفسها يتوقف تسجيل الدخول قليلًا. انتظر لحظة ثم حاول مجددًا.

نسيت كلمة المرور؟ راجع استعادة كلمة مرور منسية.

الزيارة الأولى: تجهيز ملفك الشخصي

في أول مرة تدخل فيها بعد إنشاء الحساب يفتح ArabDev نافذة إعداد قصيرة من أربع خطوات، فيها شريط تقدّم وعدّاد مثل «الخطوة 2 من 4». في كل خطوة زر تخطٍّ، وزر × في الزاوية يغلق النافذة نهائيًا. ويمكنك إكمال ما تخطيته لاحقًا من الإعدادات.

الخطوة 1: الصورة الشخصية

اختر رفع صورة ثم حدد صورة. تظهر معاينة دائرية فورًا أثناء رفعها، ويمكنك استبدالها أو إزالتها قبل المتابعة. الصيغ المقبولة: JPEG وPNG وWebP وGIF، بحجم لا يتجاوز 5 ميغابايت وأبعاد لا تقل عن 96×96 بكسل.

الخطوة 2: اسم المستخدم والاسم الظاهر والنبذة

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

الخطوة 3: الاهتمامات

اختر المواضيع التي تعمل بها، مثل Python أو React أو DevOps أو تصميم الواجهات. يمكنك اختيار أي عدد، واختيار ثلاثة على الأقل يعطي اقتراحات أدق. تظهر المواضيع المختارة بعلامة صح وخلفية ملوّنة.

الخطوة 4: مطورون لتتابعهم

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

ماذا بعد؟

  1. اقرأ الصفحة الرئيسية وتنقّل بين تبويبات «لك» و«المتابَعون» و«الأحدث».
  2. اكتب منشورك الأول: اختر منشور جديد من قائمة التنقل. راجع كتابة المنشورات.
  3. زر صفحة استكشاف لتجد المنشورات الرائجة والوسوم الشائعة ومزيدًا من المطورين.
  4. راجع إعدادات الخصوصية وتفضيلات الإشعارات.
  5. اختر الوضع الفاتح أو الداكن ولغتك المفضلة من الإعدادات ← المظهر.

التنقل في المنصة

حجم الشاشةالتنقل
الشاشات الكبيرة (1200 بكسل فأكثر)عمود تنقل بعناوين نصية (الرئيسية، استكشاف، الإشعارات، المحفوظات، الملف الشخصي، الإعدادات، وزر «منشور جديد»)، ثم العمود الرئيسي، ثم عمود جانبي فيه مطورون مقترحون وإعلان واحد والوسوم الشائعة.
الأجهزة اللوحية (900–1199 بكسل)عمود ضيق من الأيقونات مع تلميحات، ثم العمود الرئيسي، ويُخفى العمود الجانبي.
الهواتف (أقل من 900 بكسل)شريط سفلي فيه الرئيسية واستكشاف وزر «إنشاء» الأحمر والإشعارات والملف الشخصي. والبحث هو العدسة في الأعلى.

صورتك في الزاوية العلوية تفتح قائمة الحساب، وفيها روابط تعديل الملف والمسودات والمحفوظات والإعدادات، ومفاتيح سريعة للمظهر واللغة، وروابط هذا الويكي وسياسة الخصوصية وملاحظات الإصدار، وتسجيل الخروج.

الملفات الشخصية

لكل عضو ملف شخصي عام على العنوان /u/username، مثل /u/layla_dev. يعرّف الملف بصاحبه، وبما يعمل عليه، وبما كتبه.

ما الذي يعرضه الملف الشخصي

  • الصورة الشخصية، أو الحروف الأولى من الاسم الظاهر إن لم تكن هناك صورة.
  • الاسم الظاهر واسم المستخدم.
  • شارة يتابعك عندما يكون هذا الشخص من متابعيك.
  • النبذة والموقع الجغرافي والموقع الإلكتروني إن وُجدت.
  • شهر الانضمام وسنته.
  • أعداد يتابع والمتابِعون والمنشورات. أول اثنين يفتحان القائمتين الكاملتين، ما لم يجعلهما صاحبهما خاصتين.
  • الاهتمامات في صورة شارات، تفتح كل واحدة منها صفحة الوسم المطابق.
  • زر متابعة في ملفات الآخرين، أو تعديل الملف في ملفك أنت.

تبويبات الملف الشخصي

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

تُقسَّم التبويبات الثلاثة إلى صفحات من 20 عنصرًا، مع أرقام الصفحات في الأسفل.

تعديل ملفك الشخصي

افتح تعديل الملف من ملفك الشخصي أو من قائمة الحساب. المحرر نفسه موجود أيضًا في الإعدادات ← الملف الشخصي.

الحقلالحدودملاحظات
الاسم الظاهرمن 1 إلى 50 حرفًابأي لغة، وتُحذف المسافات في بدايته ونهايته.
اسم المستخدممن 3 إلى 20 حرفًاالقواعد نفسها المتبعة عند التسجيل، وتغييره يغيّر رابط ملفك.
النبذةحتى 280 حرفًااختيارية، وتُحفظ فيها الأسطر الجديدة.
الموقع الجغرافيحتى 60 حرفًااختياري ونص حر، ولا يستخدمه ArabDev لأي غرض آخر.
الموقع الإلكترونيحتى 200 حرفاختياري، وإن لم تكتب https:// تُضاف تلقائيًا.
الاهتماماتأي من المواضيع الـ25تُستخدم لترتيب صفحتك الرئيسية واقتراحاتك. راجع الوسوم والاهتمامات.

يبقى زر حفظ معطلًا حتى تغيّر شيئًا. وإذا كانت في حقل مشكلة، كاسم مستخدم محجوز، تظهر الرسالة أسفل ذلك الحقل.

تغيير اسم المستخدم

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

الصور الشخصية

  • الصيغ: JPEG أو PNG أو WebP أو GIF.
  • الحجم: حتى 5 ميغابايت.
  • الأبعاد: 96×96 بكسل على الأقل، و8000 بكسل على الأكثر لأي ضلع.
  • يقص ArabDev الصورة مربعًا من منتصفها، ويصغّرها إلى 400×400 بكسل، ويحفظها بصيغة WebP. وتصبح صور GIF المتحركة ثابتة.
  • إعادة الترميز تزيل البيانات المخفية مثل نوع الكاميرا والموقع الجغرافي.
  • عند استبدال الصورة أو إزالتها يُحذف الملف السابق من التخزين.

قائمتا المتابِعين والمتابَعين

افتح القائمتين من الأعداد في الملف الشخصي، أو اذهب إلى /u/username/followers و/u/username/following. يظهر كل شخص في بطاقة فيها نبذته واهتماماته وزر المتابعة. وإذا أوقف أحدهم خيار إظهار قائمتي المتابِعين والمتابَعين يرى الآخرون رسالة «هذا الحساب يُبقي قائمة متابعاته خاصة.»، بينما يرى صاحب الحساب قائمتيه دائمًا.

التصنيفات: الحساباتالمجتمع

الصفحة الرئيسية للمنشورات

الصفحة الرئيسية هي أول ما تراه بعد تسجيل الدخول. فيها ثلاثة تبويبات، وطريقة سريعة لبدء منشور، وصفحات مرقّمة بدل التمرير اللانهائي.

التبويبات الثلاثة

لك

التبويب الافتراضي، ويعرض كل منشورات ArabDev مرتبة هكذا:

  1. تُجمَّع المنشورات حسب يوم نشرها (بالتوقيت العالمي المنسق)، والأيام الأحدث أولًا.
  2. داخل اليوم الواحد تأتي أولًا منشورات من تتابعهم، ثم المنشورات الموسومة بأحد اهتماماتك، ثم البقية.
  3. داخل كل مجموعة من هذه يأتي المنشور الأحدث أولًا.

بهذا تبقى الصفحة متجددة، ولا يُدفن من اخترت متابعتهم والمواضيع التي تهمك تحت بقية منشورات اليوم. لا يُخفى أي منشور، فتبويب «لك» يغيّر الترتيب فقط.

المتابَعون

منشوراتك ومنشورات من تتابعهم فقط، مضافًا إليها ما أعاد هؤلاء نشره. إذا أعاد عدة أشخاص تتابعهم نشر المنشور نفسه فإنه يظهر مرة واحدة في توقيت أحدث إعادة نشر، مع عبارة مثل «أعاد Omar Khatib النشر».

الأحدث

كل المنشورات من الأحدث إلى الأقدم، بلا أي ترتيب آخر.

يُحفظ التبويب الذي تختاره في شريط العنوان (مثل /dashboard?tab=following)، فإعادة تحميل الصفحة أو مشاركة الرابط تحافظ على العرض نفسه.

صفحات بدل التمرير اللانهائي

لا يحمّل ArabDev المنشورات بلا نهاية أثناء التمرير، وذلك عن قصد. تعرض الصفحة 20 منشورًا على الأكثر، وفي أسفلها:

  • زرا السابق والتالي.
  • روابط مرقّمة للصفحات مثل 1 2 3 … 20 على الشاشات الكبيرة، أو «الصفحة 2 من 5» على الهواتف.

رقم الصفحة جزء من العنوان (?page=2)، فتستطيع العودة إلى المكان نفسه تمامًا. عند تغيير الصفحة يعود العرض إلى الأعلى، وتبقى الصفحة السابقة ظاهرة بلون باهت حتى تصل التالية، فلا تومض الشاشة فارغة.

لماذا الصفحات؟

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

شكل المنشور في الصفحة الرئيسية

  • صورة الكاتب واسمه الظاهر واسم المستخدم ومنذ متى نُشر (مرّر المؤشر لترى التاريخ والوقت الدقيقين)، وملاحظة «معدّل» إن عدّله الكاتب.
  • العنوان، أو «بقلم» واسم الكاتب إن لم يكن للمنشور عنوان.
  • بداية المنشور. تُقتطع المنشورات الطويلة عند نحو 300 بكسل مع تلاشٍ خفيف ورابط اقرأ المزيد.
  • الصورة والرابط المرفقان إن وُجدا، ووسوم المنشور.
  • صف الإجراءات: تعليق، إعادة نشر، إعجاب، حفظ، مشاركة، مع العدد بجانب كل منها عندما يكون أكبر من صفر.

النقر في أي مكان على المنشور يفتحه، إلا إذا كان النقر على رابط أو زر أو نص تحدده.

بدء منشور من الصفحة الرئيسية

المربع في أعلى الصفحة («على ماذا تعمل الآن؟») وزر اكتب منشورًا يفتحان محرر المنشورات الكامل. راجع كتابة المنشورات.

الإعلانات في الصفحة الرئيسية

يظهر إعلان بعد كل 8 منشورات: بعد المنشور الثامن والسادس عشر في كل صفحة، أي إعلانان على الأكثر في الصفحة. الإعلانات مميزة بوضوح ولا تشبه المنشورات أبدًا.

المقالة الرئيسية: الإعلانات في ArabDev.

عندما تكون الصفحة فارغة

  • إن لم ينشر أحد بعد ترى «لا توجد منشورات بعد» مع زر أنشئ منشورك الأول.
  • إن كان تبويب «المتابَعون» فارغًا ترى «لا جديد ممن تتابعهم» مع زر ينقلك إلى صفحة الاستكشاف لتجد مطورين.

كتابة المنشورات

المنشورات قلب ArabDev: دروس، وأسئلة، وإعلانات مشاريع، ونصائح، وتجارب. يمنحك المحرر كل ما يحتاجه المنشور التقني، من عناوين وكود وجداول وروابط، دون أن يتحول إلى برنامج معالجة نصوص.

لكل زر واختصار راجع مرجع التنسيق.

فتح المحرر

اختر منشور جديد من قائمة التنقل (زر + الأحمر على الهاتف)، أو زر اكتب منشورًا في الصفحة الرئيسية، أو افتح إحدى مسوداتك. يتكون المحرر من:

  • حقل العنوان في الأعلى (اختياري، حتى 200 حرف).
  • شريط الأدوات، ويبقى مثبتًا أسفل الشريط العلوي أثناء تمرير المنشورات الطويلة.
  • المتن، وفيه تكتب.
  • الوسوم والصورة والرابط أسفل المتن.
  • المعاينة، بجانب المحرر على الشاشات الكبيرة، أو خلف تبويب «معاينة» على الشاشات الأصغر.
  • زرا حفظ كمسودة ونشر في الأعلى.

كتابة المتن

المتن مطلوب، فلا بد أن يحتوي المنشور على نص ما، وكل ما عداه اختياري. يمكنك استخدام:

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

يقبل المحرر أيضًا اختصارات بأسلوب Markdown أثناء الكتابة: ## ثم مسافة تبدأ عنوانًا، و- ثم مسافة تبدأ قائمة، و``` ثم مسافة تبدأ كتلة كود، و**عريض** يصبح عريض.

الخطوط والأحجام والألوان

يوفر ArabDev مجموعة صغيرة مدروسة من الخيارات لتبقى المنشورات مقروءة ومتسقة:

  • الخطوط: Tajawal (خط المتن الافتراضي)، وAlexandria (خط العناوين في ArabDev)، وAnton (خط عرض طويل يناسب التأكيدات القصيرة).
  • الأحجام: 14 و16 و18 و20 و24 و30.
  • الألوان: أحمر، وأحمر داكن، وحبر، ورمادي داكن، ورمادي فاتح، إضافة إلى لون النص الافتراضي.

الألوان ليست قيمًا ثابتة: لكل لون نسخة للوضع الفاتح وأخرى للداكن، فتبقى العبارة الحمراء التي كتبتها في الوضع الفاتح سهلة القراءة لمن يستخدم الوضع الداكن.

تُحفظ هذه الخيارات فقط

إذا لصقت نصًا منسقًا من موقع آخر فإن الخطوط والأحجام والألوان الخارجة عن هذه المجموعة تُزال عند النشر، وتبقى الكلمات نفسها.

الكتابة بالعربية والإنجليزية معًا

تحدد كل فقرة وعنوان وعنصر قائمة وخلية جدول اتجاهها من أحرفها الأولى، فتنساب الفقرة العربية من اليمين إلى اليسار والإنجليزية من اليسار إلى اليمين في المنشور نفسه. أما كتل الكود فتبقى دائمًا من اليسار إلى اليمين. وتتبع محاذاة «بداية السطر» و«نهاية السطر» اتجاه كل فقرة، فالبداية هي اليمين في العربية واليسار في الإنجليزية.

مرفقات الصورة والرابط

إرفاق صورة

اختر إضافة صورة أسفل المتن. تُرفع الصورة فورًا مع شريط تقدم، ثم تظهر معاينتها مع زر لإزالتها. صورة واحدة لكل منشور.

  • الصيغ: JPEG أو PNG أو WebP أو GIF، حتى 5 ميغابايت.
  • 64 بكسل على الأقل للضلع الأقصر، و10,000 بكسل على الأكثر للضلع الأطول.
  • تُصغَّر الصور الكبيرة لتتسع ضمن 1600×1600 بكسل وتُحفظ بصيغة WebP، وتصبح صور GIF المتحركة ثابتة.
  • إذا أزلت صورة رفعتها للتو قبل الحفظ تُحذف من الخادم.

حقل إرفاق رابط مخصص للرابط الذي يدور حوله منشورك، كمستودع أو عرض توضيحي أو مقال. يظهر أسفل المنشور في بطاقة تعرض اسم الموقع والعنوان الكامل. يجب أن يبدأ بـhttp:// أو https:// وألا يتجاوز 500 حرف. أما الروابط داخل النص فاستخدم لها زر الرابط في شريط الأدوات.

الوسوم

أضف حتى 5 وسوم ليجد الناس منشورك. اكتب الوسم واضغط Enter، أو اختر اقتراحًا من القائمة، أو الصق عدة وسوم مفصولة بفواصل. يصل طول كل وسم إلى 30 حرفًا.

المقالة الرئيسية: الوسوم والاهتمامات.

المعاينة

تعرض المعاينة منشورك تمامًا كما سيراه القراء: صورتك واسمك، والعنوان، والمتن المنسّق، والصورة، وبطاقة الرابط، والوسوم. على الشاشات التي يبلغ عرضها 1200 بكسل فأكثر تكون بجانب المحرر وتتحدث أثناء الكتابة، وعلى الشاشات الأصغر تنتقل بين تبويبي كتابة ومعاينة.

المسودات

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

المغادرة مع تغييرات غير محفوظة

إذا حاولت مغادرة المحرر وفيه تغييرات لم تحفظها يسألك ArabDev «تجاهل التغييرات؟». يمكنك البقاء ومتابعة التعديل، أو المغادرة وفقدان التغييرات. ويعرض المتصفح تحذيرًا مشابهًا إذا حاولت إغلاق التبويب.

النشر

اختر نشر. إن كان المتن فارغًا ترى «اكتب شيئًا قبل النشر.»، وإن كان الرابط المرفق غير صالح تظهر الرسالة أسفل حقله. بعد النشر تنتقل إلى منشورك الجديد. يمكنك نشر 30 منشورًا في الساعة على الأكثر.

تعديل المنشورات وحذفها

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

الإشارة إلى الأشخاص

اكتب @username في أي مكان من المنشور لتشير إلى شخص ما، فيصله إشعار (ما لم تمنع إعداداته ذلك). يُبلَّغ حتى 10 أشخاص مختلفين لكل منشور.

ماذا يحدث لمنشورك عند النشر

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

التصنيفات: المنشوراتالمحرر

مرجع التنسيق

قائمة كاملة بأزرار شريط أدوات المحرر واختصارات لوحة المفاتيح واختصارات أسلوب Markdown. على أجهزة Mac استخدم أينما ذكرت هذه الصفحة Ctrl.

شريط الأدوات من البداية إلى النهاية

الأداةوظيفتها
تراجع / إعادةالرجوع خطوة إلى الخلف أو التقدم خطوة في تعديلاتك، ويظهران باهتين عندما لا يوجد ما يُتراجع عنه أو يُعاد.
نمط النصفقرة أو عنوان أو عنوان فرعي للكتلة الحالية.
الخطالخط الافتراضي أو Alexandria أو Tajawal أو Anton للنص المحدد، ويُعرض كل خيار بخطه.
الحجمافتراضي أو 14 أو 16 أو 18 أو 20 أو 24 أو 30 للنص المحدد.
عريضيجعل النص المحدد عريضًا.
مائليجعل النص المحدد مائلًا.
تسطيريضع خطًا تحت النص المحدد.
يتوسطه خطيرسم خطًا في منتصف النص المحدد.
كود ضمن السطرينسّق قطعة كود قصيرة داخل جملة، مثل npm install.
لون النصيفتح قائمة: افتراضي، أحمر، أحمر داكن، حبر، رمادي داكن، رمادي فاتح، ويُعرض كل خيار بلونه.
محاذاة لبداية السطر / توسيط / محاذاة لنهاية السطر / ضبطيضبط محاذاة الفقرة أو العنوان الحالي، واختيار المحاذاة النشطة مرة أخرى يلغيها.
قائمة نقطيةيحوّل الفقرة إلى قائمة نقطية أو يعيدها.
قائمة مرقّمةيحوّل الفقرة إلى قائمة مرقّمة أو يعيدها.
اقتباسيحوّل الفقرة إلى اقتباس يظهر بشريط أحمر في بدايته.
كتلة كوديبدأ كتلة للكود متعدد الأسطر، تظهر على خلفية داكنة ومن اليسار إلى اليمين دائمًا.
رابطيفتح نافذة لإضافة رابط على النص المحدد أو تغييره أو إزالته، والعناوين التي تنقصها https:// تُضاف إليها.
جدولخارج الجدول: إدراج جدول جديد. داخل الجدول: إضافة صفوف وأعمدة أو حذفها، أو حذف الجدول.

تُبرز الأزرار الخاصة بالتنسيق النشط في موضع المؤشر، فتعرف دائمًا أي الأنماط مطبّقة. وعلى الشاشات الضيقة يتمرر شريط الأدوات جانبيًا بدل أن ينقسم إلى عدة أسطر.

اختصارات لوحة المفاتيح

الاختصارالوظيفة
Ctrl + Bعريض
Ctrl + Iمائل
Ctrl + Uتسطير
Ctrl + Shift + Sيتوسطه خط
Ctrl + Eكود ضمن السطر
Ctrl + Alt + 2 / 3عنوان / عنوان فرعي
Ctrl + Shift + 8قائمة نقطية
Ctrl + Shift + 7قائمة مرقّمة
Ctrl + Shift + Bاقتباس
Ctrl + Alt + Cكتلة كود
Ctrl + Zتراجع
Ctrl + Shift + Z أو Ctrl + Yإعادة
Shift + Enterسطر جديد داخل الفقرة نفسها
Tab / Shift + Tab في القائمةزيادة إزاحة عنصر القائمة / تقليلها
Tab في الجدولالانتقال إلى الخلية التالية، وفي الخلية الأخيرة إضافة صف جديد
Ctrl + Enter في التعليقإرسال التعليق

اختصارات بأسلوب Markdown

اكتبها في بداية سطر فارغ (للكتل) أو حول النص (للأنماط داخل السطر)، فتتحول إلى تنسيق أثناء الكتابة.

اكتبالنتيجة
## ثم مسافةعنوان
### ثم مسافةعنوان فرعي
- أو * أو + ثم مسافةقائمة نقطية
1. ثم مسافةقائمة مرقّمة (تبدأ من ذلك الرقم)
> ثم مسافةاقتباس
``` ثم مسافةكتلة كود (يمكنك إضافة اسم اللغة، مثل ```python)
---خط فاصل أفقي
**نص**عريض
*نص* أو _نص_مائل
~~نص~~يتوسطه خط
`نص`كود ضمن السطر

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

التعامل مع الجداول

  1. اختر زر الجدول بينما المؤشر خارج أي جدول.
  2. حدد عدد الصفوف (1–20) والأعمدة (1–8)، وما إذا كان الصف الأول صف عناوين.
  3. اختر إدراج جدول.
  4. عندما يكون المؤشر داخل الجدول يفتح الزر نفسه قائمة: إضافة صف بالأسفل، وإضافة عمود بعده، وحذف الصف، وحذف العمود، وحذف الجدول.

تتمرر الجداول العريضة جانبيًا على الشاشات الصغيرة بدل أن يُضغط محتواها، وتظهر خلايا العناوين بخط عريض على خلفية ملوّنة خفيفة.

  • أنواع العناوين المسموحة: https:// وhttp:// وmailto:.
  • أي نوع آخر، مثل javascript:، يرفضه المحرر ويزيله الخادم.
  • لإزالة رابط ضع المؤشر عليه، وافتح نافذة الرابط، واختر إزالة الرابط، أو امسح العنوان واحفظ.

دلالات الألوان

اللوناستخدام مقترح
أحمرأحمر ArabDev: للتحذيرات والمصطلحات المهمة والتأكيد.
أحمر داكنتأكيد أهدأ للعبارات الأطول.
حبرأعلى تباين، مثلًا لإبراز كلمة داخل نص رمادي.
رمادي داكنالمعلومات الثانوية.
رمادي فاتحالملاحظات الجانبية والحواشي والإضافات الاختيارية.

لا تعتمد على اللون وحده لنقل المعنى، فبعض القراء لا يميزون بين الألوان. أرفق اللون بكلمات مثل «تحذير:».

التصنيفات: المحررالمنشورات

الوسوم والاهتمامات

الوسوم تصف موضوع المنشور، والاهتمامات تصف ما يعمل به الشخص. ويربط ArabDev بين الاثنين: عندما يطابق وسم المنشور أحد الاهتمامات الخمسة والعشرين يُعدّ المنشور متعلقًا بذلك الاهتمام، وهذا يؤثر في ترتيب تبويب «لك» وفي اقتراحات المطورين.

كيف تُكتب الوسوم

يمكنك كتابة الوسوم كما تشاء، ويحوّل ArabDev كلًا منها إلى اسم وسم مرتب:

  • تُحذف علامة # في البداية.
  • تتحول الحروف الإنجليزية إلى حروف صغيرة.
  • تتحول المسافات والشرطات السفلية والنقاط والشرطات المائلة إلى شرطات، وتُدمج الشرطات المتكررة.
  • يتحول + إلى p و# إلى sharp، فتبقى لغات عائلة C متمايزة.
  • تُحفظ الحروف العربية، فـ#برمجة وسم صالح.
  • تُدمج الكتابات الشائعة في وسم واحد (انظر الجدول أدناه).
  • يُحفظ الوسم المكرر في المنشور الواحد مرة واحدة، ويُحفظ حتى 5 وسوم لكل منشور.

الكتابات التي تُدمج

ما تكتبهالوسم
jsjavascript
tstypescript
c++cpp
c#csharp
.netdotnet
node وnode.jsnodejs
golanggo
mlmachine-learning
security وinfoseccybersecurity
sql وdatabasedatabases
gamedevgame-development
mobilemobile-development
ui وux وuiux وui/uxui-ux
opensource وossopen-source
vuejs وvue.jsvue
reactjs وreact.jsreact

الاهتمامات الخمسة والعشرون

الاهتمامالوسمالاسم بالإنجليزية
JavaScriptjavascriptJavaScript
TypeScripttypescriptTypeScript
PythonpythonPython
C++cppC++
RustrustRust
GogoGo
JavajavaJava
C#csharpC#
ReactreactReact
VuevueVue
AngularangularAngular
Node.jsnodejsNode.js
FastAPIfastapiFastAPI
DjangodjangoDjango
الذكاء الاصطناعيaiAI
تعلّم الآلةmachine-learningMachine Learning
الأمن السيبرانيcybersecurityCybersecurity
LinuxlinuxLinux
DevOpsdevopsDevOps
الحوسبة السحابيةcloudCloud
قواعد البياناتdatabasesDatabases
تطوير الألعابgame-developmentGame Development
تطوير تطبيقات الجوالmobile-developmentMobile Development
تصميم الواجهات UI/UXui-uxUI/UX
المصادر المفتوحةopen-sourceOpen Source

تحتفظ لغات البرمجة وأطر العمل بأسمائها الأصلية في الواجهة العربية، لأن المطورين يكتبونها هكذا.

صفحات الوسوم

لكل وسم صفحة على العنوان /tags/name تعرض منشوراته من الأحدث إلى الأقدم، 20 في كل صفحة، مع عدد المنشورات التي تستخدمه. تصل إلى صفحات الوسوم بالنقر على وسم في منشور، أو على شارة اهتمام في ملف شخصي، أو على وسم شائع، أو على وسم في نتائج البحث.

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

التعليقات والتفاعلات

أسفل كل منشور صف إجراءات من خمسة أزرار: تعليق، وإعادة نشر، وإعجاب، وحفظ، ومشاركة. تشرح هذه المقالة كلًا منها.

الإعجابات

زر القلب يسجل إعجابك بالمنشور، واختياره مرة أخرى يلغي الإعجاب. يمتلئ القلب ويصبح أحمر عندما تُعجب بمنشور، ويتحدث العدد فورًا. يصل للكاتب إشعار، وإذا ألغيت إعجابك قبل أن يقرأه يُسحب الإشعار.

إعادة النشر

  • زر إعادة النشر يشارك منشور غيرك مع متابعيك، فيظهر في تبويب «المتابَعون» لديهم مع عبارة مثل «أعاد Layla Hassan النشر»، وفي تبويب المنشورات في ملفك.
  • اختره مرة أخرى للتراجع عن إعادة النشر.
  • لا يمكنك إعادة نشر منشوراتك، لذلك يكون الزر معطلًا عليها.
  • يصل للكاتب إشعار.

المحفوظات

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

المشاركة

زر المشاركة يفتح نافذة المشاركة في جهازك إن كانت متاحة (في معظم الهواتف)، وإلا فإنه ينسخ رابط المنشور ويعرض «تم نسخ الرابط».

التعليقات

تظهر التعليقات في صفحة المنشور تحت عنوان النقاش، الأقدم أولًا، فتُقرأ المحادثة من الأعلى إلى الأسفل. تُعرض 20 تعليقًا في كل صفحة.

كتابة تعليق

  • اكتب في المربع أسفل المنشور واختر تعليق، أو اضغط Ctrl + Enter.
  • التعليقات نص عادي من 1 إلى 2000 حرف، وتُحفظ فيها الأسطر الجديدة، ويوضح عدّاد ما كتبته.
  • يصطف كل تعليق عربي أو إنجليزي بالاتجاه الصحيح تلقائيًا.
  • بعد النشر تنتقل القائمة إلى الصفحة التي فيها تعليقك الجديد.

الرد

اختر رد على أي تعليق، فتظهر شارة «ردًا على @username» فوق المربع، وإزالتها تلغي الرد. تُعرض الردود بالترتيب مع ملاحظة «ردًا على @username»، ويصل إشعار لمن رددت عليه.

الإشارات في التعليقات

اكتب @username لتشير إلى شخص. تتحول الإشارات إلى روابط لملفاتهم وتبقى مقروءة داخل الجمل العربية. يُبلَّغ من أُشير إليهم، باستثناء من وصله إشعار عن التعليق نفسه أصلًا (مثل كاتب المنشور).

حذف التعليقات

يمكن حذف التعليق من قِبل كاتبه، أو كاتب المنشور الذي كُتب عليه، أو مسؤولي ArabDev. حذف التعليق يحذف الردود عليه أيضًا، ويُعاد حساب عدد تعليقات المنشور.

دون حساب

يستطيع أي شخص قراءة المنشورات والتعليقات العامة. وإذا لم تكن مسجلًا واخترت الإعجاب أو إعادة النشر أو الحفظ، يطلب منك ArabDev تسجيل الدخول ثم يعيدك إلى المنشور.

الحدود

لمنع إساءة الاستخدام يمكن لكل شبكة إجراء حتى 300 إعجاب وحفظ وإعادة نشر في الساعة، وحتى 60 تعليقًا كل 10 دقائق. الاستخدام العادي لا يقترب من هذه الحدود أبدًا.

المتابعة والاستكشاف

متابعة شخص ما تضع منشوراته وإعادات نشره في تبويب «المتابَعون» لديك، وترفع ترتيبها في تبويب «لك». تشرح هذه المقالة المتابعة، وكيف يقترح ArabDev الأشخاص، وصفحة الاستكشاف.

المتابعة وإلغاؤها

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

كيف تعمل الاقتراحات

تظهر «مطورون لتتابعهم» في العمود الجانبي، وفي صفحة الاستكشاف، وفي الخطوة الأخيرة من الإعداد. يحصل كل مرشح على نقاط:

  • 3 نقاط عن كل اهتمام تشترك فيه معه.
  • نقطتان عن كل شخص تتابعه ويتابعه هو أيضًا.

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

صفحة الاستكشاف

صفحة الاستكشاف متاحة للجميع، سواء سجلوا الدخول أم لا، وفيها:

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

البحث

يبحث ArabDev في المنشورات والمطورين والوسوم من مربع واحد: في الشريط العلوي على الشاشات الكبيرة، وخلف العدسة على الهواتف، وفي صفحتي الاستكشاف والبحث.

الاقتراحات الفورية

بعد أن تكتب حرفين ينتظر ArabDev لحظة (300 جزء من الثانية) حتى تتوقف عن الكتابة، ثم يعرض اقتراحات مجمّعة في المطورين والوسوم والمنشورات، حتى خمسة من كل مجموعة، وسطرًا أخيرًا هو «عرض كل النتائج».

  • و للتنقل بين الاقتراحات.
  • Enter يفتح الاقتراح المحدد، أو يجري بحثًا كاملًا إن لم يكن هناك اقتراح محدد.
  • Esc يغلق القائمة.
  • زر × يمسح المربع.

ما الذي يُبحث فيه

المجموعةيطابقالترتيب
المنشوراتالعنوان ونص المتنالأحدث أولًا
المطوروناسم المستخدم والاسم الظاهرالمطابقة التامة لاسم المستخدم أولًا، ثم الأحدث انضمامًا
الوسوماسم الوسمالأكثر استخدامًا أولًا

المطورون الذين أوقفوا خيار إظهاري في البحث والاقتراحات لا يظهرون في نتائج المطورين، إلا إذا كتبت اسم المستخدم كاملًا بالضبط.

نصائح للبحث

  • ابدأ بـ@ للبحث عن الأشخاص: @layla.
  • ابدأ بـ# للبحث عن الوسوم: #rust.
  • البحث لا يفرّق بين الحروف الكبيرة والصغيرة، ويُبحث عن رموز مثل % و_ كما هي، فيجد 100% هذه العبارة بالضبط.
  • يصل طول نص البحث إلى 100 حرف.

صفحة النتائج

الضغط على Enter أو اختيار «عرض كل النتائج» يفتح /search?q=…، وفيها تبويبات: الكل، والمنشورات، والمطورون، والوسوم. يعرض تبويب الكل لمحة قصيرة عن كل مجموعة مع زر «عرض الكل»، وتعرض التبويبات الأخرى القائمة كاملة بصفحات من 20. وإن لم يطابق شيء يقترح ArabDev التحقق من الكتابة، أو تجربة عبارة أقصر، أو البحث عن وسم.

التصنيفات: الاستكشاف

الإشعارات

تخبرك الإشعارات عندما يتفاعل معك الآخرون. تظهر في صفحة الإشعارات، وتظهر شارة حمراء بعدد الإشعارات غير المقروءة على عنصر الإشعارات في قائمة التنقل.

أنواع الإشعارات

النوعيصلك عندما…
إعجابيُعجب أحدهم بمنشورك.
تعليقيعلّق أحدهم على منشورك، أو يرد على تعليقك في منشور شخص آخر.
متابعةيبدأ أحدهم بمتابعتك.
إعادة نشريعيد أحدهم نشر منشورك.
إشارةيكتب أحدهم @username الخاص بك في منشور أو تعليق.

كيف تعمل الإشعارات

  • لا تصلك إشعارات عن أفعالك أنت.
  • تكرار الإعجاب أو المتابعة أو إعادة النشر على الشيء نفسه لا ينشئ إشعارات مكررة.
  • إذا تراجع أحدهم عن إعجاب أو متابعة أو إعادة نشر قبل أن تقرأ الإشعار فإنه يختفي.
  • إذا كان التعليق الواحد ردًا عليك وإشارة إليك في الوقت نفسه يصلك إشعار واحد لا اثنان.
  • تتحدث شارة الإشعارات غير المقروءة كل 30 ثانية أثناء فتح ArabDev، وتتحدث صفحة الإشعارات كل دقيقة.

قراءة الإشعارات

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

اختيار ما تُبلَّغ به

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

لا إشعارات بالبريد

لا يرسل ArabDev الإشعارات بالبريد الإلكتروني. الرسائل الوحيدة التي يرسلها هي روابط استعادة كلمة المرور التي تطلبها بنفسك.

الإعدادات

تنقسم الإعدادات إلى خمسة أقسام: الحساب، والملف الشخصي، والمظهر، والخصوصية، والإشعارات. على الشاشات الكبيرة تُعرض الأقسام في قائمة جانبية، وعلى الهواتف في تبويبات أعلى الصفحة. تُحفظ المفاتيح فور تغييرها وتظهر رسالة «تم حفظ الإعدادات»، وإن فشل الحفظ يعود المفتاح إلى وضعه السابق مع رسالة توضح السبب.

الحساب

اسم المستخدم

يعرض اسم المستخدم الحالي، ورابط تعديل ينقلك إلى قسم الملف الشخصي حيث يمكنك تغييره.

البريد الإلكتروني

أدخل البريد الجديد وكلمة المرور الحالية، ثم اختر تحديث البريد. تُطلب كلمة المرور كي لا يستولي على حسابك من يستخدم جهازك وهو مفتوح. يجب ألا يكون البريد الجديد مسجلًا بحساب آخر.

كلمة المرور

أدخل كلمة المرور الحالية، ثم الجديدة مرتين. يجب أن تتبع الجديدة قواعد كلمة المرور وأن تختلف عن الحالية. تغيير كلمة المرور يسجّل خروجك من كل مكان آخر، وتبقى مسجلًا على الجهاز الذي استخدمته.

حذف الحساب

حذف حسابي يحذف حسابك نهائيًا بعد أن تؤكد بكلمة المرور. تُحذف منشوراتك وتعليقاتك وردودك وإعجاباتك وإعادات نشرك ومحفوظاتك ومتابعاتك ومسوداتك وإشعاراتك وملفاتك المرفوعة جميعًا، وتُحدَّث الأعداد على منشورات الآخرين. لا يمكن التراجع عن ذلك.

الملف الشخصي

المحرر نفسه الموجود في تعديل الملف: الصورة، والاسم الظاهر، واسم المستخدم، والنبذة، والموقع الجغرافي، والموقع الإلكتروني، والاهتمامات. راجع تعديل ملفك الشخصي.

المظهر

  • السمة: فاتح أو داكن أو حسب الجهاز. خيار «حسب الجهاز» يتبع إعدادات جهازك ويتبدل تلقائيًا عندما يتبدل جهازك.
  • اللغة: العربية أو English. يغيّر التخطيط كله اتجاهه مع اللغة: من اليمين لليسار للعربية، ومن اليسار لليمين للإنجليزية.

عندما تكون مسجلًا تُحفظ السمة واللغة في حسابك وتُطبَّق عند تسجيل دخولك من جهاز آخر. والمفاتيح نفسها موجودة في قائمة الحساب.

الخصوصية

الإعدادعند التفعيل (الافتراضي)عند الإيقاف
إظهاري في البحث والاقتراحاتيمكن أن تظهر في نتائج البحث عن المطورين وفي «مطورون لتتابعهم».لا تظهر في أي منهما. ويظل الناس قادرين على فتح ملفك عبر رابط مباشر أو من منشوراتك أو بكتابة اسم المستخدم بالضبط.
إظهار قائمتي المتابِعين والمتابَعينيستطيع أي شخص فتح قائمتيك.أنت وحدك ترى قائمتيك، وتبقى الأعداد ظاهرة.

إعداد من يمكنه إرسال إشعار إشارة إليك له ثلاثة خيارات: الجميع (الافتراضي)، ومن تتابعهم فقط، ولا أحد. يتحكم في إشعارات الإشارة فقط، ولا يمنع الناس من كتابة اسمك.

الإشعارات

خمسة مفاتيح، كلها مفعّلة افتراضيًا: الإعجابات بمنشوراتك، والتعليقات والردود، والمتابِعون الجدد، وإعادة نشر منشوراتك، والإشارات.

الخصوصية والأمان

هذه المقالة ملخص عملي، أما النص الكامل المُلزِم فهو سياسة الخصوصية في ArabDev.

وعدنا لك

لا يبيع ArabDev معلوماتك الشخصية ولا يؤجرها ولا يتاجر بها، ولا يستخدمها لاستهداف الإعلانات. ولا توجد في ArabDev أي أدوات تتبع أو سكربتات تحليل أو بكسلات إعلانية تابعة لأطراف خارجية.

ما العام وما الخاص

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

ما يحفظه ArabDev في متصفحك

الاسمالنوعالغرض
arabdev_refreshملف تعريف ارتباط (HttpOnly)يبقيك مسجلًا للدخول. لا تستطيع السكربتات قراءته، ولا يُرسل إلا إلى نقاط تسجيل الدخول.
arabdev.langالتخزين المحليلغة الواجهة.
arabdev.modeالتخزين المحليالسمة: فاتح أو داكن أو حسب الجهاز.
arabdev.sessionالتخزين المحليإشارة بنعم أو لا إلى أن هذا المتصفح سجّل الدخول من قبل، كي لا يُرسل للزوار فحص تسجيل دخول لا داعي له.
mui-color-scheme-light، mui-color-scheme-darkالتخزين المحليتكتبهما مكتبة الواجهة لتتذكّر لوحة الألوان الخاصة بكل من الوضع الفاتح والداكن.
react-router-scroll-positionsتخزين الجلسةيتذكر موضع التمرير عند الرجوع، ويُمحى عند إغلاق التبويب.

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

الصور والبيانات المخفية

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

ما تتحكم فيه

  • إخفاء نفسك من البحث والاقتراحات. راجع الإعدادات ← الخصوصية.
  • جعل قائمتي المتابِعين والمتابَعين خاصتين.
  • اختيار من يستطيع إرسال إشعارات الإشارة إليك.
  • إيقاف أي نوع من الإشعارات.
  • تعديل أي منشور أو تعليق كتبته أو حذفه.
  • حذف حسابك وكل ما فيه. راجع حذف الحساب.

كيف تبقى آمنًا

  • لا تشارك كلمة مرورك أبدًا، فلن يطلبها منك فريق ArabDev.
  • فكّر قبل نشر أي شيء شخصي، فالمنشورات عامة ويستطيع أي شخص قراءتها.
  • لا تنشر مفاتيح API أو رموز الوصول أو كلمات المرور في أمثلة الكود، واستبدلها بقيم وهمية.
  • الروابط في المنشورات تقودك إلى مواقع أخرى لها ممارسات خصوصية خاصة بها.
التصنيفات: الخصوصيةالأمان

أمان الحساب

كيف يحمي ArabDev حسابك، وما الذي تستطيع فعله للمساعدة.

كيف تُخزَّن كلمات المرور

لا يخزّن ArabDev كلمة مرورك أبدًا، بل يخزّن بصمة أحادية الاتجاه مصنوعة بخوارزمية Argon2id، وهي مصممة لتكون بطيئة وكثيرة استهلاك الذاكرة على من يحاول تخمين كلمات المرور. حتى القائمون على ArabDev لا يستطيعون رؤية كلمة مرورك. وعند تسجيل الدخول يحسب ArabDev بصمة ما كتبته ويقارن النتيجتين.

كيف تعمل الجلسات

  • عند تسجيل الدخول يحصل متصفحك على تصريح وصول قصير العمر مدته 15 دقيقة، يُحفظ في ذاكرة الصفحة فقط ولا يُخزَّن أبدًا.
  • ملف تعريف ارتباط أطول عمرًا يجدد هذا التصريح تلقائيًا. هذا الملف من نوع HttpOnly فلا تستطيع سكربتات الصفحة قراءته، ولا يُرسل إلا إلى نقاط تسجيل الدخول في ArabDev.
  • كل تجديد يستبدل ملف تعريف الارتباط بآخر جديد. وإذا استُخدم ملف قديم مرة أخرى، وهي علامة على أنه نُسخ، ينهي ArabDev الجلسة كلها. ومهلة قصيرة تمنع حدوث ذلك خطأً عندما يجدد تبويبان في اللحظة نفسها.
  • لا يخزّن الخادم إلا بصمة كل ملف تسجيل دخول، ووصف المتصفح، وتاريخ الإنشاء وتاريخ الانتهاء.

تسجيل الخروج

اختر تسجيل الخروج من قائمة الحساب، فتنتهي الجلسة على ذلك المتصفح ويُحذف ملف تسجيل الدخول. أما تغيير كلمة المرور أو استعادة كلمة مرور منسية فيسجّل خروجك من كل المتصفحات الأخرى أيضًا.

استعادة كلمة مرور منسية

  1. في صفحة تسجيل الدخول اختر نسيت كلمة المرور؟
  2. أدخل البريد الذي سجلت به واختر إرسال الرابط.
  3. يجيب ArabDev دائمًا بالطريقة نفسها سواء كان البريد مسجلًا أم لا، فلا يستطيع أحد استخدام هذا النموذج لمعرفة من المسجلون.
  4. افتح الرابط الوارد في البريد خلال 30 دقيقة، فهو لا يعمل إلا مرة واحدة.
  5. اختر كلمة مرور جديدة، فتُنهى كل جلساتك الحالية ويمكنك تسجيل الدخول بكلمة المرور الجديدة.
لمن يشغّلون ArabDev

لا يتضمن الإصدار 1.0.0 مزوّد بريد إلكتروني. وإلى أن يُربط مزوّد تُكتب روابط الاستعادة في سجل الخادم. راجع البريد الإلكتروني.

الحماية من التخمين وإساءة الاستخدام

يحدّ ArabDev من عدد المرات التي تستطيع فيها الشبكة نفسها تكرار الإجراءات الحساسة. وعند بلوغ الحد ترى «محاولات كثيرة. انتظر قليلًا ثم حاول مجددًا.».

الإجراءالحد لكل شبكة
تسجيل الدخول10 في الدقيقة
إنشاء حساب10 في الساعة
نسيت كلمة المرور5 كل 15 دقيقة
تعيين كلمة مرور جديدة10 كل 15 دقيقة
تغيير كلمة المرور10 كل 15 دقيقة
التحقق من توفر اسم المستخدم والبريد60 في الدقيقة
تجديد الجلسة60 في الدقيقة
نشر منشور30 في الساعة
التعليق60 كل 10 دقائق
الإعجاب والحفظ وإعادة النشر300 في الساعة
المتابعة120 في الساعة
رفع صورة30 كل 10 دقائق
البحث120 في الدقيقة

حمايات أخرى

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

نصائح

  • استخدم كلمة مرور فريدة لـArabDev واحفظها في مدير كلمات مرور.
  • ألغِ تفعيل «إبقائي مسجلًا للدخول» على الأجهزة المشتركة أو العامة، وسجّل خروجك عند الانتهاء.
  • إن ظننت أن أحدًا يعرف كلمة مرورك فغيّرها، فهذا يسجّل خروج كل الأجهزة الأخرى.
التصنيفات: الأمانالخصوصية

الإعلانات في ArabDev

يعرض ArabDev عددًا قليلًا من الإعلانات ليبقى مجانيًا، وتخضع لقواعد صارمة كي لا تعيق القراءة أبدًا ولا تضلل أحدًا.

أين تظهر الإعلانات

  • في قوائم المنشورات: بعد كل 8 منشورات، أي بعد المنشور الثامن والسادس عشر في صفحة من 20 منشورًا، ولا تظهر أبدًا في أماكن عشوائية.
  • في العمود الجانبي: مساحة إعلانية واحدة، على الشاشات الكبيرة فقط.
  • لا مكان غير ذلك: لا إعلانات داخل المنشورات أو التعليقات أو الملفات الشخصية أو نتائج البحث أو الإشعارات أو الإعدادات، ولا نوافذ منبثقة.

كيف تميّز الإعلان

  • يحمل كل إعلان وسمًا مؤطرًا بكلمة إعلان ويذكر الجهة التي تروّج له.
  • تظهر الإعلانات على خلفية ملوّنة بإطار متقطع، بلا صورة شخصية ولا صف إجراءات، فلا يمكن الخلط بينها وبين المنشورات.
  • أيقونة معلومات توضّح سبب وجود الإعلان.

كيف تُختار الإعلانات

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

ما الذي يُحصى

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

إعلانات المنصة

عند الإطلاق، الإعلانات التي تراها رسائل من ArabDev نفسه، كدعوتك إلى مشاركة مشروع مفتوح المصدر أو إكمال ملفك الشخصي، وتحمل عبارة «مُروَّج من ArabDev».

إرشادات المجتمع

يعمل ArabDev بأفضل صورة عندما يبقى تقنيًا وكريمًا ومحترمًا. تشرح هذه الإرشادات ما يعنيه ذلك عمليًا.

افعل

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

لا تفعل

  • لا تضايق أحدًا أو تهنه أو تهدده أو تستهدفه لأي سبب.
  • لا تنشر محتوى يحض على الكراهية بسبب أصل الناس أو دينهم أو جنسهم أو إعاقتهم أو أي جانب آخر من هويتهم.
  • لا تنشر رسائل مزعجة، أو ترويجًا ذاتيًا متكررًا، أو مزارع روابط، أو عناوين مضللة.
  • لا تشارك المعلومات الخاصة بالآخرين.
  • لا تشارك برمجيات خبيثة، أو ثغرات موجهة إلى أنظمة لا تملكها، أو بيانات دخول مسروقة.
  • لا تنشر محتوى غير قانوني أو ينتهك حقوق النشر أو العلامات التجارية لأحد.
  • لا تنتحل صفة أشخاص آخرين أو شركات أو ArabDev.

البحث الأمني

مناقشة الثغرات وأساليب الدفاع وطريقة عمل الهجمات أمر مرحب به، فهكذا يتعلم المطورون بناء برمجيات أكثر أمانًا. لكن انشر تفاصيل ثغرة محددة غير مُصلحة في منتج شخص آخر فقط بعد أن تمنحه فرصة معقولة لإصلاحها. وإذا وجدت مشكلة أمنية في ArabDev نفسه فأبلغ عنها بشكل خاص إلى support@arabdev.site بدل نشرها (راجع الإبلاغ عن مشكلة أمنية).

الإشراف

يستطيع كُتّاب المنشورات حذف التعليقات على منشوراتهم، ويستطيع مسؤولو ArabDev حذف أي منشور أو تعليق يخالف هذه الإرشادات. وقد تُعطَّل الحسابات التي تخالفها مرارًا أو بشكل جسيم. لا يحتوي الإصدار 1.0.0 على زر إبلاغ داخل التطبيق بعد، وإلى أن يتوفر أرسل الرابط إلى support@arabdev.site (راجع الإبلاغ عن محتوى).

التصنيفات: المجتمعالأمان

سهولة الوصول واللغات

يسعى ArabDev إلى أن يكون قابلًا للاستخدام من الجميع، بأي وسيلة إدخال، وبأي من لغتيه.

العربية والإنجليزية

  • العربية هي اللغة الافتراضية. بدّل اللغة من مفتاح اللغة في الشريط العلوي (عند عدم تسجيل الدخول)، أو من قائمة الحساب، أو من الإعدادات ← المظهر.
  • تغيير اللغة يقلب التخطيط كله: التنقل والقوائم والأدراج والأسهم والمسافات ومحاذاة النص، كلها تتبع الاتجاه الجديد دفعة واحدة.
  • الأيقونات ذات الاتجاه، مثل أسهم الرجوع وأسهم الصفحات والتراجع، تنعكس في العربية.
  • تُعرض الأرقام بالأرقام الغربية (0–9) في اللغتين، فهي الأسهل قراءة للمطورين بجانب الكود.
  • التواريخ والأوقات النسبية («منذ 3 ساعات») تُكتب بلغة الواجهة.
  • قواعد العدد في العربية مطبقة بشكل صحيح: للمفرد والمثنى والجمع القليل والكثير صيغ مختلفة.

استخدام لوحة المفاتيح

  • يظهر رابط انتقل إلى المحتوى عند أول ضغطة على Tab.
  • يمكن الوصول إلى كل زر ورابط وقائمة وحقل واستخدامه بلوحة المفاتيح، ويظهر حوله إطار أحمر واضح عند التركيز عليه.
  • تتبع اقتراحات البحث النمط المعياري: مفاتيح الأسهم وEnter وEsc.
  • تحتفظ النوافذ الحوارية بالتركيز داخلها حتى تُغلق.

قارئات الشاشة

  • الأزرار المكونة من أيقونات فقط لها أسماء منطوقة، مثل «إعجاب (4)» أو «إزالة من المحفوظات».
  • أزرار التبديل مثل الإعجاب والحفظ والمتابعة تعلن ما إذا كانت مفعّلة.
  • تُوصف الصور المرفقة بالمنشورات بأنها صور مرفقة، مع عنوان المنشور.
  • تُعلَّم المناطق التي يجري تحميلها بأنها مشغولة، وتُعلن رسائل الحالة مثل «تم نسخ الرابط».

الرؤية

  • يستوفي النص والأزرار إرشادات التباين الشائعة في الوضعين الفاتح والداكن.
  • لا تُعرض الحالة باللون وحده أبدًا: فللإشعارات غير المقروءة كلمة «جديد»، وللاهتمامات المختارة علامة صح.
  • إذا طلب جهازك تقليل الحركة يوقف ArabDev الرسوم المتحركة.
  • يعمل التخطيط من الهواتف الصغيرة إلى الشاشات العريضة، ويمكنك التكبير دون فقدان أي محتوى.

الأسئلة الشائعة

الحساب

هل ArabDev مجاني؟

نعم، استخدام ArabDev مجاني، وشيفرته المصدرية برمجية حرة بموجب رخصة جنو العمومية العامة الإصدار 3.

هل يستطيع الآخرون رؤية بريدي الإلكتروني؟

لا، يُستخدم بريدك فقط لتسجيل الدخول واستعادة كلمة المرور.

هل أستطيع تغيير اسم المستخدم؟

نعم، من الإعدادات ← الملف الشخصي أو من تعديل الملف، ويتغير عنوان ملفك معه. راجع تعديل ملفك الشخصي.

لماذا لا يمكن أن يكون اسم المستخدم بالعربية؟

يُستخدم اسم المستخدم في العناوين والإشارات، لذا يقتصر على الحروف الإنجليزية والأرقام والشرطة السفلية ليسهل كتابته في كل مكان. أما اسمك الظاهر فيمكن أن يكون بالعربية.

كيف أحذف حسابي؟

من الإعدادات ← الحساب ← حذف حسابي. تؤكد بكلمة المرور، فيُحذف كل شيء نهائيًا.

النشر

هل يحتاج المنشور إلى عنوان؟

لا، لكن العنوان يساعد الناس على تقرير قراءته. ويظهر المنشور الذي بلا عنوان بعبارة «بقلم» واسمك.

كم صورة أستطيع إضافتها إلى المنشور؟

صورة مرفقة واحدة لكل منشور في الإصدار 1.0.0.

لماذا اختفت الألوان التي لصقتها؟

يحتفظ ArabDev بألوانه الخمسة وخطوطه الثلاثة وأحجامه الستة فقط لتبقى المنشورات مقروءة في الوضعين الفاتح والداكن. راجع الخطوط والأحجام والألوان.

هل أستطيع جدولة منشور؟

ليس بعد. احفظه كمسودة وانشره عندما تكون جاهزًا.

هل يرى الناس ما غيّرته عند تعديل المنشور؟

يرون ملاحظة «معدّل»، لكن لا يرون النسخة السابقة.

الصفحة الرئيسية والاستكشاف

لماذا لا تتمرر الصفحة الرئيسية بلا نهاية؟

يستخدم ArabDev صفحات مرقّمة من 20 منشورًا عن قصد. راجع صفحات بدل التمرير اللانهائي.

لماذا يظهر هذا المنشور في أعلى صفحتي؟

في تبويب «لك» تتقدم منشورات من تتابعهم والمنشورات المتعلقة باهتماماتك داخل كل يوم. استخدم تبويب «الأحدث» للترتيب الزمني الخالص.

هل أستطيع التوقف عن الظهور في الاقتراحات؟

نعم، أوقف خيار إظهاري في البحث والاقتراحات من الإعدادات ← الخصوصية.

الخصوصية والإعلانات

هل يبيع ArabDev بياناتي؟

لا. لا يبيع ArabDev المعلومات الشخصية ولا يؤجرها ولا يتاجر بها، ولا تُختار الإعلانات أبدًا باستخدام بياناتك الشخصية. راجع سياسة الخصوصية.

هل يستطيع الناس رؤية المنشورات التي أعجبتني؟

يُبلَّغ كاتب المنشور عندما تُعجب به، ولا توجد قائمة عامة بإعجاباتك.

هل المحفوظات خاصة؟

نعم، خاصة تمامًا.

كم إعلانًا سأرى؟

إعلانين على الأكثر في كل صفحة من 20 منشورًا، إضافة إلى إعلان واحد في العمود الجانبي على الشاشات الكبيرة.

أسئلة أخرى

هل توجد رسائل خاصة؟

ليس في الإصدار 1.0.0.

هل يوجد تطبيق للهاتف؟

ArabDev موقع متجاوب مصمم للهواتف والحواسيب معًا، ولا يوجد تطبيق منفصل للتثبيت.

هل أستطيع المساهمة في ArabDev؟

نعم، راجع المساهمة والترخيص، أو راسل hi@arabdev.site.

كيف أتواصل مع ArabDev؟

للمساعدة والأعطال والبلاغات راسل support@arabdev.site، وللرعاية والمساهمات والأسئلة الأخرى راسل hi@arabdev.site. راجع التواصل والدعم.

التصنيفات: المساعدة

حل المشكلات

مشكلات شائعة وطرق حلها. الرسائل مقتبسة كما تظهر في الواجهة العربية.

تسجيل الدخول

الرسالة أو العَرَضما الذي تفعله
«البريد الإلكتروني أو كلمة المرور غير صحيحة.»تحقق من كتابة البريد وتأكد أن مفتاح الحروف الكبيرة غير مفعّل. وإن لم تكن متأكدًا من كلمة المرور فاستخدم «نسيت كلمة المرور؟».
«محاولات كثيرة. انتظر قليلًا ثم حاول مجددًا.»بلغت أحد حدود الاستخدام. انتظر دقيقة ثم حاول مجددًا.
«انتهت جلستك. سجّل الدخول مرة أخرى.»انتهى تسجيل دخولك: إما سُجِّل خروجك من مكان آخر، أو غيّرت كلمة المرور، أو كان خيار «إبقائي مسجلًا للدخول» غير مفعّل وانتهت الجلسة. سجّل الدخول مجددًا.
يُسجَّل خروجك كلما أغلقت المتصفحفعّل «إبقائي مسجلًا للدخول» عند تسجيل الدخول. والمتصفحات المضبوطة على حذف ملفات تعريف الارتباط عند الإغلاق تسجّل خروجك أيضًا.
رابط الاستعادة يقول إنه غير صالح أو منتهي الصلاحيةتعمل الروابط 30 دقيقة ولمرة واحدة فقط. اطلب رابطًا جديدًا.

إنشاء الحساب

الرسالةمعناها
«اسم المستخدم هذا مستخدم بالفعل.»الاسم مأخوذ. جرّب إضافة أرقام أو شرطة سفلية.
«اسم المستخدم هذا محجوز.»الموقع نفسه يستخدم هذا الاسم، فاختر غيره.
«من 3 إلى 20 حرفًا: حروف إنجليزية وأرقام و _ ، ويبدأ بحرف.»اسم المستخدم يخالف إحدى قواعد اسم المستخدم.
«يوجد حساب مسجل بهذا البريد بالفعل.»سجّل الدخول بدلًا من ذلك، أو استعد كلمة مرور ذلك الحساب.
«اجمع بين الحروف والأرقام لتصبح أصعب في التخمين.»أضف حرفًا ورقمًا على الأقل، وتجنب تكرار الرموز نفسها.
«كلمتا المرور غير متطابقتين.»حقلا كلمة المرور مختلفان.

رفع الصور

الرسالةما الذي تفعله
«يجب ألا يتجاوز حجم الصورة 5 ميغابايت.»صدّر الصورة بحجم أصغر أو جودة أقل.
«استخدم صورة بصيغة JPEG أو PNG أو WebP أو GIF.»حوّل الملف، من HEIC أو BMP أو TIFF مثلًا، إلى إحدى هذه الصيغ.
«هذا الملف ليس صورة صالحة.»الملف تالف أو ليس صورة حقًا. افتحه في محرر صور وأعد حفظه.
«هذه الصورة صغيرة جدًا.»تحتاج الصورة الشخصية إلى 96×96 بكسل على الأقل، وصورة المنشور إلى 64 بكسل على الأقل للضلع الأقصر.
«أبعاد هذه الصورة كبيرة جدًا.»صغّرها: حتى 8000 بكسل للضلع في الصورة الشخصية، وحتى 10,000 في صورة المنشور.

النشر

  • «اكتب شيئًا قبل النشر.» المتن فارغ، والعنوان وحده لا يكفي.
  • «أدخل رابطًا صحيحًا يبدأ بـ http:// أو https://.» صحّح الرابط المرفق أو امسح الحقل.
  • «لا يمكنك إعادة نشر منشورك.» إعادة النشر لمشاركة منشورات الآخرين.
  • تغيّر تنسيقي بعد النشر. يُزال التنسيق الخارج عن خيارات المحرر. راجع ماذا يحدث لمنشورك عند النشر.

العرض

  • التخطيط معكوس في الاتجاه الخطأ. الاتجاه يتبع اللغة، فبدّل اللغة من قائمة الحساب أو من الإعدادات ← المظهر.
  • الوضع الداكن لا يتبع جهازي. اضبط السمة على «حسب الجهاز».
  • «تعذر الاتصال بالخادم.» تحقق من اتصالك بالإنترنت وأعد تحميل الصفحة.
التصنيفات: المساعدة

التواصل والدعم

لـ ArabDev عنوانا بريد: واحد للحصول على المساعدة، وآخر لكل ما عدا ذلك. راسلنا بالعربية أو الإنجليزية، فكل رسالة يقرؤها شخص حقيقي.

أي عنوان تستخدم

العنوانراسله بخصوص
support@arabdev.siteمشكلات حسابك أو تسجيل الدخول أو استعادة كلمة المرور؛ والأعطال وكل ما لا يعمل كما يصفه هذا الويكي؛ والإبلاغ عن منشورات أو تعليقات أو حسابات تخالف إرشادات المجتمع؛ والمشكلات الأمنية؛ وطلبات الخصوصية مثل الحصول على نسخة من بياناتك.
hi@arabdev.siteرعاية ArabDev أو الإعلان فيه؛ والمساهمة بالشيفرة أو الترجمة أو التوثيق؛ والشراكات والالتزامات مع المجتمعات والشركات والجامعات؛ والصحافة؛ والأسئلة العامة عن ArabDev.
لست متأكدًا؟

إذا كان هناك شيء معطّل أو يعيقك فراسل الدعم، وإذا كان لديك ما تودّ مناقشته فراسل العنوان الثاني.

الحصول على الدعم

لمساعدتنا على الرد بسرعة:

  • راسلنا من البريد المرتبط بحسابك في ArabDev، واذكر اسم المستخدم.
  • صِف ما كنت تفعله، وما توقعت حدوثه، وما حدث فعلًا.
  • انقل أي رسالة كما ظهرت بالضبط، أو أرفق لقطة شاشة.
  • اذكر المتصفح والجهاز اللذين تستخدمهما، وهل كانت واجهة ArabDev بالعربية أم بالإنجليزية.
  • لا ترسل كلمة مرورك أبدًا، فلن يطلبها منك أحد من ArabDev.

قبل المراسلة، قد تجد الإجابة في مقالتي حل المشكلات والأسئلة الشائعة.

الإبلاغ عن محتوى

لا يحتوي الإصدار 1.0.0 على زر إبلاغ داخل التطبيق بعد. للإبلاغ عن منشور أو تعليق أو حساب، أرسل رابطه إلى support@arabdev.site مع شرح قصير. تُعالَج البلاغات بسرية، ولا يُبلَّغ صاحب المحتوى بهوية من أبلغ عنه.

الإبلاغ عن مشكلة أمنية

أرسل المشكلات الأمنية بشكل خاص إلى support@arabdev.site بعنوان «أمان»، ولا تنشرها قبل إصلاحها. اذكر خطوات إعادة إنتاج المشكلة وما يستطيع المهاجم فعله بها. ونرجو ألا تصل إلى بيانات الآخرين أو تعطّل الخدمة أثناء الاختبار.

طلبات الخصوصية

للحصول على نسخة من بياناتك أو تصحيحها أو السؤال عن طريقة استخدامها، راسل support@arabdev.site من البريد المرتبط بحسابك. نؤكد استلام الطلبات خلال 7 أيام ونرد خلال 30 يومًا. راجع سياسة الخصوصية لمعرفة حقوقك.

الرعاة والمساهمون والشركاء

راسل hi@arabdev.site إذا كنت تودّ:

  • رعاية ArabDev أو نشر إعلان فيه. تخضع الإعلانات لقواعد صارمة، راجع الإعلانات في ArabDev.
  • المساهمة بالشيفرة، أو تصحيح ترجمة، أو تحسين هذا الويكي. راجع المساهمة والترخيص.
  • إحضار مجتمعك أو شركتك أو جامعتك إلى ArabDev، أو الالتزام بدعمه على المدى الطويل.
  • السؤال عن أي شيء آخر يخص ArabDev.

عناوين ArabDev

العنوانما هو
arabdev.site/dashboardتطبيق ArabDev. لوحة التحكم هي صفحتك الرئيسية، والعنوان arabdev.site يأخذك إليها.
wiki.arabdev.siteهذا الويكي.
privacy.arabdev.siteسياسة الخصوصية.
patch.arabdev.siteملاحظات الإصدار: ما الذي تغيّر في كل إصدار.

لن يراسلك ArabDev إلا من عنوان ينتهي بـ @arabdev.site، ولن يطلب كلمة مرورك عبر البريد أبدًا. تعامل بحذر مع أي رسالة أخرى تدّعي أنها من ArabDev.

التصنيفات: المساعدة · الأمان

مسرد المصطلحات

المحفوظات
حفظ خاص لمنشور، يظهر في صفحة المحفوظات وفي تبويب المحفوظات في ملفك الشخصي.
الاسم الظاهر
الاسم الذي يظهر في ملفك ومنشوراتك، بأي لغة، حتى 50 حرفًا.
المسودة
منشور غير منشور لا يراه غيرك.
قائمة المنشورات
مجموعة من المنشورات. للصفحة الرئيسية ثلاثة تبويبات: لك، والمتابَعون، والأحدث.
المتابعة
الاشتراك في منشورات شخص وإعادات نشره لتظهر في تبويب «المتابَعون» لديك.
إعلان المنصة
إعلان يروّج فيه ArabDev لميزاته.
الاهتمام
واحد من 25 موضوعًا تختارها لتشكيل صفحتك الرئيسية واقتراحاتك.
الإشارة
كتابة @username في منشور أو تعليق، فيصل إشعار لذلك الشخص.
الإعداد الأولي
نافذة الإعداد ذات الخطوات الأربع التي تظهر في زيارتك الأولى.
إعادة النشر
مشاركة منشور شخص آخر مع متابعيك دون تغييره.
RTL / LTR
اتجاه النص من اليمين لليسار (العربية) ومن اليسار لليمين (الإنجليزية).
إعلان
الوسم الذي يميز كل إعلان.
الوسم
كلمة مفتاحية تصف المنشور، مثل #python، حتى 5 لكل منشور.
الرائج
منشورات آخر 7 أيام مرتبة حسب الإعجابات والتعليقات وإعادات النشر.
اسم المستخدم
معرّفك الفريد، ويُستخدم في عنوان ملفك وفي الإشارات.
التصنيفات: مراجع

نظرة على البنية

ArabDev تطبيق ويب أحادي الصفحة تسنده واجهة REST برمجية. تصف هذه المقالة كيف تترابط الأجزاء.

التقنيات

الطبقةالتقنية
واجهة المستخدمReact 19 وTypeScript وMaterial UI 9 وEmotion (مع إضافة لأنماط الاتجاه من اليمين لليسار)
التوجيه والبياناتReact Router 8 وTanStack Query 5 وAxios
المحررTipTap 3 (المبني على ProseMirror)
اللغاتi18next مع الملفين ar.json وen.json
البناءVite 8
الواجهة البرمجيةPython وFastAPI وPydantic 2
قاعدة البياناتSQLAlchemy 2 وترحيلات Alembic: SQLite للتطوير والاستضافة على خادم واحد، وPostgreSQL (Neon) على Vercel
الأمانتجزئة كلمات المرور بـArgon2id، ورموز وصول JWT، ورموز تحديث دوّارة
سلامة المحتوىnh3 على الخادم وDOMPurify في المتصفح
الصورPillow مع إعادة الترميز إلى WebP
اختياريRedis لمشاركة حدود الاستخدام والتخزين المؤقت
الاختباراتpytest (51 اختبارًا، تعمل على SQLite وPostgreSQL)

هيكل المستودع

Arabdev/
├── backend/          FastAPI application, Alembic migrations, tests
├── frontend/         React application
├── wiki/             This wiki (static site)
├── privacy/          Privacy Policy (static site)
├── patch-notes/      Patch notes (static site)
├── api/index.py      Entry point that serves the API on Vercel
├── vercel.json       Build, routing and the scheduled clean-up
├── requirements.txt  Python packages for the Vercel function
├── LICENSE           GNU GPL v3
├── docker-compose.yml
└── README.md

بنية الخادم

  • app/main.py ينشئ التطبيق: الطبقات الوسيطة، ومعالجات الأخطاء، وموجّه الواجهة البرمجية، ومسار ملفات الوسائط.
  • app/core/: الإعدادات، ومحرك قاعدة البيانات، وأدوات الأمان، والاعتماديات، وأنواع الأخطاء، وحدود الاستخدام، والتخزين المؤقت.
  • app/models/: نماذج SQLAlchemy للجداول الـ19.
  • app/schemas/: نماذج Pydantic للطلبات والاستجابات.
  • app/api/v1/: وحدات المسارات مجمّعة حسب الموضوع.
  • app/repositories/: بناة الاستعلامات.
  • app/services/: قواعد العمل، كالصلاحيات والإشعارات وقوائم المنشورات ومعالجة الوسائط.
  • app/utils/: منظّف HTML، والمدققات، والتقسيم إلى صفحات، وأدوات النصوص.

بنية الواجهة

  • src/api/: عميل HTTP، ودوال نقاط النهاية، ومفاتيح الاستعلامات، وأدوات تحديث الذاكرة المؤقتة.
  • src/features/: المصادقة، والإعداد الأولي، والمنشورات، والمحرر، والتعليقات، والملف الشخصي، والمستخدمون، والبحث، والإعلانات، والإشعارات، والتفضيلات.
  • src/components/: مكونات مشتركة مثل الشعار وحالة الفراغ وحالة التحميل والتنقل بين الصفحات والتنبيهات.
  • src/layouts/: AppLayout وNavbar وSidebar وRightSidebar وMobileNavigation.
  • src/pages/: مكونات المسارات، وتُحمَّل عند الحاجة.
  • src/theme/: الألوان، والخطوط، وقيم التصميم، وسمة Material UI.

جداول قاعدة البيانات

الجدوليحتوي على
usersالحسابات: اسم المستخدم والبريد وبصمة كلمة المرور والحالة ونسخة الرموز
profilesالاسم الظاهر والنبذة والموقع الجغرافي والموقع الإلكتروني والصورة
user_settingsالسمة واللغة وتفضيلات الخصوصية والإشعارات
interests وuser_interestsالمواضيع الـ25 ومن اختارها
posts وdraftsالمنشورات المنشورة (مع العدادات) والمسودات
tags وpost_tagsالوسوم وارتباطها بالاهتمامات والمنشورات التي تستخدمها
commentsالتعليقات والردود
likes وbookmarks وreposts وfollowsصف واحد لكل شخص وهدف
notificationsمن فعل ماذا ولمن، وهل قُرئ
mediaالصور المرفوعة: المالك والنوع ومفتاح التخزين والحجم والأبعاد
adsالإعلانات بمكانها ولغتها وجدولها الزمني وأعدادها الإجمالية
refresh_tokens وpassword_reset_tokensبصمات رموز الجلسات والاستعادة مع تواريخ انتهائها

المفاتيح الأجنبية وأسماء المستخدمين والبريد وتواريخ الإنشاء والوسوم وعلاقات المتابعة كلها مفهرسة. وتعمل SQLite بوضع WAL مع فرض المفاتيح الأجنبية.

التصنيفات: المطورون

التشغيل والاستضافة الذاتية

التشغيل محليًا

# Backend
cd backend
python -m venv .venv
.venv/Scripts/activate        # macOS/Linux: source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env          # set SECRET_KEY
alembic upgrade head          # creates backend/arabdev.db
python -m app.cli seed --demo # optional demo content
uvicorn app.main:app --reload --port 8000

# Frontend (second terminal)
cd frontend
npm install
npm run dev                   # http://localhost:5173

يحوّل خادم التطوير الطلبات إلى /api و/media نحو الواجهة البرمجية على المنفذ 8000، ويقدّم هذا الويكي وسياسة الخصوصية وملاحظات الإصدار على /wiki/ و/privacy/ و/patch-notes/.

الإعدادات

المتغيرالقيمة الافتراضيةالغرض
SECRET_KEYقيمة للتطويرتوقيع رموز الوصول، وهو مطلوب في بيئة الإنتاج.
DATABASE_URLbackend/arabdev.dbمكان ملف SQLite، أو رابط PostgreSQL مثل الذي يضيفه Neon إلى مشروع Vercel.
ENVIRONMENTdevelopmentقيمة production ترفض التشغيل دون مفتاح سري حقيقي.
REDIS_URLغير مضبوطمشاركة حدود الاستخدام والذاكرة المؤقتة بين العمليات.
CORS_ORIGINSعناوين التطوير المحليةقائمة مفصولة بفواصل بمصادر المتصفح المسموحة.
FRONTEND_URLhttp://localhost:5173العنوان الأساسي في روابط استعادة كلمة المرور. في بيئة الإنتاج: https://arabdev.site.
COOKIE_SECUREfalseاضبطه على true عند التقديم عبر HTTPS.
MEDIA_ROOTbackend/mediaمكان تخزين الصور المرفوعة.
STORAGE_BACKENDlocalالقيمة database تحفظ الصور في قاعدة البيانات بدل القرص (الافتراضي على Vercel).
CRON_SECRETغير مضبوطالرمز الذي تتوقعه نقطة التنظيف المجدولة.
ACCESS_TOKEN_EXPIRE_MINUTES15عمر رمز الوصول.
REFRESH_TOKEN_EXPIRE_DAYS30مدة «إبقائي مسجلًا للدخول».
RATE_LIMIT_ENABLEDtrueتفعيل حدود الاستخدام أو إيقافها.

أوامر الإدارة

  • python -m app.cli seed يضيف الاهتمامات الـ25 وإعلانات المنصة، ويمكن تشغيله مرارًا بأمان.
  • python -m app.cli seed --demo يضيف أيضًا عشرة مطورين وهميين و26 منشورًا، للتطوير فقط.
  • python -m app.cli make-admin USERNAME يمنح مستخدمًا صلاحيات المسؤول.
  • python -m app.cli purge-tokens يحذف جلسات الدخول المنتهية وروابط إعادة تعيين كلمة المرور القديمة. وتقوم الواجهة البرمجية بذلك عند تشغيلها، ثم كل ست ساعات على الخادم، أو مرة يوميًا على Vercel عبر المهمة المجدولة في vercel.json.
  • alembic upgrade head يطبّق ترحيلات قاعدة البيانات.
  • pytest يشغّل الاختبارات على قاعدة بيانات جديدة في الذاكرة.

Docker

الأمر docker compose up --build يشغّل Redis والواجهة البرمجية (مع ملف SQLite على وحدة تخزين data والصور على وحدة media) وnginx الذي يقدّم التطبيق على المنفذ 8080. تطبّق حاوية الواجهة البرمجية الترحيلات وتضيف البيانات المرجعية عند تشغيلها.

النشر

  • Vercel (وهو ما يعمل عليه arabdev.site): مشروع واحد يُبنى من جذر المستودع. يبني vercel.json التطبيق في frontend/dist ويقدّم الواجهة البرمجية من api/index.py، فيتشارك التطبيق والواجهة عنوانًا واحدًا دون أي إعدادات عبر المواقع.
  • يحتاج هذا المشروع إلى قاعدة بيانات PostgreSQL (أضف Neon من تبويب Storage فيضبط DATABASE_URL)، إضافة إلى SECRET_KEY وCRON_SECRET. أما VERCEL=1 فيُضبط تلقائيًا ويشغّل وضع الإنتاج وملفات الارتباط الآمنة وتخزين الصور في قاعدة البيانات.
  • المجلدات wiki وprivacy وpatch-notes مواقع ثابتة كاملة لا تحتاج إلى بناء، وتُنشر كمشاريع مستقلة على wiki.arabdev.site وprivacy.arabdev.site وpatch.arabdev.site.
  • أو على خادم واحد (خادم افتراضي أو Docker): أبقِ SQLite واحفظ الصور على القرص. عندها تحتاج الواجهة البرمجية إلى قرص دائم لملف قاعدة البيانات والصور، وتُشغَّل في عملية واحدة. وقدّم ناتج بناء التطبيق (frontend/dist ومعه LICENSE.txt) كموقع ثابت، مع ضبط VITE_API_ORIGIN إذا كانت الواجهة البرمجية على عنوان آخر.
  • قدّم كل شيء عبر HTTPS واضبط COOKIE_SECURE=true.

النسخ الاحتياطي

مع SQLite انسخ احتياطيًا الملف arabdev.db ومجلد الوسائط، وأثناء عمل الواجهة البرمجية استخدم sqlite3 arabdev.db ".backup backup.db" للحصول على نسخة متسقة. ومع PostgreSQL استخدم النسخ الاحتياطي لدى مزوّدك (يحتفظ Neon بنافذة استرجاع) أو pg_dump؛ والصور داخل قاعدة البيانات، فنسخة واحدة تغطي كل شيء.

البريد الإلكتروني

يكتب الإصدار 1.0.0 رسائل استعادة كلمة المرور في سجل الخادم. ولإرسال بريد حقيقي اربط مزوّدًا في backend/app/services/email_service.py.

التصنيفات: المطورونالتشغيل

مرجع الـ API

كل ما يفعله التطبيق يمر عبر واجهة REST ذات إصدار تحت /api/v1. يُقدَّم التوثيق التفاعلي على /api/docs (Swagger UI) و/api/redoc، والوصف المقروء آليًا على /api/v1/openapi.json.

المصادقة

  • أرسل رمز الوصول في الترويسة Authorization: Bearer <token>.
  • POST /auth/login وPOST /auth/register يعيدان {access_token, token_type, expires_in, user} ويضبطان ملف تعريف ارتباط التحديث.
  • POST /auth/refresh وPOST /auth/logout يستخدمان ملف تعريف الارتباط ويتطلبان الترويسة X-ArabDev-Client، التي تحميهما من الطلبات عبر المواقع.

التقسيم إلى صفحات

تقبل كل نقطة نهاية تعيد قائمة المعاملين page (من 1) وlimit (من 1 إلى 20، والافتراضي 20)، وتعيد:

{ "items": [...], "page": 1, "limit": 20, "total": 100, "pages": 5 }

الأخطاء

للأخطاء دائمًا وصف مقروء في detail ورمز ثابت في code. تضيف أخطاء التحقق قائمة errors، وتضيف الأخطاء الخاصة بحقل واحد field.

{ "detail": "Username is already taken", "code": "username_taken", "field": "username" }

من الرموز الشائعة: invalid_credentials وtoken_invalid وsession_expired وrate_limited وusername_taken وemail_taken وpassword_too_weak وpost_empty وnot_post_author وcannot_repost_own وcannot_follow_self وfollow_lists_private وfile_too_large وfile_not_image وmedia_not_owned.

نقاط النهاية

المجموعةنقاط النهاية
المصادقةPOST /auth/register, POST /auth/login, POST /auth/refresh, POST /auth/logout, GET /auth/availability, POST /auth/forgot-password, POST /auth/reset-password
حسابكGET /users/me, PATCH /users/me/profile, PATCH /users/me/username, PATCH /users/me/email, PUT /users/me/password, PUT /users/me/interests, GET|PATCH /users/me/settings, POST /users/me/onboarding/complete, POST|DELETE /users/me/avatar, DELETE /users/me, GET /users/me/bookmarks
المستخدمونGET /users/recommended, GET /users/{username}, GET /users/{username}/posts, GET /users/{username}/replies, GET /users/{username}/followers, GET /users/{username}/following, POST|DELETE /users/{id}/follow
المنشوراتGET /posts?tab=for_you|following|latest&tag=, GET /posts/trending, GET /posts/{id}, POST /posts, PUT /posts/{id}, DELETE /posts/{id}
التفاعلاتPOST|DELETE /posts/{id}/like, POST|DELETE /posts/{id}/bookmark, POST|DELETE /posts/{id}/repost
التعليقاتGET /posts/{id}/comments, POST /posts/{id}/comments, DELETE /comments/{id}
المسوداتGET|POST /drafts, GET|PUT|DELETE /drafts/{id}
البحث والوسوم والاهتماماتGET /search?q=&type=all|posts|users|tags, GET /tags/popular, GET /tags/{slug}, GET /interests
الإشعاراتGET /notifications, GET /notifications/unread-count, POST /notifications/read-all, POST /notifications/{id}/read
الوسائطPOST /media, DELETE /media/{id}
الإعلاناتGET /ads, POST /ads/{id}/click، وللمسؤولين GET|POST /ads/manage, PUT|DELETE /ads/manage/{id}
الحالةGET /health

مثال: نشر منشور

POST /api/v1/posts
Authorization: Bearer eyJhbGciOi...
Content-Type: application/json

{
  "title": "Pagination that doesn't lie",
  "content_html": "<p>Always return total and pages.</p>",
  "link_url": "https://example.org/article",
  "image_media_id": null,
  "tags": ["fastapi", "databases"]
}

الاستجابة هي المنشور الذي أُنشئ، مع HTML المنظَّف والوسوم والكاتب والعدادات وحالة إعجابك وحفظك وإعادة نشرك.

المساهمة والترخيص

الترخيص

ArabDev برمجية حرة صادرة بموجب رخصة جنو العمومية العامة، الإصدار 3 أو أحدث (GPL-3.0-or-later). باختصار:

  • يحق لك استخدام ArabDev ودراسته ومشاركته وتعديله.
  • إذا وزّعت ArabDev أو نسخة معدلة منه فعليك مشاركة شيفرتها المصدرية بالرخصة نفسها، والإبقاء على إشعارات حقوق النشر والترخيص.
  • يأتي ArabDev دون أي ضمان.

هذا الملخص للتسهيل فقط، والنص الرسمي للرخصة (بالإنجليزية) هو المعتمد.

مكونات من أطراف أخرى

يستخدم ArabDev مكتبات مفتوحة المصدر بتراخيصها الخاصة، وهي مذكورة في frontend/package.json وbackend/pyproject.toml. وتُستخدم خطوط Alexandria وTajawal وAnton بموجب رخصة SIL المفتوحة للخطوط، ويتضمن كل مجلد خط في frontend/public/fonts رخصته.

للحديث عن المساهمة في ArabDev أو رعايته أو الشراكة معه، راسل hi@arabdev.site.

المساهمة بالكود

  • حافظ على طبقات الخادم: المسارات تستدعي الخدمات، والخدمات تستخدم المستودعات.
  • أعِد الأخطاء برمز code ثابت، وأضف ترجمته إلى ملفي اللغتين.
  • لا تكتب نصوص الواجهة مباشرة في المكونات، بل أضف مفاتيح إلى src/i18n/ar.json وsrc/i18n/en.json.
  • استخدم قيم السمة لا الألوان الثابتة، وخصائص CSS الفيزيائية التي تستطيع إضافة الاتجاه عكسها (أو المنطقية حيث يهم اتجاه المحتوى).
  • أضف اختبارات لتغييرات الخادم أو حدّثها، وشغّل pytest وnpm run typecheck وnpm run format:check.
  • حدّث هذا الويكي وملاحظات الإصدار عندما يتغير السلوك.

تحسين الترجمات

تعيش اللغتان في ملفي JSON بالمفاتيح نفسها. صيغ الجمع العربية (صفر، مفرد، مثنى، جمع قليل، جمع كثير، أخرى) مدعومة، ويجب ملؤها لكل نص يحتوي على رقم.