دليل المجتمع إلى ArabDev: كيف تستخدمه، وكيف تبقى آمنًا فيه، وكيف تبني عليه.
ArabDev منصة اجتماعية ومهنية ينشر فيها المطورون مقالات تقنية، ويتابعون أعمال بعضهم، ويتناقشون في الكود عبر التعليقات، ويكتشفون المشاريع من خلال الوسوم والمنشورات الرائجة والبحث.
صُمِّمت المنصة أولًا لمجتمع المطورين الناطقين بالعربية. تعمل الواجهة كلها بالعربية من اليمين إلى اليسار، وبالإنجليزية من اليسار إلى اليمين، ويمكن للمنشور الواحد أن يجمع اللغتين معًا، إذ تختار كل فقرة اتجاهها بنفسها.
يشرح هذا الويكي طريقة عمل كل جزء من ArabDev، ويخاطب ثلاث فئات من القراء: من يستخدمون المنصة، ومن يريدون أن يفهموا كيف تُحمى بياناتهم وحساباتهم، والمطورين الذين يشغّلون المنصة أو يبنون على واجهتها البرمجية.
يُفتح الويكي في تبويب مستقل في المتصفح لتبقيه بجانب ArabDev أثناء عملك. استخدم مربع البحث في الأعلى (أو اضغط /) للانتقال إلى أي موضوع.
كثير من منشورات ArabDev تشرح الفكرة بالعربية وتعرض الكود بالإنجليزية، والمحرر يتعامل مع ذلك دون أي خطوات إضافية. فكل فقرة وعنوان وعنصر قائمة وخلية جدول يحمل اتجاهًا تلقائيًا، فتصطف الفقرة العربية على اليمين والفقرة الإنجليزية على اليسار داخل المنشور نفسه.
تُعرض كتل الكود دائمًا من اليسار إلى اليمين أيًّا كانت اللغة المحيطة بها. وتُعزل الوسوم والإشارات عن النص المحيط، فتبقى @layla_dev مقروءة حتى في منتصف جملة عربية.
يوثّق هذا الويكي الإصدار 1.0.0 من ArabDev. عندما يغيّر إصدار جديد طريقة عمل شيء ما، تُحدَّث المقالة المعنية ويُذكر التغيير في ملاحظات الإصدار.
الويكي مجموعة صفحات ثابتة: لا حسابات فيه، ولا تعليقات، ولا أدوات تحليل أو تتبّع. الشيء الوحيد الذي يتذكره هو اختيارك بين الوضع الفاتح والداكن، ويتشاركه مع ArabDev عبر التخزين المحلي في متصفحك.
ترافقك هذه المقالة في دقائقك العشر الأولى على ArabDev: إنشاء الحساب، وتسجيل الدخول، وخطوات الإعداد الأربع التي تظهر في زيارتك الأولى، وما تفعله بعدها.
إنشاء حساب
افتح arabdev.site واختر إنشاء حساب. ستحتاج إلى أربعة أشياء:
اسم المستخدم: المعرّف الفريد الذي يشير إليك به الآخرون (مثل @layla_dev).
البريد الإلكتروني: يُستخدم لتسجيل الدخول واستعادة كلمة المرور، ولا يظهر أبدًا في ملفك الشخصي.
كلمة المرور: تكتبها مرتين للتأكد من عدم وجود خطأ مطبعي.
تُحفظ لغة الواجهة التي تستخدمها عند التسجيل تفضيلًا مبدئيًا لك، ويمكنك تغييرها في أي وقت.
أثناء كتابتك لاسم المستخدم يتحقق 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 حتى ثمانية مطورين بناءً على الاهتمامات التي اخترتها للتو. تعرض كل بطاقة الصورة والاسم واسم المستخدم والنبذة والاهتمامات، مع زر متابعة. تابع من تشاء ثم اختر الانتقال إلى الرئيسية.
ماذا بعد؟
اقرأ الصفحة الرئيسية وتنقّل بين تبويبات «لك» و«المتابَعون» و«الأحدث».
اكتب منشورك الأول: اختر منشور جديد من قائمة التنقل. راجع كتابة المنشورات.
زر صفحة استكشاف لتجد المنشورات الرائجة والوسوم الشائعة ومزيدًا من المطورين.
يبقى زر حفظ معطلًا حتى تغيّر شيئًا. وإذا كانت في حقل مشكلة، كاسم مستخدم محجوز، تظهر الرسالة أسفل ذلك الحقل.
تغيير اسم المستخدم
يتوقف رابط ملفك القديم عن العمل ويصبح الاسم القديم متاحًا للآخرين. أما الروابط التي شاركها الناس والإشارات في المنشورات القديمة فتبقى بالاسم القديم.
الصور الشخصية
الصيغ: JPEG أو PNG أو WebP أو GIF.
الحجم: حتى 5 ميغابايت.
الأبعاد: 96×96 بكسل على الأقل، و8000 بكسل على الأكثر لأي ضلع.
يقص ArabDev الصورة مربعًا من منتصفها، ويصغّرها إلى 400×400 بكسل، ويحفظها بصيغة WebP. وتصبح صور GIF المتحركة ثابتة.
إعادة الترميز تزيل البيانات المخفية مثل نوع الكاميرا والموقع الجغرافي.
عند استبدال الصورة أو إزالتها يُحذف الملف السابق من التخزين.
قائمتا المتابِعين والمتابَعين
افتح القائمتين من الأعداد في الملف الشخصي، أو اذهب إلى /u/username/followers و/u/username/following. يظهر كل شخص في بطاقة فيها نبذته واهتماماته وزر المتابعة. وإذا أوقف أحدهم خيار إظهار قائمتي المتابِعين والمتابَعين يرى الآخرون رسالة «هذا الحساب يُبقي قائمة متابعاته خاصة.»، بينما يرى صاحب الحساب قائمتيه دائمًا.
الصفحة الرئيسية هي أول ما تراه بعد تسجيل الدخول. فيها ثلاثة تبويبات، وطريقة سريعة لبدء منشور، وصفحات مرقّمة بدل التمرير اللانهائي.
التبويبات الثلاثة
لك
التبويب الافتراضي، ويعرض كل منشورات ArabDev مرتبة هكذا:
تُجمَّع المنشورات حسب يوم نشرها (بالتوقيت العالمي المنسق)، والأيام الأحدث أولًا.
داخل اليوم الواحد تأتي أولًا منشورات من تتابعهم، ثم المنشورات الموسومة بأحد اهتماماتك، ثم البقية.
داخل كل مجموعة من هذه يأتي المنشور الأحدث أولًا.
بهذا تبقى الصفحة متجددة، ولا يُدفن من اخترت متابعتهم والمواضيع التي تهمك تحت بقية منشورات اليوم. لا يُخفى أي منشور، فتبويب «لك» يغيّر الترتيب فقط.
المتابَعون
منشوراتك ومنشورات من تتابعهم فقط، مضافًا إليها ما أعاد هؤلاء نشره. إذا أعاد عدة أشخاص تتابعهم نشر المنشور نفسه فإنه يظهر مرة واحدة في توقيت أحدث إعادة نشر، مع عبارة مثل «أعاد Omar Khatib النشر».
الأحدث
كل المنشورات من الأحدث إلى الأقدم، بلا أي ترتيب آخر.
يُحفظ التبويب الذي تختاره في شريط العنوان (مثل /dashboard?tab=following)، فإعادة تحميل الصفحة أو مشاركة الرابط تحافظ على العرض نفسه.
صفحات بدل التمرير اللانهائي
لا يحمّل ArabDev المنشورات بلا نهاية أثناء التمرير، وذلك عن قصد. تعرض الصفحة 20 منشورًا على الأكثر، وفي أسفلها:
زرا السابق والتالي.
روابط مرقّمة للصفحات مثل 1 2 3 … 20 على الشاشات الكبيرة، أو «الصفحة 2 من 5» على الهواتف.
رقم الصفحة جزء من العنوان (?page=2)، فتستطيع العودة إلى المكان نفسه تمامًا. عند تغيير الصفحة يعود العرض إلى الأعلى، وتبقى الصفحة السابقة ظاهرة بلون باهت حتى تصل التالية، فلا تومض الشاشة فارغة.
لماذا الصفحات؟
الصفحات تمنح القراءة نهاية طبيعية، وتسهّل العثور على منشور مرة أخرى، وتُبقي التطبيق خفيفًا، إذ لا يرسل الخادم أكثر من 20 منشورًا في المرة الواحدة.
شكل المنشور في الصفحة الرئيسية
صورة الكاتب واسمه الظاهر واسم المستخدم ومنذ متى نُشر (مرّر المؤشر لترى التاريخ والوقت الدقيقين)، وملاحظة «معدّل» إن عدّله الكاتب.
العنوان، أو «بقلم» واسم الكاتب إن لم يكن للمنشور عنوان.
بداية المنشور. تُقتطع المنشورات الطويلة عند نحو 300 بكسل مع تلاشٍ خفيف ورابط اقرأ المزيد.
الصورة والرابط المرفقان إن وُجدا، ووسوم المنشور.
صف الإجراءات: تعليق، إعادة نشر، إعجاب، حفظ، مشاركة، مع العدد بجانب كل منها عندما يكون أكبر من صفر.
النقر في أي مكان على المنشور يفتحه، إلا إذا كان النقر على رابط أو زر أو نص تحدده.
بدء منشور من الصفحة الرئيسية
المربع في أعلى الصفحة («على ماذا تعمل الآن؟») وزر اكتب منشورًا يفتحان محرر المنشورات الكامل. راجع كتابة المنشورات.
الإعلانات في الصفحة الرئيسية
يظهر إعلان بعد كل 8 منشورات: بعد المنشور الثامن والسادس عشر في كل صفحة، أي إعلانان على الأكثر في الصفحة. الإعلانات مميزة بوضوح ولا تشبه المنشورات أبدًا.
المنشورات قلب ArabDev: دروس، وأسئلة، وإعلانات مشاريع، ونصائح، وتجارب. يمنحك المحرر كل ما يحتاجه المنشور التقني، من عناوين وكود وجداول وروابط، دون أن يتحول إلى برنامج معالجة نصوص.
المعاينة، بجانب المحرر على الشاشات الكبيرة، أو خلف تبويب «معاينة» على الشاشات الأصغر.
زرا حفظ كمسودة ونشر في الأعلى.
كتابة المتن
المتن مطلوب، فلا بد أن يحتوي المنشور على نص ما، وكل ما عداه اختياري. يمكنك استخدام:
الفقرات والعناوين والعناوين الفرعية.
الخط العريض والمائل والمسطّر والذي يتوسطه خط، والكود ضمن السطر.
القوائم النقطية والمرقّمة، بما فيها القوائم المتداخلة.
الاقتباسات.
كتل الكود للكود متعدد الأسطر.
الروابط داخل النص.
الجداول مع صف عناوين اختياري.
محاذاة النص (بداية السطر، التوسيط، نهاية السطر، الضبط).
ثلاثة خطوط وستة أحجام وخمسة ألوان للاختيار بينها.
يقبل المحرر أيضًا اختصارات بأسلوب 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. تُفتح روابط المنشورات في تبويب جديد وتُعلَّم كي لا تعدّها محركات البحث تزكية. ثم يفحص المتصفح المنشور مرة أخرى قبل عرضه. هذا الفحص المزدوج يحمي كل من يقرأ منشورك.
يضبط محاذاة الفقرة أو العنوان الحالي، واختيار المحاذاة النشطة مرة أخرى يلغيها.
قائمة نقطية
يحوّل الفقرة إلى قائمة نقطية أو يعيدها.
قائمة مرقّمة
يحوّل الفقرة إلى قائمة مرقّمة أو يعيدها.
اقتباس
يحوّل الفقرة إلى اقتباس يظهر بشريط أحمر في بدايته.
كتلة كود
يبدأ كتلة للكود متعدد الأسطر، تظهر على خلفية داكنة ومن اليسار إلى اليمين دائمًا.
رابط
يفتح نافذة لإضافة رابط على النص المحدد أو تغييره أو إزالته، والعناوين التي تنقصها 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–20) والأعمدة (1–8)، وما إذا كان الصف الأول صف عناوين.
اختر إدراج جدول.
عندما يكون المؤشر داخل الجدول يفتح الزر نفسه قائمة: إضافة صف بالأسفل، وإضافة عمود بعده، وحذف الصف، وحذف العمود، وحذف الجدول.
تتمرر الجداول العريضة جانبيًا على الشاشات الصغيرة بدل أن يُضغط محتواها، وتظهر خلايا العناوين بخط عريض على خلفية ملوّنة خفيفة.
قواعد الروابط
أنواع العناوين المسموحة: https:// وhttp:// وmailto:.
أي نوع آخر، مثل javascript:، يرفضه المحرر ويزيله الخادم.
لإزالة رابط ضع المؤشر عليه، وافتح نافذة الرابط، واختر إزالة الرابط، أو امسح العنوان واحفظ.
دلالات الألوان
اللون
استخدام مقترح
أحمر
أحمر ArabDev: للتحذيرات والمصطلحات المهمة والتأكيد.
أحمر داكن
تأكيد أهدأ للعبارات الأطول.
حبر
أعلى تباين، مثلًا لإبراز كلمة داخل نص رمادي.
رمادي داكن
المعلومات الثانوية.
رمادي فاتح
الملاحظات الجانبية والحواشي والإضافات الاختيارية.
لا تعتمد على اللون وحده لنقل المعنى، فبعض القراء لا يميزون بين الألوان. أرفق اللون بكلمات مثل «تحذير:».
الوسوم تصف موضوع المنشور، والاهتمامات تصف ما يعمل به الشخص. ويربط ArabDev بين الاثنين: عندما يطابق وسم المنشور أحد الاهتمامات الخمسة والعشرين يُعدّ المنشور متعلقًا بذلك الاهتمام، وهذا يؤثر في ترتيب تبويب «لك» وفي اقتراحات المطورين.
كيف تُكتب الوسوم
يمكنك كتابة الوسوم كما تشاء، ويحوّل ArabDev كلًا منها إلى اسم وسم مرتب:
يتحول + إلى p و# إلى sharp، فتبقى لغات عائلة C متمايزة.
تُحفظ الحروف العربية، فـ#برمجة وسم صالح.
تُدمج الكتابات الشائعة في وسم واحد (انظر الجدول أدناه).
يُحفظ الوسم المكرر في المنشور الواحد مرة واحدة، ويُحفظ حتى 5 وسوم لكل منشور.
الكتابات التي تُدمج
ما تكتبه
الوسم
js
javascript
ts
typescript
c++
cpp
c#
csharp
.net
dotnet
node وnode.js
nodejs
golang
go
ml
machine-learning
security وinfosec
cybersecurity
sql وdatabase
databases
gamedev
game-development
mobile
mobile-development
ui وux وuiux وui/ux
ui-ux
opensource وoss
open-source
vuejs وvue.js
vue
reactjs وreact.js
react
الاهتمامات الخمسة والعشرون
الاهتمام
الوسم
الاسم بالإنجليزية
JavaScript
javascript
JavaScript
TypeScript
typescript
TypeScript
Python
python
Python
C++
cpp
C++
Rust
rust
Rust
Go
go
Go
Java
java
Java
C#
csharp
C#
React
react
React
Vue
vue
Vue
Angular
angular
Angular
Node.js
nodejs
Node.js
FastAPI
fastapi
FastAPI
Django
django
Django
الذكاء الاصطناعي
ai
AI
تعلّم الآلة
machine-learning
Machine Learning
الأمن السيبراني
cybersecurity
Cybersecurity
Linux
linux
Linux
DevOps
devops
DevOps
الحوسبة السحابية
cloud
Cloud
قواعد البيانات
databases
Databases
تطوير الألعاب
game-development
Game Development
تطوير تطبيقات الجوال
mobile-development
Mobile Development
تصميم الواجهات UI/UX
ui-ux
UI/UX
المصادر المفتوحة
open-source
Open 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_refresh
ملف تعريف ارتباط (HttpOnly)
يبقيك مسجلًا للدخول. لا تستطيع السكربتات قراءته، ولا يُرسل إلا إلى نقاط تسجيل الدخول.
arabdev.lang
التخزين المحلي
لغة الواجهة.
arabdev.mode
التخزين المحلي
السمة: فاتح أو داكن أو حسب الجهاز.
arabdev.session
التخزين المحلي
إشارة بنعم أو لا إلى أن هذا المتصفح سجّل الدخول من قبل، كي لا يُرسل للزوار فحص تسجيل دخول لا داعي له.
mui-color-scheme-light، mui-color-scheme-dark
التخزين المحلي
تكتبهما مكتبة الواجهة لتتذكّر لوحة الألوان الخاصة بكل من الوضع الفاتح والداكن.
react-router-scroll-positions
تخزين الجلسة
يتذكر موضع التمرير عند الرجوع، ويُمحى عند إغلاق التبويب.
هذه هي القائمة كاملة، فلا توجد ملفات تعريف ارتباط للإعلانات أو التحليلات.
الصور والبيانات المخفية
كثيرًا ما تحمل الصور الملتقطة بالهواتف معلومات مخفية مثل التاريخ ونوع الكاميرا والموقع الجغرافي. يعيد ArabDev ترميز كل صورة مرفوعة في ملف جديد لا يحمل تلك المعلومات، فلا تُخزَّن ولا تُعرض إلا الصورة نفسها.
كيف يحمي ArabDev حسابك، وما الذي تستطيع فعله للمساعدة.
كيف تُخزَّن كلمات المرور
لا يخزّن ArabDev كلمة مرورك أبدًا، بل يخزّن بصمة أحادية الاتجاه مصنوعة بخوارزمية Argon2id، وهي مصممة لتكون بطيئة وكثيرة استهلاك الذاكرة على من يحاول تخمين كلمات المرور. حتى القائمون على ArabDev لا يستطيعون رؤية كلمة مرورك. وعند تسجيل الدخول يحسب ArabDev بصمة ما كتبته ويقارن النتيجتين.
كيف تعمل الجلسات
عند تسجيل الدخول يحصل متصفحك على تصريح وصول قصير العمر مدته 15 دقيقة، يُحفظ في ذاكرة الصفحة فقط ولا يُخزَّن أبدًا.
ملف تعريف ارتباط أطول عمرًا يجدد هذا التصريح تلقائيًا. هذا الملف من نوع HttpOnly فلا تستطيع سكربتات الصفحة قراءته، ولا يُرسل إلا إلى نقاط تسجيل الدخول في ArabDev.
كل تجديد يستبدل ملف تعريف الارتباط بآخر جديد. وإذا استُخدم ملف قديم مرة أخرى، وهي علامة على أنه نُسخ، ينهي ArabDev الجلسة كلها. ومهلة قصيرة تمنع حدوث ذلك خطأً عندما يجدد تبويبان في اللحظة نفسها.
لا يخزّن الخادم إلا بصمة كل ملف تسجيل دخول، ووصف المتصفح، وتاريخ الإنشاء وتاريخ الانتهاء.
تسجيل الخروج
اختر تسجيل الخروج من قائمة الحساب، فتنتهي الجلسة على ذلك المتصفح ويُحذف ملف تسجيل الدخول. أما تغيير كلمة المرور أو استعادة كلمة مرور منسية فيسجّل خروجك من كل المتصفحات الأخرى أيضًا.
استعادة كلمة مرور منسية
في صفحة تسجيل الدخول اختر نسيت كلمة المرور؟
أدخل البريد الذي سجلت به واختر إرسال الرابط.
يجيب ArabDev دائمًا بالطريقة نفسها سواء كان البريد مسجلًا أم لا، فلا يستطيع أحد استخدام هذا النموذج لمعرفة من المسجلون.
افتح الرابط الوارد في البريد خلال 30 دقيقة، فهو لا يعمل إلا مرة واحدة.
اختر كلمة مرور جديدة، فتُنهى كل جلساتك الحالية ويمكنك تسجيل الدخول بكلمة المرور الجديدة.
لمن يشغّلون ArabDev
لا يتضمن الإصدار 1.0.0 مزوّد بريد إلكتروني. وإلى أن يُربط مزوّد تُكتب روابط الاستعادة في سجل الخادم. راجع البريد الإلكتروني.
الحماية من التخمين وإساءة الاستخدام
يحدّ ArabDev من عدد المرات التي تستطيع فيها الشبكة نفسها تكرار الإجراءات الحساسة. وعند بلوغ الحد ترى «محاولات كثيرة. انتظر قليلًا ثم حاول مجددًا.».
الإجراء
الحد لكل شبكة
تسجيل الدخول
10 في الدقيقة
إنشاء حساب
10 في الساعة
نسيت كلمة المرور
5 كل 15 دقيقة
تعيين كلمة مرور جديدة
10 كل 15 دقيقة
تغيير كلمة المرور
10 كل 15 دقيقة
التحقق من توفر اسم المستخدم والبريد
60 في الدقيقة
تجديد الجلسة
60 في الدقيقة
نشر منشور
30 في الساعة
التعليق
60 كل 10 دقائق
الإعجاب والحفظ وإعادة النشر
300 في الساعة
المتابعة
120 في الساعة
رفع صورة
30 كل 10 دقائق
البحث
120 في الدقيقة
حمايات أخرى
كل طلب يغيّر شيئًا يُتحقق منه على الخادم. الأزرار التي تراها في التطبيق للتسهيل فقط، أما الصلاحية فيقررها الخادم دائمًا.
يعرض ArabDev عددًا قليلًا من الإعلانات ليبقى مجانيًا، وتخضع لقواعد صارمة كي لا تعيق القراءة أبدًا ولا تضلل أحدًا.
أين تظهر الإعلانات
في قوائم المنشورات: بعد كل 8 منشورات، أي بعد المنشور الثامن والسادس عشر في صفحة من 20 منشورًا، ولا تظهر أبدًا في أماكن عشوائية.
في العمود الجانبي: مساحة إعلانية واحدة، على الشاشات الكبيرة فقط.
لا مكان غير ذلك: لا إعلانات داخل المنشورات أو التعليقات أو الملفات الشخصية أو نتائج البحث أو الإشعارات أو الإعدادات، ولا نوافذ منبثقة.
كيف تميّز الإعلان
يحمل كل إعلان وسمًا مؤطرًا بكلمة إعلان ويذكر الجهة التي تروّج له.
تظهر الإعلانات على خلفية ملوّنة بإطار متقطع، بلا صورة شخصية ولا صف إجراءات، فلا يمكن الخلط بينها وبين المنشورات.
أيقونة معلومات توضّح سبب وجود الإعلان.
كيف تُختار الإعلانات
يُختار الإعلان فقط حسب مكان ظهوره (قائمة المنشورات أو العمود الجانبي)، ولغة واجهتك، ورقم الصفحة الذي يبدّل الإعلانات بشكل متوقع. لا تُستخدم معلوماتك الشخصية أبدًا لاختيار الإعلانات. لا يبني ArabDev ملفات إعلانية عنك ولا يشارك أي شيء عنك مع المعلنين.
ما الذي يُحصى
يحتفظ ArabDev لكل إعلان بعددين إجماليين: كم مرة عُرض، وكم مرة نُقر عليه. ولا يرتبط هذان العددان بك ولا بأي حساب.
إعلانات المنصة
عند الإطلاق، الإعلانات التي تراها رسائل من ArabDev نفسه، كدعوتك إلى مشاركة مشروع مفتوح المصدر أو إكمال ملفك الشخصي، وتحمل عبارة «مُروَّج من ArabDev».
يعمل ArabDev بأفضل صورة عندما يبقى تقنيًا وكريمًا ومحترمًا. تشرح هذه الإرشادات ما يعنيه ذلك عمليًا.
افعل
شارك ما تتعلمه، بما في ذلك النصائح الصغيرة والأخطاء الصادقة.
اشرح «لماذا» لا «كيف» فقط، واذكر الإصدارات والسياق والمفاضلات.
انسب الفضل لأهله: اربط بالمؤلفين الأصليين والمشاريع والتوثيق الذي بنيت عليه.
وجّه ملاحظاتك إلى الكود والفكرة، لا إلى الشخص.
رحّب بالمبتدئين، فكلنا سألنا سؤالنا الأول يومًا ما.
اكتب باللغة التي تخدم قراءك أكثر: العربية أو الإنجليزية أو كلتيهما.
استخدم وسومًا تصف المنشور ليجده الأشخاص المناسبون.
لا تفعل
لا تضايق أحدًا أو تهنه أو تهدده أو تستهدفه لأي سبب.
لا تنشر محتوى يحض على الكراهية بسبب أصل الناس أو دينهم أو جنسهم أو إعاقتهم أو أي جانب آخر من هويتهم.
لا تنشر رسائل مزعجة، أو ترويجًا ذاتيًا متكررًا، أو مزارع روابط، أو عناوين مضللة.
لا تشارك المعلومات الخاصة بالآخرين.
لا تشارك برمجيات خبيثة، أو ثغرات موجهة إلى أنظمة لا تملكها، أو بيانات دخول مسروقة.
لا تنشر محتوى غير قانوني أو ينتهك حقوق النشر أو العلامات التجارية لأحد.
لا تنتحل صفة أشخاص آخرين أو شركات أو ArabDev.
البحث الأمني
مناقشة الثغرات وأساليب الدفاع وطريقة عمل الهجمات أمر مرحب به، فهكذا يتعلم المطورون بناء برمجيات أكثر أمانًا. لكن انشر تفاصيل ثغرة محددة غير مُصلحة في منتج شخص آخر فقط بعد أن تمنحه فرصة معقولة لإصلاحها. وإذا وجدت مشكلة أمنية في ArabDev نفسه فأبلغ عنها بشكل خاص إلى support@arabdev.site بدل نشرها (راجع الإبلاغ عن مشكلة أمنية).
الإشراف
يستطيع كُتّاب المنشورات حذف التعليقات على منشوراتهم، ويستطيع مسؤولو ArabDev حذف أي منشور أو تعليق يخالف هذه الإرشادات. وقد تُعطَّل الحسابات التي تخالفها مرارًا أو بشكل جسيم. لا يحتوي الإصدار 1.0.0 على زر إبلاغ داخل التطبيق بعد، وإلى أن يتوفر أرسل الرابط إلى support@arabdev.site (راجع الإبلاغ عن محتوى).
نعم، استخدام ArabDev مجاني، وشيفرته المصدرية برمجية حرة بموجب رخصة جنو العمومية العامة الإصدار 3.
هل يستطيع الآخرون رؤية بريدي الإلكتروني؟
لا، يُستخدم بريدك فقط لتسجيل الدخول واستعادة كلمة المرور.
هل أستطيع تغيير اسم المستخدم؟
نعم، من الإعدادات ← الملف الشخصي أو من تعديل الملف، ويتغير عنوان ملفك معه. راجع تعديل ملفك الشخصي.
لماذا لا يمكن أن يكون اسم المستخدم بالعربية؟
يُستخدم اسم المستخدم في العناوين والإشارات، لذا يقتصر على الحروف الإنجليزية والأرقام والشرطة السفلية ليسهل كتابته في كل مكان. أما اسمك الظاهر فيمكن أن يكون بالعربية.
كيف أحذف حسابي؟
من الإعدادات ← الحساب ← حذف حسابي. تؤكد بكلمة المرور، فيُحذف كل شيء نهائيًا.
النشر
هل يحتاج المنشور إلى عنوان؟
لا، لكن العنوان يساعد الناس على تقرير قراءته. ويظهر المنشور الذي بلا عنوان بعبارة «بقلم» واسمك.
كم صورة أستطيع إضافتها إلى المنشور؟
صورة مرفقة واحدة لكل منشور في الإصدار 1.0.0.
لماذا اختفت الألوان التي لصقتها؟
يحتفظ ArabDev بألوانه الخمسة وخطوطه الثلاثة وأحجامه الستة فقط لتبقى المنشورات مقروءة في الوضعين الفاتح والداكن. راجع الخطوط والأحجام والألوان.
مشكلات حسابك أو تسجيل الدخول أو استعادة كلمة المرور؛ والأعطال وكل ما لا يعمل كما يصفه هذا الويكي؛ والإبلاغ عن منشورات أو تعليقات أو حسابات تخالف إرشادات المجتمع؛ والمشكلات الأمنية؛ وطلبات الخصوصية مثل الحصول على نسخة من بياناتك.
رعاية ArabDev أو الإعلان فيه؛ والمساهمة بالشيفرة أو الترجمة أو التوثيق؛ والشراكات والالتزامات مع المجتمعات والشركات والجامعات؛ والصحافة؛ والأسئلة العامة عن ArabDev.
لست متأكدًا؟
إذا كان هناك شيء معطّل أو يعيقك فراسل الدعم، وإذا كان لديك ما تودّ مناقشته فراسل العنوان الثاني.
الحصول على الدعم
لمساعدتنا على الرد بسرعة:
راسلنا من البريد المرتبط بحسابك في ArabDev، واذكر اسم المستخدم.
صِف ما كنت تفعله، وما توقعت حدوثه، وما حدث فعلًا.
انقل أي رسالة كما ظهرت بالضبط، أو أرفق لقطة شاشة.
اذكر المتصفح والجهاز اللذين تستخدمهما، وهل كانت واجهة ArabDev بالعربية أم بالإنجليزية.
لا ترسل كلمة مرورك أبدًا، فلن يطلبها منك أحد من ArabDev.
لا يحتوي الإصدار 1.0.0 على زر إبلاغ داخل التطبيق بعد. للإبلاغ عن منشور أو تعليق أو حساب، أرسل رابطه إلى support@arabdev.site مع شرح قصير. تُعالَج البلاغات بسرية، ولا يُبلَّغ صاحب المحتوى بهوية من أبلغ عنه.
الإبلاغ عن مشكلة أمنية
أرسل المشكلات الأمنية بشكل خاص إلى support@arabdev.site بعنوان «أمان»، ولا تنشرها قبل إصلاحها. اذكر خطوات إعادة إنتاج المشكلة وما يستطيع المهاجم فعله بها. ونرجو ألا تصل إلى بيانات الآخرين أو تعطّل الخدمة أثناء الاختبار.
طلبات الخصوصية
للحصول على نسخة من بياناتك أو تصحيحها أو السؤال عن طريقة استخدامها، راسل support@arabdev.site من البريد المرتبط بحسابك. نؤكد استلام الطلبات خلال 7 أيام ونرد خلال 30 يومًا. راجع سياسة الخصوصية لمعرفة حقوقك.
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
# 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_URL
backend/arabdev.db
مكان ملف SQLite، أو رابط PostgreSQL مثل الذي يضيفه Neon إلى مشروع Vercel.
ENVIRONMENT
development
قيمة production ترفض التشغيل دون مفتاح سري حقيقي.
REDIS_URL
غير مضبوط
مشاركة حدود الاستخدام والذاكرة المؤقتة بين العمليات.
CORS_ORIGINS
عناوين التطوير المحلية
قائمة مفصولة بفواصل بمصادر المتصفح المسموحة.
FRONTEND_URL
http://localhost:5173
العنوان الأساسي في روابط استعادة كلمة المرور. في بيئة الإنتاج: https://arabdev.site.
COOKIE_SECURE
false
اضبطه على true عند التقديم عبر HTTPS.
MEDIA_ROOT
backend/media
مكان تخزين الصور المرفوعة.
STORAGE_BACKEND
local
القيمة database تحفظ الصور في قاعدة البيانات بدل القرص (الافتراضي على Vercel).
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.
كل ما يفعله التطبيق يمر عبر واجهة 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)، وتعيد:
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}
إذا وزّعت 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 بالمفاتيح نفسها. صيغ الجمع العربية (صفر، مفرد، مثنى، جمع قليل، جمع كثير، أخرى) مدعومة، ويجب ملؤها لكل نص يحتوي على رقم.