ويكي الجامعة arwikiversity https://ar.wikiversity.org/wiki/%D8%A7%D9%84%D8%B5%D9%81%D8%AD%D8%A9_%D8%A7%D9%84%D8%B1%D8%A6%D9%8A%D8%B3%D9%8A%D8%A9 MediaWiki 1.46.0-wmf.21 first-letter ميديا خاص نقاش مستخدم نقاش المستخدم ويكي الجامعة نقاش ويكي الجامعة ملف نقاش الملف ميدياويكي نقاش ميدياويكي قالب نقاش القالب مساعدة نقاش المساعدة تصنيف نقاش التصنيف مدرسة نقاش المدرسة بوابة نقاش البوابة موضوع نقاش الموضوع مجموعة نقاش المجموعة TimedText TimedText talk وحدة نقاش الوحدة فعالية نقاش فعالية موضوع قالب:حول ويكي الجامعة 10 883 145678 121861 2026-03-30T20:27:24Z Mdktb 13023 - 145678 wikitext text/x-wiki {| style="float:left; clear:right;" | {{Robelbox|theme=10|title=ويكي جامعة}} {| style="font-size:90%; text-align:right;" | [[ملف:Wikiversity-logo.svg|16px]] '''تعريف بويكي جامعة''' *[[ويكي الجامعة:ترحيب بالقادمين الجدد|أهلا في ويكي جامعة]] *[[ويكي الجامعة:إرشادات|جولات مساعدة]] *[[ويكي الجامعة:أساتذة ويكي الجامعة|تقديم للأساتذة]] *[[ويكي الجامعة:ما هي ويكي الجامعة؟|ما هي ويكي جامعة؟]] *[[ويكي الجامعة:ويكي الجامعة ليست|ويكي جامعة ليست]] *[[ويكي الجامعة:أسئلة وأجوبة|أسئلة حول ويكي الجامعة]] *[[ويكي الجامعة:ثقافة|ثقافة ويكي جامعة]] ---- [[ملف:Wikiversity-logo.svg|16px]] '''تصفح المحتويات''' *[[ويكي الجامعة:تصفح|كليات]] *[[ويكي الجامعة:مدارس|مدارس]] ---- [[ملف:Wikiversity-logo.svg|16px]] '''تعلم وتعليم''' *[[ويكي الجامعة:مشاريع التعلم|مشاريع التعلم]] *[[مصادر التعلم]] *[[ويكي الجامعة:تطوير المواد|تطوير المواد]] *[[ويكي الجامعة:مصادر التعلم التفاعلي|مواد تفاعلية]] *[[ويكي الجامعة:نماذج التعلم|نماذج التعلم]] *[[ويكي الجامعة:إضافة مواد|إضافة مواد]] ---- [[ملف:Wikiversity-logo.svg|16px]] '''أبحاث''' *[[ويكي الجامعة:أبحاث|دليل الأبحاث]] *[[ويكي الجامعة:مجتمع الأبحاث|مجتمع الأبحاث]] ---- [[ملف:Wikiversity-logo.svg|16px]] '''مجتمع''' *[[ويكي الجامعة:الميدان|الميدان]] | [[ويكي الجامعة:أخبار|أخبار]] *[[ويكي الجامعة:مكتب المساعدة|مكتب المساعدة]] *[[ويكي الجامعة:بوابة المجتمع|بوابة المجتمع]] *[[ويكي الجامعة:دردشة|دردشة]] | [[ويكي الجامعة:تواصل|تواصل]] ---- [[ملف:Wikiversity-logo.svg|16px]] '''مراجع''' *[[ويكي الجامعة:هدف|هدف]] *[[ويكي الجامعة:سياسات|سياسات]] *[[ويكي الجامعة:تاريخ ويكي جامعة |تاريخ ويكي جامعة]] *[[ويكي الجامعة:العلاقة مع المشاريع الأخرى|العلاقة مع المشاريع الأخرى]] *[[ويكي الجامعة:تنظيم ويكي جامعة|التنظيم]] *[[ويكي الجامعة:خدمات|خدمات]] *[[خاص:إحصاءات|إحصاءات]] ---- [[ملف:Wikiversity-logo.svg|16px]] '''مساعدة''' * [[مساعدة:محتويات|مساعدة]] | [[ويكي الجامعة:أسئلة|أسئلة]] |} {{Robelbox/close}} |} <noinclude> [[تصنيف:قوالب]]</noinclude> pc6qlxhwonm22io1466i9dsf33c75iu ويكي الجامعة:الميدان 4 1944 145676 145582 2026-03-30T20:16:22Z Mdktb 13023 - أرشفة أقسام إلى [[خاص:وصلة دائمة/145675|ويكي الجامعة:الميدان/أرشيف/2026]] 145676 wikitext text/x-wiki __NEWSECTIONLINK__ {{/مقدمة}} <!-- النقاشات أسفل هذا السطر --> == توحيد شعار ويكي جامعة العربية == السلام عليكم ورحمة الله، وفقًا لما ورد سابقًا في [[w:ar:خاص:وصلة دائمة/72383505#تحديث شعارات المشروع باللغات المحلية|ميدان ويكيبيديا العربية]]، ولأهمية التوافق اللغوي وتوحيد طرق التسمية لمشاريع ويكيميديا المختلفة. فإنه من الصائب إزالة التعريف من اسم '''ويكي الجامعة''' لتصبح '''ويكي جامعة'''. وأقترح بدء عملية التبديل بعد <u>{{لون|أحمر|30 يوم}}</u> من هذا النقاش إن لم يكن من اعتراض وتعليق بمبرر واضح، وذلك نظرًا لضعف التفاعل في هذا المشروع وللتوافق حول الأمر في ويكيبيديا. أرحب بتعليقكم للتطوير والتحسين ودعم الطلب إن وصلتم هنا. [[مستخدم:SanBonne|SanBonne]] ([[نقاش المستخدم:SanBonne|نقاش]]) 17:13، 10 فبراير 2026 (ت ع م) * مؤيد، وهذا ينطبق على الشعار والنطاق.--<span style="font-family: Andalus; font-size: 18px; text-shadow: silver 0.2em 0.2em 0.1em;"><font color="FF000000">[[مستخدم:فيصل|'''فيصل ''']]</font><sup>[[نقاش المستخدم:فيصل|'''(راسلني)''']]</sup></span> 16:13، 12 فبراير 2026 (ت ع م) :مرحبًا @[[مستخدم:SanBonne|SanBonne]] وأهلا بكِ، ملاحظة مبدأية: ذات [[خاص:وصلة دائمة/145360#نقاش_حول_الشعار_العربي|النقاش]] طُرح قبل مدة وبقي دون تفاعل لثلاثة أشهر «رغم الإشارات» لينتهي بالأرشفة، بالنسبة لموضوع «التوافق اللغوي وتوحيد طرق التسمية» فأنوه أن هذا ليس مطلبًا أو ذو أهمية في «مشاريع ويكيميديا للغة الواحدة» وبالمعنى الموجود في المُقترح، فمشاريع اللغة الإنجليزية مثلا: wikiBooks, Wikisource, Wikiversity، ليست على قاعدة واحدة، منها اسمه بالجمع، وآخر مفرد، وأخير بلفظ منحوت، يجمعها لفظة wiki فقط، بالنسبة لفترة النقاش، فلا بأس أن يبقى للحد الذي يناسب الطرح فهو مرتبط باسم المشروع في ويكيميديا ونطاق المشروع، كذلك الشعار، اخيرًا، أوضّح: لا علاقة لمشروع ويكي الجامعة «كمشروع ويكيميدي مستقل» بما يجري من نقاش في المشاريع الشقيقة التي تهدف لإحداث تغييرات فيه، الإ أن يكون النقاش في الميتا أو في مكان آخر ولكن لأفراد نشيطين في المشروع «أو أصحاب قرار» وبشرط أن يوضحوا في صفحات ويكي الجامعة مجريات النقاش ولماذا اُتخذ القرار بعيدًا عن المشروع أولاً أو الميتا ثانيًا « لا يُعتبر ضعف التفاعل من ضمنها، فمن لديه اهتمام بالمشروع يُفترض أن يناقش عنوانه هنا، بل يحرص على ذلك»، قد يُستثنى من ذلك إجراءات شكلية غير مؤثرة يقدّرها المجتمع، بخصوص رأيي بالمقترح، قد احتفظ به لحين تحقق المشاركة الجادة هنا، تحياتي لكِ --[[مستخدم:Mdktb|Mdktb]] ([[نقاش المستخدم:Mdktb|نقاش]]) 22:36، 13 فبراير 2026 (ت ع م) ::@[[مستخدم:فيصل|فيصل]] وفق ما ورد بالنقاش السابق سأعمل على تعديل الشعار، {{ينفذ}} [[مستخدم:Mohammed Qays|Mohammed Qays]] ([[نقاش المستخدم:Mohammed Qays|نقاش]]) 12:11، 14 فبراير 2026 (ت ع م) ::مرحبا {{ر|Mdktb}} ::ما قدمته ليس مبررًا للتوحيد ولإنشاء بنى موافقة للمشاريع. ::فيما يخص [[ويكي_الجامعة:الميدان/أرشيف/2025#نقاش_حول_الشعار_العربي|النقاش السابق]]، فكلامك غير صحيح، إذ أغلقت النقاش بعد 10 أيام من سؤال {{ر|فيصل}} الأخير الذي رد على الزميل {{ر|Mohammed Qays}}. ::وأما حول مشروع ويكي جامعة، وسبب طرحي بهذا الشكل فلأن المشروع خامل تمامًا، [https://ibb.co/wZQYC3DT لقطة شاشة للمشاركات] انظر المشاركات خلال 30 يومًا وأيضًا، أستغرب ممن يطلب مشاركة جادة أن [[ويكي الجامعة:إداريون/تصويت/Mdktb (الرابعة)|يقبل إغلاق تصويت الصلاحية الإدارية]] له وأخذه الصلاحية دون أي مشاركة على الإطلاق. ::ونهايةً، نتيجة لما ورد في ردك ومثلما قلت: أنك تحتفظ برأيك حول المقترح. فلم تقدم أي مبرر أو رد حول المقترح المقدم وإنما فتحت موضوعًا آخر. ::لذلك أسعد بردك لتطوير المشروع وتحسينه والحرص عليه والابتعاد عن إضافة العرقلات والبيروقراطية للمشروع. [[مستخدم:SanBonne|SanBonne]] ([[نقاش المستخدم:SanBonne|نقاش]]) 13:27، 14 فبراير 2026 (ت ع م) :::@[[مستخدم:SanBonne|SanBonne]] حقيقة لم يصلني المقصود بهذه العبارة "ما قدمته ليس مبررًا للتوحيد ولإنشاء بنى موافقة للمشاريع"، هل استفهام ام تقرير؟، بخصوص النقاش السابق، النقاش بدأ في 22 يوليو، وفيصل أرسل 3 اشارات لم يجرِ التفاعل معها ليغلق النقاش قي 26 أكتوبر!! كذلك لم يجرِ التفاعل مع طرحي من مقدّم المقترح خلال هذه الفترة، بخصوص صلاحيات الإدارة، هذا الطلب الرابع، انظري فضلا في الطلبات السابقة، بعضها اكثر من شهر، وثلاثة أسابيع وما حدث طلب تجديد وهذه المدة هي الحد الادنى في الميتا، وعدم المشاركة مقبول في هذه الحالة للخمول، المهم أن يُطرح في المشروع، يمكنكِ استكمال النقاش في مكان آخر، اخيرا، استغرب ان تفهمي من ردي أني معارض للمقترح، ومقصدي من مشاركة جادة، أن لا يُهمل الطلب كما المرة الأولى، وأن لا يُناقش الطلب خارج ويكي الجامعة، واستغرب هذا الحدة في التعليق وكيل الاتهامات، لا داعٍ لها، واختم، المقترح له قبول متوسط من وجهة نظري ليس لما أوردتيه من مبررات، بل الجامعة قد تُستشكل أنها اسم علم معروف أو أنها ويكي "الجامعة بمعنى الجمع للمساهمين"، أو بمعنى انها الويكي الفُضلى للجامعة، وصيغة التنكير قد تحل اشكلات، وهذا لا يعني أن الصيغة بال ليست مقبولة، وانبّه اخيرا، هذه مشاركة وبداية لك في المشروع أرجو ان تستمر، وارجو ان تتروي مستقبلا وتتركِ عنك هذه الحدة الغير مبررة لمجرد ابداء ملاحظات تنظيمية مشروعة، تحياتي -[[مستخدم:Mdktb|Mdktb]] ([[نقاش المستخدم:Mdktb|نقاش]]) 16:38، 14 فبراير 2026 (ت ع م) lxe8psnjjznlylykqhl0uf4otvzejdq مساعدة:محتويات 12 2051 145698 120170 2026-03-31T00:56:46Z Mdktb 13023 -+ إعادة تصميم، تحسين تجاوب وموائمة الوضع الداكن 145698 wikitext text/x-wiki <div style="border: 1px solid var(--border-color-base,#a2a9b1); text-align:center; font-weight:bold; padding:0.5rem; margin:0.3rem 0;"> '''ويكي جامعة''' هو مشروع لمؤسسة [[w:مؤسسة_ويكيميديا|'''ويكيميديا''']] مخصص لمصادر ومشاريع التعلّم والبحث لاستخدامه في جميع مستويات وأنواع وأنماط التعليم من مرحلة ما قبل المدرسة إلى الجامعة، بما في ذلك التدريب المهني والتعلم غير الرسمي. ندعو المعلمين والطلاب والباحثين للانضمام إلينا في إنشاء موارد تعليمية مفتوحة ومجتمعات التعلم التعاوني. قبل البدء في تصفح المواضيع يمكنك تصفح [[مساعدة:جولة القادمين الجدد|جولة القادمين الجدد]] <inputbox> type=search width=30 namespaces=مساعدة**,ويكي جامعة**,قالب، تصنيف searchbuttonlabel=البحث break=no </inputbox> </div> <div style="display:flex; flex-direction: row; flex-wrap: wrap; gap: 0.3rem;"> <div style="flex-grow: 1; width:24rem; border:1px var(--border-color-base,#a2a9b1) solid; padding:0.5rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit;"> == معلومات عامة == === المواضيع الرئيسية === وفيها جميع المقالات التي تساعدك على استخدلم الموسوعة * [[ويكي الجامعة:ما هي ويكي الجامعة|ماهي ويكي الجامعة]] * [[ويكي الجامعة:أسئلة وأجوبة|أسئلة متكررة]] * [[ويكي الجامعة:إرشادات|إرشادات للمستخدمين ]] * [[ويكي الجامعة:أساتذة ويكي الجامعة|إرشادات للأساتذة]] * [[ويكي الجامعة:ثقافة|ثقافة ويكي الجامعة]] === السياسات والصلاحيات === * [[ويكي الجامعة:ويكي الجامعة ليست|ويكي الجامعة ليست]] * [[ويكي الجامعة:صلاحيات المجموعات|صلاحيات المجموعات]] </div> <div style="flex-grow: 1; width:24rem; border:1px solid var(--border-color-base,#a2a9b1); padding:0.5rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit;"> <!-- SECTION BOUNDARY --> == مساعدة التحرير == === إنشاء الصفحات وتعديلها === صفحات تساعدك على التحرير بالموسوعة * [[مساعدة:تحرير|تحرير الدروس]] * [[مساعدة:ملخص التعديل|إضافة ملخص التعديل]] * [[مساعدة:إعادة تسمية الصفحة|إعادة تسمية الصفحات]] * [[مساعدة:إلغاء|إلغاء التعديلات ومنع التخريب]] * [[مساعدة:اختبارات ويكي الجامعة|إنشاء الإختبارات]] * [[مساعدة:صندوق جميل|إضافة الصناديق الجميلة]] === مواضيع أخرى === * [[مساعدة:كتب|إنشاء الكتب]] </div></div> <div style="border: 1px solid var(--border-color-base,#a2a9b1); padding:0.3rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit; margin:0.3rem 0;"> إن لم تجد ما تبحث عنه: يمكنك طرح سؤالك على أحد المشاركين من خلال صفحات النقاش (طريقة طرح السؤال [[مساعدة:محتويات/أين أطرح سؤالي؟|هنا]]) أو بطرح سؤالك في [[ويكي الجامعة:الميدان|الميدان]] أو استعرض [[:تصنيف:مساعدة|كل صفحات المساعدة]] </div> [[تصنيف:مساعدة]] 73p2xxtezka2cm0rs5bso8wp838zqcw 145699 145698 2026-03-31T00:58:52Z Mdktb 13023 +NOTOC 145699 wikitext text/x-wiki __NOTOC__ <div style="border: 1px solid var(--border-color-base,#a2a9b1); text-align:center; font-weight:bold; padding:0.5rem; margin:0.3rem 0;"> '''ويكي جامعة''' هو مشروع لمؤسسة [[w:مؤسسة_ويكيميديا|'''ويكيميديا''']] مخصص لمصادر ومشاريع التعلّم والبحث لاستخدامه في جميع مستويات وأنواع وأنماط التعليم من مرحلة ما قبل المدرسة إلى الجامعة، بما في ذلك التدريب المهني والتعلم غير الرسمي. ندعو المعلمين والطلاب والباحثين للانضمام إلينا في إنشاء موارد تعليمية مفتوحة ومجتمعات التعلم التعاوني. قبل البدء في تصفح المواضيع يمكنك تصفح [[مساعدة:جولة القادمين الجدد|جولة القادمين الجدد]] <inputbox> type=search width=30 namespaces=مساعدة**,ويكي جامعة**,قالب، تصنيف searchbuttonlabel=البحث break=no </inputbox> </div> <div style="display:flex; flex-direction: row; flex-wrap: wrap; gap: 0.3rem;"> <div style="flex-grow: 1; width:24rem; border:1px var(--border-color-base,#a2a9b1) solid; padding:0.5rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit;"> == معلومات عامة == === المواضيع الرئيسية === وفيها جميع المقالات التي تساعدك على استخدلم الموسوعة * [[ويكي الجامعة:ما هي ويكي الجامعة|ماهي ويكي الجامعة]] * [[ويكي الجامعة:أسئلة وأجوبة|أسئلة متكررة]] * [[ويكي الجامعة:إرشادات|إرشادات للمستخدمين ]] * [[ويكي الجامعة:أساتذة ويكي الجامعة|إرشادات للأساتذة]] * [[ويكي الجامعة:ثقافة|ثقافة ويكي الجامعة]] === السياسات والصلاحيات === * [[ويكي الجامعة:ويكي الجامعة ليست|ويكي الجامعة ليست]] * [[ويكي الجامعة:صلاحيات المجموعات|صلاحيات المجموعات]] </div> <div style="flex-grow: 1; width:24rem; border:1px solid var(--border-color-base,#a2a9b1); padding:0.5rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit;"> <!-- SECTION BOUNDARY --> == مساعدة التحرير == === إنشاء الصفحات وتعديلها === صفحات تساعدك على التحرير بالموسوعة * [[مساعدة:تحرير|تحرير الدروس]] * [[مساعدة:ملخص التعديل|إضافة ملخص التعديل]] * [[مساعدة:إعادة تسمية الصفحة|إعادة تسمية الصفحات]] * [[مساعدة:إلغاء|إلغاء التعديلات ومنع التخريب]] * [[مساعدة:اختبارات ويكي الجامعة|إنشاء الإختبارات]] * [[مساعدة:صندوق جميل|إضافة الصناديق الجميلة]] === مواضيع أخرى === * [[مساعدة:كتب|إنشاء الكتب]] </div></div> <div style="border: 1px solid var(--border-color-base,#a2a9b1); padding:0.3rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit; margin:0.3rem 0;"> إن لم تجد ما تبحث عنه: يمكنك طرح سؤالك على أحد المشاركين من خلال صفحات النقاش (طريقة طرح السؤال [[مساعدة:محتويات/أين أطرح سؤالي؟|هنا]]) أو بطرح سؤالك في [[ويكي الجامعة:الميدان|الميدان]] أو استعرض [[:تصنيف:مساعدة|كل صفحات المساعدة]] </div> [[تصنيف:مساعدة]] c5nheajyva8kxd0rmaglff90ne0qa44 145700 145699 2026-03-31T01:00:26Z Mdktb 13023 +NOEDITSECTION 145700 wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div style="border: 1px solid var(--border-color-base,#a2a9b1); text-align:center; font-weight:bold; padding:0.5rem; margin:0.3rem 0;"> '''ويكي جامعة''' هو مشروع لمؤسسة [[w:مؤسسة_ويكيميديا|'''ويكيميديا''']] مخصص لمصادر ومشاريع التعلّم والبحث لاستخدامه في جميع مستويات وأنواع وأنماط التعليم من مرحلة ما قبل المدرسة إلى الجامعة، بما في ذلك التدريب المهني والتعلم غير الرسمي. ندعو المعلمين والطلاب والباحثين للانضمام إلينا في إنشاء موارد تعليمية مفتوحة ومجتمعات التعلم التعاوني. قبل البدء في تصفح المواضيع يمكنك تصفح [[مساعدة:جولة القادمين الجدد|جولة القادمين الجدد]] <inputbox> type=search width=30 namespaces=مساعدة**,ويكي جامعة**,قالب، تصنيف searchbuttonlabel=البحث break=no </inputbox> </div> <div style="display:flex; flex-direction: row; flex-wrap: wrap; gap: 0.3rem;"> <div style="flex-grow: 1; width:24rem; border:1px var(--border-color-base,#a2a9b1) solid; padding:0.5rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit;"> == معلومات عامة == === المواضيع الرئيسية === وفيها جميع المقالات التي تساعدك على استخدلم الموسوعة * [[ويكي الجامعة:ما هي ويكي الجامعة|ماهي ويكي الجامعة]] * [[ويكي الجامعة:أسئلة وأجوبة|أسئلة متكررة]] * [[ويكي الجامعة:إرشادات|إرشادات للمستخدمين ]] * [[ويكي الجامعة:أساتذة ويكي الجامعة|إرشادات للأساتذة]] * [[ويكي الجامعة:ثقافة|ثقافة ويكي الجامعة]] === السياسات والصلاحيات === * [[ويكي الجامعة:ويكي الجامعة ليست|ويكي الجامعة ليست]] * [[ويكي الجامعة:صلاحيات المجموعات|صلاحيات المجموعات]] </div> <div style="flex-grow: 1; width:24rem; border:1px solid var(--border-color-base,#a2a9b1); padding:0.5rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit;"> <!-- SECTION BOUNDARY --> == مساعدة التحرير == === إنشاء الصفحات وتعديلها === صفحات تساعدك على التحرير بالموسوعة * [[مساعدة:تحرير|تحرير الدروس]] * [[مساعدة:ملخص التعديل|إضافة ملخص التعديل]] * [[مساعدة:إعادة تسمية الصفحة|إعادة تسمية الصفحات]] * [[مساعدة:إلغاء|إلغاء التعديلات ومنع التخريب]] * [[مساعدة:اختبارات ويكي الجامعة|إنشاء الإختبارات]] * [[مساعدة:صندوق جميل|إضافة الصناديق الجميلة]] === مواضيع أخرى === * [[مساعدة:كتب|إنشاء الكتب]] </div></div> <div style="border: 1px solid var(--border-color-base,#a2a9b1); padding:0.3rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit; margin:0.3rem 0;"> إن لم تجد ما تبحث عنه: يمكنك طرح سؤالك على أحد المشاركين من خلال صفحات النقاش (طريقة طرح السؤال [[مساعدة:محتويات/أين أطرح سؤالي؟|هنا]]) أو بطرح سؤالك في [[ويكي الجامعة:الميدان|الميدان]] أو استعرض [[:تصنيف:مساعدة|كل صفحات المساعدة]] </div> [[تصنيف:مساعدة]] f6ofkzgokgt331omywty3ukbfsczkew 145701 145700 2026-03-31T01:00:53Z Mdktb 13023 حمى «[[مساعدة:محتويات]]»: صفحة هامة ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 145700 wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div style="border: 1px solid var(--border-color-base,#a2a9b1); text-align:center; font-weight:bold; padding:0.5rem; margin:0.3rem 0;"> '''ويكي جامعة''' هو مشروع لمؤسسة [[w:مؤسسة_ويكيميديا|'''ويكيميديا''']] مخصص لمصادر ومشاريع التعلّم والبحث لاستخدامه في جميع مستويات وأنواع وأنماط التعليم من مرحلة ما قبل المدرسة إلى الجامعة، بما في ذلك التدريب المهني والتعلم غير الرسمي. ندعو المعلمين والطلاب والباحثين للانضمام إلينا في إنشاء موارد تعليمية مفتوحة ومجتمعات التعلم التعاوني. قبل البدء في تصفح المواضيع يمكنك تصفح [[مساعدة:جولة القادمين الجدد|جولة القادمين الجدد]] <inputbox> type=search width=30 namespaces=مساعدة**,ويكي جامعة**,قالب، تصنيف searchbuttonlabel=البحث break=no </inputbox> </div> <div style="display:flex; flex-direction: row; flex-wrap: wrap; gap: 0.3rem;"> <div style="flex-grow: 1; width:24rem; border:1px var(--border-color-base,#a2a9b1) solid; padding:0.5rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit;"> == معلومات عامة == === المواضيع الرئيسية === وفيها جميع المقالات التي تساعدك على استخدلم الموسوعة * [[ويكي الجامعة:ما هي ويكي الجامعة|ماهي ويكي الجامعة]] * [[ويكي الجامعة:أسئلة وأجوبة|أسئلة متكررة]] * [[ويكي الجامعة:إرشادات|إرشادات للمستخدمين ]] * [[ويكي الجامعة:أساتذة ويكي الجامعة|إرشادات للأساتذة]] * [[ويكي الجامعة:ثقافة|ثقافة ويكي الجامعة]] === السياسات والصلاحيات === * [[ويكي الجامعة:ويكي الجامعة ليست|ويكي الجامعة ليست]] * [[ويكي الجامعة:صلاحيات المجموعات|صلاحيات المجموعات]] </div> <div style="flex-grow: 1; width:24rem; border:1px solid var(--border-color-base,#a2a9b1); padding:0.5rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit;"> <!-- SECTION BOUNDARY --> == مساعدة التحرير == === إنشاء الصفحات وتعديلها === صفحات تساعدك على التحرير بالموسوعة * [[مساعدة:تحرير|تحرير الدروس]] * [[مساعدة:ملخص التعديل|إضافة ملخص التعديل]] * [[مساعدة:إعادة تسمية الصفحة|إعادة تسمية الصفحات]] * [[مساعدة:إلغاء|إلغاء التعديلات ومنع التخريب]] * [[مساعدة:اختبارات ويكي الجامعة|إنشاء الإختبارات]] * [[مساعدة:صندوق جميل|إضافة الصناديق الجميلة]] === مواضيع أخرى === * [[مساعدة:كتب|إنشاء الكتب]] </div></div> <div style="border: 1px solid var(--border-color-base,#a2a9b1); padding:0.3rem; background: var(--background-color-neutral-subtle,#f8f9fa); color: inherit; margin:0.3rem 0;"> إن لم تجد ما تبحث عنه: يمكنك طرح سؤالك على أحد المشاركين من خلال صفحات النقاش (طريقة طرح السؤال [[مساعدة:محتويات/أين أطرح سؤالي؟|هنا]]) أو بطرح سؤالك في [[ويكي الجامعة:الميدان|الميدان]] أو استعرض [[:تصنيف:مساعدة|كل صفحات المساعدة]] </div> [[تصنيف:مساعدة]] f6ofkzgokgt331omywty3ukbfsczkew قالب:شريط 10 3717 145681 71395 2026-03-30T21:23:24Z Mdktb 13023 + جلب من [[w:خاص:وصلة دائمة/68114386|w:قالب:شريط]]، استعمال الوحدة 145681 wikitext text/x-wiki <includeonly>{{#invoke:Navbox|navbox}}<!-- -->{{#لو:{{{اسم|{{{اسم القالب|{{{name|}}}}}}}}}|{{#لومعادلة:{{نطاق}}|قالب|{{#تبديل:{{SUBPAGENAME}}|ملعب|doc|شرح=|#default={{#لوموجود:قالب:{{{اسم|{{{اسم القالب|{{{name|}}}}}}}}}||[[تصنيف:قوالب تصفح باسم خاطئ]]}}}}}}}}</includeonly><noinclude> {{توثيق}} </noinclude> n1d2ubw9uf7pnj2250vs59kdahorhpm 145682 145681 2026-03-30T21:24:52Z Mdktb 13023 نقل Mdktb صفحة [[قالب:Navbox]] إلى [[قالب:شريط]]: تعريب 145681 wikitext text/x-wiki <includeonly>{{#invoke:Navbox|navbox}}<!-- -->{{#لو:{{{اسم|{{{اسم القالب|{{{name|}}}}}}}}}|{{#لومعادلة:{{نطاق}}|قالب|{{#تبديل:{{SUBPAGENAME}}|ملعب|doc|شرح=|#default={{#لوموجود:قالب:{{{اسم|{{{اسم القالب|{{{name|}}}}}}}}}||[[تصنيف:قوالب تصفح باسم خاطئ]]}}}}}}}}</includeonly><noinclude> {{توثيق}} </noinclude> n1d2ubw9uf7pnj2250vs59kdahorhpm 145696 145682 2026-03-30T22:04:19Z Mdktb 13023 حمى «[[قالب:شريط]]»: قالب مهم ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 145681 wikitext text/x-wiki <includeonly>{{#invoke:Navbox|navbox}}<!-- -->{{#لو:{{{اسم|{{{اسم القالب|{{{name|}}}}}}}}}|{{#لومعادلة:{{نطاق}}|قالب|{{#تبديل:{{SUBPAGENAME}}|ملعب|doc|شرح=|#default={{#لوموجود:قالب:{{{اسم|{{{اسم القالب|{{{name|}}}}}}}}}||[[تصنيف:قوالب تصفح باسم خاطئ]]}}}}}}}}</includeonly><noinclude> {{توثيق}} </noinclude> n1d2ubw9uf7pnj2250vs59kdahorhpm قالب:شريط/لب 10 6315 145684 23910 2026-03-30T21:25:42Z Mdktb 13023 نقل Mdktb صفحة [[قالب:Navbox/Core]] إلى [[قالب:شريط/لب]] دون ترك تحويلة: تعريب 23910 wikitext text/x-wiki <!-- Please do not edit without discussion first as this is a VERY complex template. -->{{#switch:{{{border|{{{1|}}}}}}|subgroup|child=</div>|none=|#default=<table cellspacing="0" <!-- -->class="navbox" style="border-spacing:0;{{{bodystyle|}}};{{{style|}}}"><tr><td style="padding:2px;">}}<!-- --><table cellspacing="0" class="nowraplinks {{{bodyclass|}}} {{#if:{{{title|}}}|{{#switch:{{{state|}}}|<!-- -->plain|off=|#default=collapsible {{#if:{{{state|}}}|{{{state}}}|autocollapse}}}}}} {{#switch:{{{border|{{{1|}}}}}}|<!-- -->subgroup|child|none=navbox-subgroup" style="border-spacing:0;{{{bodystyle|}}};{{{style|}}}|<!-- -->#default=navbox-inner" style="border-spacing:0;background:transparent;color:inherit}};{{{innerstyle|}}};"><!-- ---Title and Navbar--- -->{{#if:{{{title|}}}|<tr>{{#if:{{{titlegroup|}}}|<!-- --><th scope="row" class="navbox-group {{{titlegroupclass|}}}" <!-- -->style="{{{basestyle|}}};{{{groupstyle|}}};{{{titlegroupstyle|}}}"><!-- -->{{{titlegroup|}}}</th><th scope="col" style="border-left:2px solid #fdfdfd;width:100%;|<!-- --><th scope="col" style="}}{{{basestyle|}}};{{{titlestyle|}}}" class="navbox-title" <!-- -->colspan={{#expr:2{{#if:{{{imageleft|}}}|+1}}{{#if:{{{image|}}}|+1}}{{#if:{{{titlegroup|}}}|-1}}}}><!-- -->{{#if:{{#switch:{{{navbar|}}}|plain|off=1}}<!-- -->{{#if:{{{name|}}}||{{#switch:{{{border|{{{1|}}}}}}|subgroup|child|none=1}}}}|<!-- -->{{#ifeq:{{{navbar|}}}|off|{{#ifeq:{{{state|}}}|plain|<span style="float:right;width:6em;">&nbsp;</span>}}|<!-- -->{{#ifeq:{{{state|}}}|plain||<span style="float:left;width:6em;">&nbsp;</span>}}}}|<!-- -->{{#if:{{{name|}}}|{{Navbar|{{{name}}}|mini=1|<!-- -->fontstyle={{{basestyle|}}};{{{titlestyle|}}};background:none transparent;border:none;}}|<!-- --><span class="error" style="float:left;white-space:nowrap;">Error: No name provided</span>}}<!-- -->{{#ifeq:{{{state|}}}|plain|<span style="float:right;width:6em;">&nbsp;</span>}}}}<!-- --><div class="{{{titleclass|}}}" style="font-size:110%;"> {{{title}}}</div></th></tr>}}<!-- ---Above--- -->{{#if:{{{above|}}}|<!-- -->{{#if:{{{title|}}}|<tr style="height:2px;"><td></td></tr>}}<!-- --><tr><td class="navbox-abovebelow {{{aboveclass|}}}" style="{{{basestyle|}}};{{{abovestyle|}}}" <!-- -->colspan="{{#expr:2{{#if:{{{imageleft|}}}|+1}}{{#if:{{{image|}}}|+1}}}}"><div> {{{above}}}</div></td></tr>}}<!-- ---Body--- ---First group/list and images--- -->{{#if:{{{list1|}}}|{{#if:{{{title|}}}{{{above|}}}|<tr style="height:2px;"><td></td></tr>}}<tr><!-- -->{{#if:{{{imageleft|}}}|<!-- --><td class="navbox-image {{{imageclass|}}}" style="width:0%;padding:0px 2px 0px 0px;{{{imageleftstyle|}}}" <!-- -->rowspan={{#expr:1{{#if:{{{list2|}}}|+2}}{{#if:{{{list3|}}}|+2}}{{#if:{{{list4|}}}|+2}}<!-- -->{{#if:{{{list5|}}}|+2}}{{#if:{{{list6|}}}|+2}}{{#if:{{{list7|}}}|+2}}{{#if:{{{list8|}}}|+2}}<!-- -->{{#if:{{{list9|}}}|+2}}{{#if:{{{list10|}}}|+2}}{{#if:{{{list11|}}}|+2}}{{#if:{{{list12|}}}|+2}}<!-- -->{{#if:{{{list13|}}}|+2}}{{#if:{{{list14|}}}|+2}}{{#if:{{{list15|}}}|+2}}{{#if:{{{list16|}}}|+2}}<!-- -->{{#if:{{{list17|}}}|+2}}{{#if:{{{list18|}}}|+2}}{{#if:{{{list19|}}}|+2}}{{#if:{{{list20|}}}|+2}}}}><div> {{{imageleft}}}</div></td>}}<!-- -->{{#if:{{{group1|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group1style|}}}"><!-- -->{{{group1}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list1style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{list1padding|{{{listpadding|0em 0.25em}}}}}}"> {{{list1}}}</div></td><!-- -->{{#if:{{{image|}}}|<!-- --><td class="navbox-image {{{imageclass|}}}" style="width:0%;padding:0px 0px 0px 2px;{{{imagestyle|}}}" <!-- -->rowspan={{#expr:1{{#if:{{{list2|}}}|+2}}{{#if:{{{list3|}}}|+2}}{{#if:{{{list4|}}}|+2}}<!-- -->{{#if:{{{list5|}}}|+2}}{{#if:{{{list6|}}}|+2}}{{#if:{{{list7|}}}|+2}}{{#if:{{{list8|}}}|+2}}<!-- -->{{#if:{{{list9|}}}|+2}}{{#if:{{{list10|}}}|+2}}{{#if:{{{list11|}}}|+2}}{{#if:{{{list12|}}}|+2}}<!-- -->{{#if:{{{list13|}}}|+2}}{{#if:{{{list14|}}}|+2}}{{#if:{{{list15|}}}|+2}}{{#if:{{{list16|}}}|+2}}<!-- -->{{#if:{{{list17|}}}|+2}}{{#if:{{{list18|}}}|+2}}{{#if:{{{list19|}}}|+2}}{{#if:{{{list20|}}}|+2}}}}><div> {{{image}}}</div></td>}}<!-- --></tr>}}<!-- ---Remaining groups/lists--- -->{{#if:{{{list2|}}}|<!-- -->{{#if:{{{title|}}}{{{above|}}}{{{list1|}}}|<tr style="height:2px"><td></td></tr>}}<tr><!-- -->{{#if:{{{group2|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group2style|}}}"><!-- -->{{{group2}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list2style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list2}}}</div></td></tr>}}<!-- -->{{#if:{{{list3|}}}|<!-- -->{{#if:{{{title|}}}{{{above|}}}{{{list1|}}}{{{list2|}}}|<tr style="height:2px"><td></td></tr>}}<tr><!-- -->{{#if:{{{group3|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group3style|}}}"><!-- -->{{{group3}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list3style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list3}}}</div></td></tr>}}<!-- -->{{#if:{{{list4|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group4|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group4style|}}}"><!-- -->{{{group4}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list4style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list4}}}</div></td></tr>}}<!-- -->{{#if:{{{list5|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group5|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group5style|}}}"><!-- -->{{{group5}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list5style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list5}}}</div></td></tr>}}<!-- -->{{#if:{{{list6|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group6|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group6style|}}}"><!-- -->{{{group6}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list6style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list6}}}</div></td></tr>}}<!-- -->{{#if:{{{list7|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group7|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group7style|}}}"><!-- -->{{{group7}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list7style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list7}}}</div></td></tr>}}<!-- -->{{#if:{{{list8|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group8|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group8style|}}}"><!-- -->{{{group8}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list8style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list8}}}</div></td></tr>}}<!-- -->{{#if:{{{list9|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group9|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group9style|}}}"><!-- -->{{{group9}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list9style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list9}}}</div></td></tr>}}<!-- -->{{#if:{{{list10|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group10|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group10style|}}}"><!-- -->{{{group10}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list10style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list10}}}</div></td></tr>}}<!-- -->{{#if:{{{list11|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group11|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group11style|}}}"><!-- -->{{{group11}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list11style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list11}}}</div></td></tr>}}<!-- -->{{#if:{{{list12|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group12|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group12style|}}}"><!-- -->{{{group12}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list12style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list12}}}</div></td></tr>}}<!-- -->{{#if:{{{list13|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group13|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group13style|}}}"><!-- -->{{{group13}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list13style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list13}}}</div></td></tr>}}<!-- -->{{#if:{{{list14|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group14|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group14style|}}}"><!-- -->{{{group14}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list14style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list14}}}</div></td></tr>}}<!-- -->{{#if:{{{list15|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group15|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group15style|}}}"><!-- -->{{{group15}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list15style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list15}}}</div></td></tr>}}<!-- -->{{#if:{{{list16|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group16|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group16style|}}}"><!-- -->{{{group16}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list16style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list16}}}</div></td></tr>}}<!-- -->{{#if:{{{list17|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group17|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group17style|}}}"><!-- -->{{{group17}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list17style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list17}}}</div></td></tr>}}<!-- -->{{#if:{{{list18|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group18|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group18style|}}}"><!-- -->{{{group18}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list18style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list18}}}</div></td></tr>}}<!-- -->{{#if:{{{list19|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group19|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group19style|}}}"><!-- -->{{{group19}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list19style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list19}}}</div></td></tr>}}<!-- -->{{#if:{{{list20|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group20|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group20style|}}}"><!-- -->{{{group20}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list20style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list20}}}</div></td></tr>}}<!-- -->{{#if:{{{list21|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group21|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group21style|}}}"><!-- -->{{{group21}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list21style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list21}}}</div></td></tr>}}<!-- -->{{#if:{{{list22|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group22|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group22style|}}}"><!-- -->{{{group22}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list22style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list22}}}</div></td></tr>}}<!-- -->{{#if:{{{list23|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group23|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group23style|}}}"><!-- -->{{{group23}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list23style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list23}}}</div></td></tr>}}<!-- -->{{#if:{{{list24|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group24|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group24style|}}}"><!-- -->{{{group24}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list24style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list24}}}</div></td></tr>}}<!-- -->{{#if:{{{list25|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group25|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group25style|}}}"><!-- -->{{{group25}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list25style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list25}}}</div></td></tr>}}<!-- -->{{#if:{{{list26|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group26|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group26style|}}}"><!-- -->{{{group26}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list26style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list26}}}</div></td></tr>}}<!-- -->{{#if:{{{list27|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group27|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group27style|}}}"><!-- -->{{{group27}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list27style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list27}}}</div></td></tr>}}<!-- -->{{#if:{{{list28|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group28|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group28style|}}}"><!-- -->{{{group28}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list28style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list28}}}</div></td></tr>}}<!-- -->{{#if:{{{list29|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group29|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group29style|}}}"><!-- -->{{{group29}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{oddstyle|}}};{{{list29style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|even|{{{evenodd|odd}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list29}}}</div></td></tr>}}<!-- -->{{#if:{{{list30|}}}|<!-- --><tr style="height:2px"><td></td></tr><tr><!-- -->{{#if:{{{group30|}}}|<th scope="row" class="navbox-group {{{groupclass|}}}" <!-- -->style="{{{basestyle|}}};{{#if:{{{groupwidth|}}}|width:{{{groupwidth}}};}}{{{groupstyle|}}};{{{group30style|}}}"><!-- -->{{{group20}}}</th><td style="text-align:right;border-right-width:2px;border-right-style:solid;|<td colspan=2 style="}}<!-- -->{{#if:{{{groupwidth|}}}||width:100%;}}padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list20style|}}}" <!-- -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}} {{{listclass|}}}"><!-- --><div style="padding:{{{listpadding|0em 0.25em}}}"> {{{list30}}}</div></td></tr>}}<!-- ---Below--- -->{{#if:{{{below|}}}|<!-- -->{{#if:{{{title|}}}{{{above|}}}{{{list1|}}}{{{list2|}}}{{{list3|}}}|<tr style="height:2px;"><td></td></tr>}}<!-- --><tr><td class="navbox-abovebelow {{{belowclass|}}}" style="{{{basestyle|}}};{{{belowstyle|}}}" <!-- -->colspan="{{#expr:2{{#if:{{{imageleft|}}}|+1}}{{#if:{{{image|}}}|+1}}}}"><div> {{{below}}}</div></td></tr>}}<!-- --></table>{{#switch:{{{border|{{{1|}}}}}}|subgroup|child=<div>|none=|#default=</td></tr></table>}}<!-- -->{{#ifeq:{{NAMESPACE}}|{{ns:10}}|{{#ifeq:{{{border|{{{1|}}}}}}|child||{{#ifeq:{{{border|{{{1|}}}}}}|subgroup||{{#switch:{{lc:{{SUBPAGENAME}}}} |doc |sandbox |testcases = |#default = {{#switch:{{{bodyclass|}}} |plainlist |hlist |hlist hnum |hlist vcard |vcard hlist = |#default = {{#switch:{{{listclass|}}} |plainlist |hlist |hlist hnum |hlist vcard |vcard hlist = |#default = {{#ifeq:{{{tracking|}}}|no||[[تصنيف:صناديق تصفح بلا لوائح مسطحة]]}} }} }} }} }}}}}}<noinclude> لا تستعمل هذا القالب. استعمل {{قا|Navbox}}. <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> lz0lfg3muhtwps8p0sa69kwag0a6vy5 قالب:صفحة مستخدم مخالفة 10 20990 145697 145634 2026-03-30T22:13:36Z Mdktb 13023 - بعض الأسماء غير مناسبة 145697 wikitext text/x-wiki {| id="userpage" style="margin:auto; width:{{{width|auto}}}; text-align:center; border:{{{border-s|1}}}px solid {{{border-c|var(--border-color-content-removed,#ffe49c)}}}; background-color:{{{background|var(--background-color-neutral-subtle,#f8f9fa)}}}; color:inherit; padding:1em; padding-top:0.5em; margin:{{{margin-style|0}}};" {{#ifeq:{{{logo|}}}|yes| {{!}} [[ملف:Ambox warning blue.svg|30px|link=]] }} | style="font-size:100%;" | '''تنبيه حول <span style="white-space: nowrap"><span></span></span> [[ويكي الجامعة:صفحات المستخدمين|صفحة المستخدم]]. ''' '''مرحباً، يرجى العلم بأن صفحة المستخدم لا تستخدم لكتابة مقالات أو للترويج والدعاية أو كتابة السير الذاتية أو نشر النصائح والخواطر، بل هي مخصصة ليكتب فيها المستخدم شيئاً عن اهتماماته المعرفية وبعض المعلومات التي تعرف المجتمع عليه. لذا فقد تم شطب المحتوى الذي كنت قد كتبته في صفحتك. إن كنت ترغب في تجريب الكتابة والتحرير، يمكنك الكتابة في [[مستخدم:{{#if:{{{1|}}}|{{اسم_الصفحة:{{{1|}}}}}|{{اسم_الصفحة}}}}/ملعب|الملعب الخاص بك]].''' '''عوضا عن ذلك، فإنه يمكنك التعبير عن نفسك بواسطة استخدام [[:تصنيف:قوالب مستخدم|صناديق المستخدم]] وهي عبارة عن قوالب تعريفية يضعها [[ويكي الجامعة:مستخدمون|المستخدمون]] في [[ويكي الجامعة:صفحة المستخدم|صفحاتهم الخاصة على ويكي الجامعة]]؛ للتعريف بميولهم واهتماماتهم، وتسهيل التعارف والتنسيق بينهم في مختلف الاهتمامات المشتركة لتطوير المشروع؛ كما أن هذه الصناديق تمثل فسحة للتعبير عن شخصية وميول المستخدم.''' |}<noinclude> {{توثيق}} </noinclude><noinclude> [[تصنيف:قوالب]] </noinclude> qjlbonle2axcq3ujou9qbaf6yj1g104 قالب:Ill-WD2 10 26188 145674 69700 2026-03-30T19:51:24Z Mdktb 13023 غير موجودة 145674 wikitext text/x-wiki {{{{{|safesubst:}}}#invoke:Unsubst||$B= <includeonly>{{#invoke:Ill-WD2|link}}</includeonly><!-- هذا النص تم توليده تلقائياً بواسطة [[قالب:Parameters]] -->{{#استدعاء:Check for unknown parameters|check |unknown=[[تصنيف:صفحات تستخدم قالب:Ill-WD2 مع وسائط غير معروفة|_VALUE_]] |template =Ill-WD2 ||2||id|نص|1|en|target|لغ|y|label|fromlua|text}}<!-- -->}}<noinclude>{{توثيق}} [[تصنيف:قوالب وصلات داخلية]] </noinclude> df87hgugtfpbbj8lw73wl6nv2xmas9n وحدة:Ill-WD2 828 26190 145677 69702 2026-03-30T20:19:25Z Mdktb 13023 حمى «[[وحدة:Ill-WD2]]»: وحدة هامة ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 69702 Scribunto text/plain local p = {} local wd2 = require('Module:wikidata2') local Frame; local Category = {} Category["remove"] = "&nbsp;[[تصنيف:صفحات بها وصلات للإزالة]]" Category["review"] = "&nbsp;[[تصنيف:وصلات إنترويكي بحاجة لمراجعة|%s]]" Category["nositelinks"] = "&nbsp;[[تصنيف:صفحات بها قالب:Ill-WD2 دون وصلات لغات|%s]]" Category["add"] = "[[تصنيف:صفحات بها وصلات إنترويكي|%s]]" function makeCategory(key,args) line = Category[key] if key ~= 'add' and Frame.args["nocat"] and Frame.args["nocat"] ~= '' then return '' end return line end function labelIn(langcode,id) local label, lange = mw.wikibase.getLabelWithLang( id ) if lange == langcode then return label else --mw.log("Module:Ill-WD2: label = " ..label .. "lange = " ..lange .. "langcode = " .. langcode) return "" end end function maketext(String) local y = Frame.args["y"] local text = Frame.args["text"] or Frame.args["نص"] if text and text ~= "" then return text elseif y and y ~= "" then String2 = mw.ustring.gsub( String , '–', '-' ) ca = mw.ustring.match( String2 , "%d%d%d%d%-%d%d%d%d", 1 ) or mw.ustring.match( String2 , "%d%d%-%d%d%d%d", 1 ) or mw.ustring.match( String2 , "%d%d%d%d%-%d%d", 1 ) ca = ca or mw.ustring.match( String2 , "%d%d%d%d", 1 ) or String return ca end return String end function make_suffix(id , target_Site , target_Link , sitelinks_count, fromlua) if sitelinks_count == 0 then if fromlua == "" then return string.format(makeCategory("nositelinks") , ( id or "1" ) ) end end local other_lang = '&quot;'.. id ..'&quot; في لغات أخرى' --local other_lang = '<span title="'.. other_lang ..'">لغات أخرى</span>' --local other_lang = mw.text.tag('span', {title= other_lang }, "لغات أخرى") local other_lang = '<sup class=reference title="'.. other_lang..'">[لغات أخرى]</sup>' local other_lang_text = '&nbsp;[[d:'.. id ..'#sitelinks-wikipedia|' ..other_lang..']]' --local suff = '<span class="noprint" style="font-size: smaller; font-style: normal; font-weight: normal;">' .. other_lang_text.. '</span>' local suff = '' .. mw.text.tag('span' , {class= "noprint" , style="font-size: smaller; font-style: normal; font-weight: normal;"} , other_lang_text) if (target_Link and target_Link ~= "") and (target_Site and target_Site ~= "") then --language = '{{#language:'.. target_Site ..'|ar}}' language = Frame:callParserFunction('#language', target_Site , "ar") suff = '[[:'.. target_Site ..':'.. target_Link ..'|<sup class=reference title="'.. target_Link ..'">['.. language ..']</sup>]]' end --suffe = Frame:preprocess("&nbsp;" .. suff) --suff suffe = "&nbsp;" .. suff tt = string.format (makeCategory("add") , ( id or "1" ) ) --if fromlua == "" then tt = "" end return suffe .. tt end function make_ar_link(title, suffix,id, sitelinks_count) local text = maketext(title) local link; local tit = mw.title.new(title) local cate = string.format (makeCategory("review") , ( id or "1" ) ) local nositelinks = string.format(makeCategory("nositelinks") , ( id or "1" ) ) if tit and tit.exists then link = text .. suffix .. cate mw.log( 'Module:Ill-WD2: review "' .. title .. '", id: ' .. id) --mw.log(cate) else title = mw.ustring.gsub(title , "^تصنيف:", "") text = mw.ustring.gsub(text , "^تصنيف:", "") link = '[[' .. title .. "|" .. text .. "]]" .. suffix end if sitelinks_count == 0 then link = text .. suffix end return link end function sitelink( id , site ) local site = site or 'arwiki' local link = mw.wikibase.sitelink( id , site ) or "" --mw.log("Module:Ill-WD2: mw.wikibase.sitelink : " .. link) return link end function p.link(frame) Frame = frame; local target_label; local ar_link; local en_label = "" local pframe = frame:getParent() Frame = pframe local fromlua = pframe.args["fromlua"] or "" local id = pframe.args["id"] or pframe.args[2] if not id or id == "" then return "No ID" end local lab_1 = pframe.args[1] or pframe.args["label"] local target_SiteLink = "" local target = pframe.args["target"] or pframe.args["لغ"] or "" if pframe.args["en"] and pframe.args["en"] ~= "" then target = "en" --mw.log("Module:Ill-WD2: target = en" ) elseif target == "en" then en_label = labelIn("en",id) end if target ~= "" then target_SiteLink = sitelink( id , target .. "wiki" ) end local SiteLink = mw.wikibase.sitelink( id ) local sitelinks_count = wd2.countSiteLinks( id ) if SiteLink then Link = '[[' .. SiteLink .. "|" .. maketext(SiteLink) .. "]]" --mw.log("Module:Ill-WD2: replace: " .. id .. " by: " .. Link) return Link .. makeCategory("remove") end local ar_label = labelIn("ar",id) local suffix = make_suffix(id , target , target_SiteLink , sitelinks_count, fromlua ) if lab_1 and lab_1 ~= "" then ar_link = lab_1 elseif ar_label ~= "" then ar_link = ar_label end if ar_link and ar_link ~= "" then --mw.log("Module:Ill-WD2: ar_link : " .. ar_link) return make_ar_link(ar_link , suffix , id , sitelinks_count ) end if en_label ~= "" then --mw.log("Module:Ill-WD2: en_label " .. en_label) return maketext(en_label) .. make_suffix(id , "" , "" , sitelinks_count , fromlua ) end if target ~= "" and target_SiteLink ~= "" then --mw.log("Module:Ill-WD2: target " .. target .. ": " .. target_SiteLink) return maketext(target_SiteLink) .. suffix end --mw.log("Module:Ill-WD2: nothing en_label: " .. en_label ) return "" end return p r49fkvpu67e9obxrqmlefk6xubiz0d4 تحسين محركات البحث 0 26219 145672 145671 2026-03-30T19:41:47Z Mdktb 13023 استرجع تعديلات [[Special:Contributions/~2026-16563-45|~2026-16563-45]] ([[User talk:~2026-16563-45|نقاش]]) حتى آخر مراجعة ل[[User:Mdktb|Mdktb]] 71111 wikitext text/x-wiki {{صندوق معلومات ويكي بيانات|id=Q180711}} '''تحسين محركات البحث''' (بالإنجليزية: Search Engine Optimization) وتعرف اختصاراً (سيو أو SEO) هو علم تحسين ظهور موقع إلكتروني أو صفحة موقع إلكتروني في نتائج محركات البحث المجانية (الغير مدفوعة) مثل جوجل بحيث يظهر في النتائج الأولى، وذلك عن طريق دراسة كيفية عمل محركات البحث والعوامل المؤثرة على ترتيب نتائج محركات البحث وتحسينها وكذلك علاج بعض الأخطاء والمشاكل في المواقع، وهو أحد فروع مجال التسويق الإلكتروني. ونظراً لأهمية نتائج البحث الأولى في محركات البحث لما لها من تأثير كبير على عدد زوار الموقع عن... [[:w:تحسين محركات البحث|طالع المزيد على ويكيبيديا العربية]]. == آخر الأعمال المنشورة حول الموضوع == * {{Ill-WD2|id=Q56329797|نص=Application of SEO Metrics to Determine the Quality of Wikipedia Articles and Their Sources}} من تأليف Christopher Reichstein وقد نشر يوم 29 أغسطس 2018 في {{Ill-WD2|id=Q56329798|نص=Information and Software Technologies: 24th International Conference, ICIST 2018, Vilnius, Lithuania, October 4–6, 2018, Proceedings}}. * [https://fr.calameo.com/read/00604758541b46610bdd7 Google : historique et fonctionnement] قد نشر يوم 18 فبراير 2017. * [https://www.academia.edu/29731481/Strat%C3%A9gie_de_r%C3%A9f%C3%A9rencement_2016_id%C3%A9es_pour_am%C3%A9liorer_le_r%C3%A9f%C3%A9rencement_2016_du_site_www.les-rochers-de-maguelone.com Stratégie de référencement 2016] قد نشر يوم 1 فبراير 2016. * [https://fr.calameo.com/read/006047585d59dc94e0157 Rédaction d'articles web dans une stratégie de netlinking] قد نشر يوم 1 نوفمبر 2015. == مجلات علمية تعتني بالموضوع == * 1 ICIST 2018 {{Ill-WD2|id=Q56329798|نص=Information and Software Technologies: 24th International Conference, ICIST 2018, Vilnius, Lithuania, October 4–6, 2018, Proceedings}} * 1 CCIS {{Ill-WD2|id=Q27681562|نص=Communications in Computer and Information Science}} == مراجع عالمية == * [https://id.ndl.go.jp/auth/ndlna/00964480 معلومات عن تحسين محركات البحث على موقع id.ndl.go.jp] * [https://d-nb.info/gnd/1026698669 معلومات عن تحسين محركات البحث على موقع d-nb.info] * [http://psh.techlib.cz/skos/PSH13946 معلومات عن تحسين محركات البحث على موقع psh.techlib.cz] * [https://www.ne.se/uppslagsverk/encyklopedi/lång/sökmotoroptimering معلومات عن تحسين محركات البحث على موقع ne.se] * [https://www.jstor.org/topic/search-engine-optimization معلومات عن تحسين محركات البحث على موقع jstor.org] == صور علمية == * استعمل [[:commons:Category:SEO|صور مجانية حول تحسين محركات البحث لبحوثك]] من مخزن الصور كومنز == مساقات == {{مساقات|تحسين محركات البحث|Search engine optimization}} == فيديوهات == {{وصلات فيديوهات|تحسين محركات البحث|Search engine optimization}} == مراجع == {{مراجع}} == المشاريع الشقيقة == {{محتوى باللغة العربية|تحسين محركات البحث}} == وصلات خارجية == * [https://tools.wmflabs.org/scholia/topic/Q180711 مزيد من البيانات العلمية على سكوليا] * [https://support.google.com/webmasters/answer/35769?hl=ar Search engine optimization] * [http://static.googleusercontent.com/media/www.google.com/en//webmasters/docs/search-engine-optimization-starter-guide.pdf Search Engine Optimization Starter Guide] * [https://support.google.com/webmasters/answer/35769?hl=ar إرشادات مشرفي المواقع من جوجل] * [https://support.google.com/webmasters/answer/7451184?hl=ar دليل جوجل لتعليم السيو ] {{تصنيف كومنز|SEO}} 4ou9q3elg340aw3jn9dlowldq5ln1y3 145673 145672 2026-03-30T19:44:35Z Mdktb 13023 حمى «[[تحسين محركات البحث]]»: سبام متكرر ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 71111 wikitext text/x-wiki {{صندوق معلومات ويكي بيانات|id=Q180711}} '''تحسين محركات البحث''' (بالإنجليزية: Search Engine Optimization) وتعرف اختصاراً (سيو أو SEO) هو علم تحسين ظهور موقع إلكتروني أو صفحة موقع إلكتروني في نتائج محركات البحث المجانية (الغير مدفوعة) مثل جوجل بحيث يظهر في النتائج الأولى، وذلك عن طريق دراسة كيفية عمل محركات البحث والعوامل المؤثرة على ترتيب نتائج محركات البحث وتحسينها وكذلك علاج بعض الأخطاء والمشاكل في المواقع، وهو أحد فروع مجال التسويق الإلكتروني. ونظراً لأهمية نتائج البحث الأولى في محركات البحث لما لها من تأثير كبير على عدد زوار الموقع عن... [[:w:تحسين محركات البحث|طالع المزيد على ويكيبيديا العربية]]. == آخر الأعمال المنشورة حول الموضوع == * {{Ill-WD2|id=Q56329797|نص=Application of SEO Metrics to Determine the Quality of Wikipedia Articles and Their Sources}} من تأليف Christopher Reichstein وقد نشر يوم 29 أغسطس 2018 في {{Ill-WD2|id=Q56329798|نص=Information and Software Technologies: 24th International Conference, ICIST 2018, Vilnius, Lithuania, October 4–6, 2018, Proceedings}}. * [https://fr.calameo.com/read/00604758541b46610bdd7 Google : historique et fonctionnement] قد نشر يوم 18 فبراير 2017. * [https://www.academia.edu/29731481/Strat%C3%A9gie_de_r%C3%A9f%C3%A9rencement_2016_id%C3%A9es_pour_am%C3%A9liorer_le_r%C3%A9f%C3%A9rencement_2016_du_site_www.les-rochers-de-maguelone.com Stratégie de référencement 2016] قد نشر يوم 1 فبراير 2016. * [https://fr.calameo.com/read/006047585d59dc94e0157 Rédaction d'articles web dans une stratégie de netlinking] قد نشر يوم 1 نوفمبر 2015. == مجلات علمية تعتني بالموضوع == * 1 ICIST 2018 {{Ill-WD2|id=Q56329798|نص=Information and Software Technologies: 24th International Conference, ICIST 2018, Vilnius, Lithuania, October 4–6, 2018, Proceedings}} * 1 CCIS {{Ill-WD2|id=Q27681562|نص=Communications in Computer and Information Science}} == مراجع عالمية == * [https://id.ndl.go.jp/auth/ndlna/00964480 معلومات عن تحسين محركات البحث على موقع id.ndl.go.jp] * [https://d-nb.info/gnd/1026698669 معلومات عن تحسين محركات البحث على موقع d-nb.info] * [http://psh.techlib.cz/skos/PSH13946 معلومات عن تحسين محركات البحث على موقع psh.techlib.cz] * [https://www.ne.se/uppslagsverk/encyklopedi/lång/sökmotoroptimering معلومات عن تحسين محركات البحث على موقع ne.se] * [https://www.jstor.org/topic/search-engine-optimization معلومات عن تحسين محركات البحث على موقع jstor.org] == صور علمية == * استعمل [[:commons:Category:SEO|صور مجانية حول تحسين محركات البحث لبحوثك]] من مخزن الصور كومنز == مساقات == {{مساقات|تحسين محركات البحث|Search engine optimization}} == فيديوهات == {{وصلات فيديوهات|تحسين محركات البحث|Search engine optimization}} == مراجع == {{مراجع}} == المشاريع الشقيقة == {{محتوى باللغة العربية|تحسين محركات البحث}} == وصلات خارجية == * [https://tools.wmflabs.org/scholia/topic/Q180711 مزيد من البيانات العلمية على سكوليا] * [https://support.google.com/webmasters/answer/35769?hl=ar Search engine optimization] * [http://static.googleusercontent.com/media/www.google.com/en//webmasters/docs/search-engine-optimization-starter-guide.pdf Search Engine Optimization Starter Guide] * [https://support.google.com/webmasters/answer/35769?hl=ar إرشادات مشرفي المواقع من جوجل] * [https://support.google.com/webmasters/answer/7451184?hl=ar دليل جوجل لتعليم السيو ] {{تصنيف كومنز|SEO}} 4ou9q3elg340aw3jn9dlowldq5ln1y3 ويكي الجامعة:الميدان/أرشيف/2026 4 32893 145675 2026-03-30T20:05:09Z Mdktb 13023 + أرشفة «بتصرّف» من [[خاص:وصلة دائمة/145582|ويكي الجامعة:الميدان]] 145675 wikitext text/x-wiki {{ويكي الجامعة:الميدان/رأس أرشيف|نص إضافي={{تصفح أرشيف|2026|رقم فقط=نعم}}}} == Thank You for Last Year – Join Wiki Loves Ramadan 2026 == <div lang="en" dir="ltr"> Dear Wikimedia communities, We hope you are doing well, and we wish you a happy New Year. ''Last year, we captured light. This year, we’ll capture legacy.'' In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects. We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community. 📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]] If you have questions about the project, please refer to the FAQs: * [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]] * [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]] ''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]''''' ''Stay connected and receive updates:'' * [https://t.me/WikiLovesRamadan Telegram channel] * [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list] We look forward to collaborating with you and your community. '''The Wiki Loves Ramadan 2026 Organizing Team''', [[m:User:ZI Jony|ZI Jony]] ([[m:User talk:ZI Jony|talk]]) 19:45، 16 يناير 2026 (ت ع م) </div><!-- الرسالة التي أرسلها User:ZI Jony@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 --> == <span lang="en" dir="ltr">Annual review of the Universal Code of Conduct and Enforcement Guidelines</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 9 February 2026. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Read more information and find a conversation to join on the UCoC page on Meta]]. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 21:02، 19 يناير 2026 (ت ع م)<section end="announcement-content" /> </div> <!-- الرسالة التي أرسلها User:Keegan (WMF)@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> 4sfrel8v4161yzvscr3dkr9wdei6nh3 وحدة:Navbox 828 32894 145679 2026-03-30T20:38:34Z Mdktb 13023 + جلب من [[w:خاص:وصلة دائمة/70114640|w:وحدة:Navbox]] 145679 Scribunto text/plain -- require('strict') local p = {} local navbar = require('Module:Navbar')._navbar local cfg = mw.loadData('Module:Navbox/configuration') local getArgs -- lazily initialized local args local format = string.format local function striped(wikitext, border) -- Return wikitext with markers replaced for odd/even striping. -- Child (subgroup) navboxes are flagged with a category that is removed -- by parent navboxes. The result is that the category shows all pages -- where a child navbox is not contained in a parent navbox. local orphanCat = cfg.category.orphan if border == cfg.keyword.border_subgroup and args[cfg.arg.orphan] ~= cfg.keyword.orphan_yes then -- No change; striping occurs in outermost navbox. return wikitext .. orphanCat end local first, second = cfg.class.navbox_odd_part, cfg.class.navbox_even_part if args[cfg.arg.evenodd] then if args[cfg.arg.evenodd] == cfg.keyword.evenodd_swap then first, second = second, first else first = args[cfg.arg.evenodd] second = first end end local changer if first == second then changer = first else local index = 0 changer = function (code) if code == '0' then -- Current occurrence is for a group before a nested table. -- Set it to first as a valid although pointless class. -- The next occurrence will be the first row after a title -- in a subgroup and will also be first. index = 0 return first end index = index + 1 return index % 2 == 1 and first or second end end local regex = orphanCat:gsub('([%[%]])', '%%%1') return (wikitext:gsub(regex, ''):gsub(cfg.marker.regex, changer)) -- () omits gsub count end local function processItem(item, nowrapitems) if item:sub(1, 2) == '{|' then -- Applying nowrap to lines in a table does not make sense. -- Add newlines to compensate for trim of x in |parm=x in a template. return '\n' .. item ..'\n' end if nowrapitems == cfg.keyword.nowrapitems_yes then local lines = {} for line in (item .. '\n'):gmatch('([^\n]*)\n') do local prefix, content = line:match('^([*:;#]+)%s*(.*)') if prefix and not content:match(cfg.pattern.nowrap) then line = format(cfg.nowrap_item, prefix, content) end table.insert(lines, line) end item = table.concat(lines, '\n') end if item:match('^[*:;#]') then return '\n' .. item ..'\n' end return item end local function has_navbar() return args[cfg.arg.navbar] ~= cfg.keyword.navbar_off and args[cfg.arg.navbar] ~= cfg.keyword.navbar_plain and ( args[cfg.arg.name] or mw.getCurrentFrame():getParent():getTitle():gsub(cfg.pattern.sandbox, '') ~= cfg.pattern.navbox ) end -- extract text color from css, which is the only permitted inline CSS for the navbar local function extract_color(css_str) -- return nil because navbar takes its argument into mw.html which handles -- nil gracefully, removing the associated style attribute return mw.ustring.match(';' .. css_str .. ';', '.*;%s*([Cc][Oo][Ll][Oo][Rr]%s*:%s*.-)%s*;') or nil end local function renderNavBar(titleCell) if has_navbar() then titleCell:wikitext(navbar{ [cfg.navbar.name] = args[cfg.arg.name], [cfg.navbar.mini] = 1, [cfg.navbar.fontstyle] = extract_color( (args[cfg.arg.basestyle] or '') .. ';' .. (args[cfg.arg.titlestyle] or '') ) }) end end local function renderTitleRow(tbl) if not args[cfg.arg.title] then return end local titleRow = tbl:tag('tr') local titleCell = titleRow:tag('th'):attr('scope', 'col') local titleColspan = 2 if args[cfg.arg.imageleft] then titleColspan = titleColspan + 1 end if args[cfg.arg.image] then titleColspan = titleColspan + 1 end titleCell :cssText(args[cfg.arg.basestyle]) :cssText(args[cfg.arg.titlestyle]) :addClass(cfg.class.navbox_title) :attr('colspan', titleColspan) renderNavBar(titleCell) titleCell :tag('div') -- id for aria-labelledby attribute :attr('id', mw.uri.anchorEncode(args[cfg.arg.title])) :addClass(args[cfg.arg.titleclass]) :css('font-size', '114%') :css('margin', '0 4em') :wikitext(processItem(args[cfg.arg.title])) end local function getAboveBelowColspan() local ret = 2 if args[cfg.arg.imageleft] then ret = ret + 1 end if args[cfg.arg.image] then ret = ret + 1 end return ret end local function renderAboveRow(tbl) if not args[cfg.arg.above] then return end tbl:tag('tr') :tag('td') :addClass(cfg.class.navbox_abovebelow) :addClass(args[cfg.arg.aboveclass]) :cssText(args[cfg.arg.basestyle]) :cssText(args[cfg.arg.abovestyle]) :attr('colspan', getAboveBelowColspan()) :tag('div') -- id for aria-labelledby attribute, if no title :attr('id', (not args[cfg.arg.title]) and mw.uri.anchorEncode(args[cfg.arg.above]) or nil) :wikitext(processItem(args[cfg.arg.above], args[cfg.arg.nowrapitems])) end local function renderBelowRow(tbl) if not args[cfg.arg.below] then return end tbl:tag('tr') :tag('td') :addClass(cfg.class.navbox_abovebelow) :addClass(args[cfg.arg.belowclass]) :cssText(args[cfg.arg.basestyle]) :cssText(args[cfg.arg.belowstyle]) :attr('colspan', getAboveBelowColspan()) :tag('div') :wikitext(processItem(args[cfg.arg.below], args[cfg.arg.nowrapitems])) end local function renderListRow(tbl, index, listnum, listnums_size) local row = tbl:tag('tr') if index == 1 and args[cfg.arg.imageleft] then row :tag('td') :addClass(cfg.class.noviewer) :addClass(cfg.class.navbox_image) :addClass(args[cfg.arg.imageclass]) :css('width', '1px') -- Minimize width :css('padding', '0 2px 0 0') :cssText(args[cfg.arg.imageleftstyle]) :attr('rowspan', listnums_size) :tag('div') :wikitext(processItem(args[cfg.arg.imageleft])) end local group_and_num = format(cfg.arg.group_and_num, listnum) local groupstyle_and_num = format(cfg.arg.groupstyle_and_num, listnum) if args[group_and_num] then local groupCell = row:tag('th') -- id for aria-labelledby attribute, if lone group with no title or above if listnum == 1 and not (args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group2]) then groupCell :attr('id', mw.uri.anchorEncode(args[cfg.arg.group1])) end groupCell :attr('scope', 'row') :addClass(cfg.class.navbox_group) :addClass(args[cfg.arg.groupclass]) :cssText(args[cfg.arg.basestyle]) -- If groupwidth not specified, minimize width :css('width', args[cfg.arg.groupwidth] or '1%') groupCell :cssText(args[cfg.arg.groupstyle]) :cssText(args[groupstyle_and_num]) :wikitext(args[group_and_num]) end local listCell = row:tag('td') if args[group_and_num] then listCell :addClass(cfg.class.navbox_list_with_group) else listCell:attr('colspan', 2) end if not args[cfg.arg.groupwidth] then listCell:css('width', '100%') end local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing if index % 2 == 1 then rowstyle = args[cfg.arg.oddstyle] else rowstyle = args[cfg.arg.evenstyle] end local list_and_num = format(cfg.arg.list_and_num, listnum) local listText = args[list_and_num] local oddEven = cfg.marker.oddeven if listText:sub(1, 12) == '</div><table' then -- Assume list text is for a subgroup navbox so no automatic striping for this row. oddEven = listText:find(cfg.pattern.navbox_title) and cfg.marker.restart or cfg.class.navbox_odd_part end local liststyle_and_num = format(cfg.arg.liststyle_and_num, listnum) local listclass_and_num = format(cfg.arg.listclass_and_num, listnum) listCell :css('padding', '0') :cssText(args[cfg.arg.liststyle]) :cssText(rowstyle) :cssText(args[liststyle_and_num]) :addClass(cfg.class.navbox_list) :addClass(cfg.class.navbox_part .. oddEven) :addClass(args[cfg.arg.listclass]) :addClass(args[listclass_and_num]) :tag('div') :css('padding', (index == 1 and args[cfg.arg.list1padding]) or args[cfg.arg.listpadding] or '0 0.25em' ) :wikitext(processItem(listText, args[cfg.arg.nowrapitems])) if index == 1 and args[cfg.arg.image] then row :tag('td') :addClass(cfg.class.noviewer) :addClass(cfg.class.navbox_image) :addClass(args[cfg.arg.imageclass]) :css('width', '1px') -- Minimize width :css('padding', '0 0 0 2px') :cssText(args[cfg.arg.imagestyle]) :attr('rowspan', listnums_size) :tag('div') :wikitext(processItem(args[cfg.arg.image])) end end local function has_list_class(htmlclass) local patterns = { '^' .. htmlclass .. '$', '%s' .. htmlclass .. '$', '^' .. htmlclass .. '%s', '%s' .. htmlclass .. '%s' } for arg, _ in pairs(args) do if type(arg) == 'string' and mw.ustring.find(arg, cfg.pattern.class) then for _, pattern in ipairs(patterns) do if mw.ustring.find(args[arg] or '', pattern) then return true end end end end return false end -- there are a lot of list classes in the wild, so we add their TemplateStyles local function add_list_styles() local frame = mw.getCurrentFrame() local function add_list_templatestyles(htmlclass, templatestyles) if has_list_class(htmlclass) then return frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles } } else return '' end end local hlist_styles = add_list_templatestyles('hlist', cfg.hlist_templatestyles) local plainlist_styles = add_list_templatestyles('plainlist', cfg.plainlist_templatestyles) -- a second workaround for [[phab:T303378]] -- when that issue is fixed, we can actually use has_navbar not to emit the -- tag here if we want if has_navbar() and hlist_styles == '' then hlist_styles = frame:extensionTag{ name = 'templatestyles', args = { src = cfg.hlist_templatestyles } } end -- hlist -> plainlist is best-effort to preserve old Common.css ordering. -- this ordering is not a guarantee because most navboxes will emit only -- one of these classes [hlist_note] return hlist_styles .. plainlist_styles end local function needsHorizontalLists(border) if border == cfg.keyword.border_subgroup or args[cfg.arg.tracking] == cfg.keyword.tracking_no then return false end return not has_list_class(cfg.pattern.hlist) and not has_list_class(cfg.pattern.plainlist) end local function hasBackgroundColors() for _, key in ipairs({cfg.arg.titlestyle, cfg.arg.groupstyle, cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do if tostring(args[key]):find('background', 1, true) then return true end end return false end local function hasBorders() for _, key in ipairs({cfg.arg.groupstyle, cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do if tostring(args[key]):find('border', 1, true) then return true end end return false end local function isIllegible() local styleratio = require('Module:Color contrast')._styleratio for key, style in pairs(args) do if tostring(key):match(cfg.pattern.style) then if styleratio{mw.text.unstripNoWiki(style)} < 4.5 then return true end end end return false end local function getTrackingCategories(border) local cats = {} if needsHorizontalLists(border) then table.insert(cats, cfg.category.horizontal_lists) end if hasBackgroundColors() then table.insert(cats, cfg.category.background_colors) end if isIllegible() then table.insert(cats, cfg.category.illegible) end if hasBorders() then table.insert(cats, cfg.category.borders) end return cats end local function renderTrackingCategories(builder, border) local title = mw.title.getCurrentTitle() if title.namespace ~= 10 then return end -- not in template space local subpage = title.subpageText if subpage == cfg.keyword.subpage_doc or subpage == cfg.keyword.subpage_sandbox or subpage == cfg.keyword.subpage_testcases then return end for _, cat in ipairs(getTrackingCategories(border)) do builder:wikitext('[[تصنيف:' .. cat .. ']]') end end local function renderMainTable(border, listnums) local tbl = mw.html.create('table') :addClass(cfg.class.nowraplinks) :addClass(args[cfg.arg.bodyclass]) local state = args[cfg.arg.state] if args[cfg.arg.title] and state ~= cfg.keyword.state_plain and state ~= cfg.keyword.state_off then if state == cfg.keyword.state_collapsed then state = cfg.class.collapsed end tbl :addClass(cfg.class.collapsible) :addClass(state or cfg.class.autocollapse) end tbl:css('border-spacing', 0) if border == cfg.keyword.border_subgroup or border == cfg.keyword.border_none then tbl :addClass(cfg.class.navbox_subgroup) :cssText(args[cfg.arg.bodystyle]) :cssText(args[cfg.arg.style]) else -- regular navbox - bodystyle and style will be applied to the wrapper table tbl :addClass(cfg.class.navbox_inner) :css('background', 'transparent') :css('color', 'inherit') end tbl:cssText(args[cfg.arg.innerstyle]) renderTitleRow(tbl) renderAboveRow(tbl) local listnums_size = #listnums for i, listnum in ipairs(listnums) do renderListRow(tbl, i, listnum, listnums_size) end renderBelowRow(tbl) return tbl end local function add_navbox_styles(hiding_templatestyles) local frame = mw.getCurrentFrame() -- This is a lambda so that it doesn't need the frame as a parameter local function add_user_styles(templatestyles) if templatestyles and templatestyles ~= '' then return frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles } } end return '' end -- get templatestyles. load base from config so that Lua only needs to do -- the work once of parser tag expansion local base_templatestyles = cfg.templatestyles local templatestyles = add_user_styles(args[cfg.arg.templatestyles]) local child_templatestyles = add_user_styles(args[cfg.arg.child_templatestyles]) -- The 'navbox-styles' div exists to wrap the styles to work around T200206 -- more elegantly. Instead of combinatorial rules, this ends up being linear -- number of CSS rules. return mw.html.create('div') :addClass(cfg.class.navbox_styles) :wikitext( add_list_styles() .. -- see [hlist_note] applied to 'before base_templatestyles' base_templatestyles .. templatestyles .. child_templatestyles .. table.concat(hiding_templatestyles) ) :done() end -- work around [[phab:T303378]] -- for each arg: find all the templatestyles strip markers, insert them into a -- table. then remove all templatestyles markers from the arg local function move_hiding_templatestyles(args) local gfind = string.gfind local gsub = string.gsub local templatestyles_markers = {} local strip_marker_pattern = '(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)' for k, arg in pairs(args) do for marker in gfind(arg, strip_marker_pattern) do table.insert(templatestyles_markers, marker) end args[k] = gsub(arg, strip_marker_pattern, '') end return templatestyles_markers end function p._navbox(navboxArgs) args = navboxArgs local hiding_templatestyles = move_hiding_templatestyles(args) local listnums = {} for k, _ in pairs(args) do if type(k) == 'string' then local listnum = k:match(cfg.pattern.listnum) if listnum then table.insert(listnums, tonumber(listnum)) end end end table.sort(listnums) local border = mw.text.trim(args[cfg.arg.border] or args[1] or '') --#Modified if border == cfg.keyword.border_child or border == cfg.keyword.border_child_ar then border = cfg.keyword.border_subgroup end -- render the main body of the navbox local tbl = renderMainTable(border, listnums) local res = mw.html.create() -- render the appropriate wrapper for the navbox, based on the border param if border == cfg.keyword.border_none then res:node(add_navbox_styles(hiding_templatestyles)) local nav = res:tag('div') :attr('role', 'navigation') :node(tbl) -- aria-labelledby title, otherwise above, otherwise lone group if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then nav:attr( 'aria-labelledby', mw.uri.anchorEncode( args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1] ) ) else nav:attr('aria-label', cfg.aria_label) end elseif border == cfg.keyword.border_subgroup then -- We assume that this navbox is being rendered in a list cell of a -- parent navbox, and is therefore inside a div with padding:0em 0.25em. -- We start with a </div> to avoid the padding being applied, and at the -- end add a <div> to balance out the parent's </div> res :wikitext('</div>') :node(tbl) :wikitext('<div>') else res:node(add_navbox_styles(hiding_templatestyles)) local nav = res:tag('div') :attr('role', 'navigation') :addClass(cfg.class.navbox) :addClass(args[cfg.arg.navboxclass]) :cssText(args[cfg.arg.bodystyle]) :cssText(args[cfg.arg.style]) :css('padding', '1px') :node(tbl) -- aria-labelledby title, otherwise above, otherwise lone group if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then nav:attr( 'aria-labelledby', mw.uri.anchorEncode(args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1]) ) else nav:attr('aria-label', cfg.aria_label) end end if (args[cfg.arg.nocat] or cfg.keyword.nocat_false):lower() == cfg.keyword.nocat_false then renderTrackingCategories(res, border) end return striped(tostring(res), border) end --#added function local function check_name(frame, args) if not args.name then return '' end local nameframe = frame:getParent():getTitle() and mw.ustring.gsub(frame:getParent():getTitle(), '/ملعب$', '') if nameframe == 'قالب:شريط' or not nameframe then return '' end if args.name and nameframe ~= 'قالب:' .. args.name then local page_title = mw.title.getCurrentTitle() if page_title.fullText == nameframe or page_title.fullText == nameframe .. '/ملعب' then local ret = '[[تصنيف:قوالب تصفح باسم خاطئ]]' if frame:preprocess( "{{REVISIONID}}" ) == "" then ret = require('Module:If preview')._warning({frame:preprocess('الوسيط {{وسيط|' .. args:_ORIGIN('name') .. '}} اسمه مخالف لاسم القالب')}) .. ret end return ret end end return '' end function p.navbox(frame) if not getArgs then --#Modified getArgs = require('Module:Arguments with aliases').getArgs end --#added local options = mw.loadData('Module:navbox/وسائط') --#Modified args = getArgs(frame, {wrappers = {cfg.pattern.navbox}, aliases = options.aliases, numbered_aliases = options.numbered_aliases }) -- Read the arguments in the order they'll be output in, to make references -- number in the right order. local _ _ = args[cfg.arg.title] _ = args[cfg.arg.above] -- Limit this to 20 as covering 'most' cases (that's a SWAG) and because -- iterator approach won't work here for i = 1, 20 do _ = args[format(cfg.arg.group_and_num, i)] _ = args[format(cfg.arg.list_and_num, i)] end _ = args[cfg.arg.below] --#Modified return p._navbox(args) .. require('Module:Check for unknown parameters')._check_from_aliases({ aliases = options.aliases, numbered_aliases = options.numbered_aliases, unknown = "[[تصنيف:صفحات تستخدم وحدة:شريط مع وسائط غير معروفة|_VALUE_]]", "1" }, args) .. check_name(frame, args) end p['شريط'] = p.navbox return p 5okqrtfyid7imqahwab01z4lygvzeto 145680 145679 2026-03-30T20:40:45Z Mdktb 13023 حمى «[[وحدة:Navbox]]»: وحدة هامة ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 145679 Scribunto text/plain -- require('strict') local p = {} local navbar = require('Module:Navbar')._navbar local cfg = mw.loadData('Module:Navbox/configuration') local getArgs -- lazily initialized local args local format = string.format local function striped(wikitext, border) -- Return wikitext with markers replaced for odd/even striping. -- Child (subgroup) navboxes are flagged with a category that is removed -- by parent navboxes. The result is that the category shows all pages -- where a child navbox is not contained in a parent navbox. local orphanCat = cfg.category.orphan if border == cfg.keyword.border_subgroup and args[cfg.arg.orphan] ~= cfg.keyword.orphan_yes then -- No change; striping occurs in outermost navbox. return wikitext .. orphanCat end local first, second = cfg.class.navbox_odd_part, cfg.class.navbox_even_part if args[cfg.arg.evenodd] then if args[cfg.arg.evenodd] == cfg.keyword.evenodd_swap then first, second = second, first else first = args[cfg.arg.evenodd] second = first end end local changer if first == second then changer = first else local index = 0 changer = function (code) if code == '0' then -- Current occurrence is for a group before a nested table. -- Set it to first as a valid although pointless class. -- The next occurrence will be the first row after a title -- in a subgroup and will also be first. index = 0 return first end index = index + 1 return index % 2 == 1 and first or second end end local regex = orphanCat:gsub('([%[%]])', '%%%1') return (wikitext:gsub(regex, ''):gsub(cfg.marker.regex, changer)) -- () omits gsub count end local function processItem(item, nowrapitems) if item:sub(1, 2) == '{|' then -- Applying nowrap to lines in a table does not make sense. -- Add newlines to compensate for trim of x in |parm=x in a template. return '\n' .. item ..'\n' end if nowrapitems == cfg.keyword.nowrapitems_yes then local lines = {} for line in (item .. '\n'):gmatch('([^\n]*)\n') do local prefix, content = line:match('^([*:;#]+)%s*(.*)') if prefix and not content:match(cfg.pattern.nowrap) then line = format(cfg.nowrap_item, prefix, content) end table.insert(lines, line) end item = table.concat(lines, '\n') end if item:match('^[*:;#]') then return '\n' .. item ..'\n' end return item end local function has_navbar() return args[cfg.arg.navbar] ~= cfg.keyword.navbar_off and args[cfg.arg.navbar] ~= cfg.keyword.navbar_plain and ( args[cfg.arg.name] or mw.getCurrentFrame():getParent():getTitle():gsub(cfg.pattern.sandbox, '') ~= cfg.pattern.navbox ) end -- extract text color from css, which is the only permitted inline CSS for the navbar local function extract_color(css_str) -- return nil because navbar takes its argument into mw.html which handles -- nil gracefully, removing the associated style attribute return mw.ustring.match(';' .. css_str .. ';', '.*;%s*([Cc][Oo][Ll][Oo][Rr]%s*:%s*.-)%s*;') or nil end local function renderNavBar(titleCell) if has_navbar() then titleCell:wikitext(navbar{ [cfg.navbar.name] = args[cfg.arg.name], [cfg.navbar.mini] = 1, [cfg.navbar.fontstyle] = extract_color( (args[cfg.arg.basestyle] or '') .. ';' .. (args[cfg.arg.titlestyle] or '') ) }) end end local function renderTitleRow(tbl) if not args[cfg.arg.title] then return end local titleRow = tbl:tag('tr') local titleCell = titleRow:tag('th'):attr('scope', 'col') local titleColspan = 2 if args[cfg.arg.imageleft] then titleColspan = titleColspan + 1 end if args[cfg.arg.image] then titleColspan = titleColspan + 1 end titleCell :cssText(args[cfg.arg.basestyle]) :cssText(args[cfg.arg.titlestyle]) :addClass(cfg.class.navbox_title) :attr('colspan', titleColspan) renderNavBar(titleCell) titleCell :tag('div') -- id for aria-labelledby attribute :attr('id', mw.uri.anchorEncode(args[cfg.arg.title])) :addClass(args[cfg.arg.titleclass]) :css('font-size', '114%') :css('margin', '0 4em') :wikitext(processItem(args[cfg.arg.title])) end local function getAboveBelowColspan() local ret = 2 if args[cfg.arg.imageleft] then ret = ret + 1 end if args[cfg.arg.image] then ret = ret + 1 end return ret end local function renderAboveRow(tbl) if not args[cfg.arg.above] then return end tbl:tag('tr') :tag('td') :addClass(cfg.class.navbox_abovebelow) :addClass(args[cfg.arg.aboveclass]) :cssText(args[cfg.arg.basestyle]) :cssText(args[cfg.arg.abovestyle]) :attr('colspan', getAboveBelowColspan()) :tag('div') -- id for aria-labelledby attribute, if no title :attr('id', (not args[cfg.arg.title]) and mw.uri.anchorEncode(args[cfg.arg.above]) or nil) :wikitext(processItem(args[cfg.arg.above], args[cfg.arg.nowrapitems])) end local function renderBelowRow(tbl) if not args[cfg.arg.below] then return end tbl:tag('tr') :tag('td') :addClass(cfg.class.navbox_abovebelow) :addClass(args[cfg.arg.belowclass]) :cssText(args[cfg.arg.basestyle]) :cssText(args[cfg.arg.belowstyle]) :attr('colspan', getAboveBelowColspan()) :tag('div') :wikitext(processItem(args[cfg.arg.below], args[cfg.arg.nowrapitems])) end local function renderListRow(tbl, index, listnum, listnums_size) local row = tbl:tag('tr') if index == 1 and args[cfg.arg.imageleft] then row :tag('td') :addClass(cfg.class.noviewer) :addClass(cfg.class.navbox_image) :addClass(args[cfg.arg.imageclass]) :css('width', '1px') -- Minimize width :css('padding', '0 2px 0 0') :cssText(args[cfg.arg.imageleftstyle]) :attr('rowspan', listnums_size) :tag('div') :wikitext(processItem(args[cfg.arg.imageleft])) end local group_and_num = format(cfg.arg.group_and_num, listnum) local groupstyle_and_num = format(cfg.arg.groupstyle_and_num, listnum) if args[group_and_num] then local groupCell = row:tag('th') -- id for aria-labelledby attribute, if lone group with no title or above if listnum == 1 and not (args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group2]) then groupCell :attr('id', mw.uri.anchorEncode(args[cfg.arg.group1])) end groupCell :attr('scope', 'row') :addClass(cfg.class.navbox_group) :addClass(args[cfg.arg.groupclass]) :cssText(args[cfg.arg.basestyle]) -- If groupwidth not specified, minimize width :css('width', args[cfg.arg.groupwidth] or '1%') groupCell :cssText(args[cfg.arg.groupstyle]) :cssText(args[groupstyle_and_num]) :wikitext(args[group_and_num]) end local listCell = row:tag('td') if args[group_and_num] then listCell :addClass(cfg.class.navbox_list_with_group) else listCell:attr('colspan', 2) end if not args[cfg.arg.groupwidth] then listCell:css('width', '100%') end local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing if index % 2 == 1 then rowstyle = args[cfg.arg.oddstyle] else rowstyle = args[cfg.arg.evenstyle] end local list_and_num = format(cfg.arg.list_and_num, listnum) local listText = args[list_and_num] local oddEven = cfg.marker.oddeven if listText:sub(1, 12) == '</div><table' then -- Assume list text is for a subgroup navbox so no automatic striping for this row. oddEven = listText:find(cfg.pattern.navbox_title) and cfg.marker.restart or cfg.class.navbox_odd_part end local liststyle_and_num = format(cfg.arg.liststyle_and_num, listnum) local listclass_and_num = format(cfg.arg.listclass_and_num, listnum) listCell :css('padding', '0') :cssText(args[cfg.arg.liststyle]) :cssText(rowstyle) :cssText(args[liststyle_and_num]) :addClass(cfg.class.navbox_list) :addClass(cfg.class.navbox_part .. oddEven) :addClass(args[cfg.arg.listclass]) :addClass(args[listclass_and_num]) :tag('div') :css('padding', (index == 1 and args[cfg.arg.list1padding]) or args[cfg.arg.listpadding] or '0 0.25em' ) :wikitext(processItem(listText, args[cfg.arg.nowrapitems])) if index == 1 and args[cfg.arg.image] then row :tag('td') :addClass(cfg.class.noviewer) :addClass(cfg.class.navbox_image) :addClass(args[cfg.arg.imageclass]) :css('width', '1px') -- Minimize width :css('padding', '0 0 0 2px') :cssText(args[cfg.arg.imagestyle]) :attr('rowspan', listnums_size) :tag('div') :wikitext(processItem(args[cfg.arg.image])) end end local function has_list_class(htmlclass) local patterns = { '^' .. htmlclass .. '$', '%s' .. htmlclass .. '$', '^' .. htmlclass .. '%s', '%s' .. htmlclass .. '%s' } for arg, _ in pairs(args) do if type(arg) == 'string' and mw.ustring.find(arg, cfg.pattern.class) then for _, pattern in ipairs(patterns) do if mw.ustring.find(args[arg] or '', pattern) then return true end end end end return false end -- there are a lot of list classes in the wild, so we add their TemplateStyles local function add_list_styles() local frame = mw.getCurrentFrame() local function add_list_templatestyles(htmlclass, templatestyles) if has_list_class(htmlclass) then return frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles } } else return '' end end local hlist_styles = add_list_templatestyles('hlist', cfg.hlist_templatestyles) local plainlist_styles = add_list_templatestyles('plainlist', cfg.plainlist_templatestyles) -- a second workaround for [[phab:T303378]] -- when that issue is fixed, we can actually use has_navbar not to emit the -- tag here if we want if has_navbar() and hlist_styles == '' then hlist_styles = frame:extensionTag{ name = 'templatestyles', args = { src = cfg.hlist_templatestyles } } end -- hlist -> plainlist is best-effort to preserve old Common.css ordering. -- this ordering is not a guarantee because most navboxes will emit only -- one of these classes [hlist_note] return hlist_styles .. plainlist_styles end local function needsHorizontalLists(border) if border == cfg.keyword.border_subgroup or args[cfg.arg.tracking] == cfg.keyword.tracking_no then return false end return not has_list_class(cfg.pattern.hlist) and not has_list_class(cfg.pattern.plainlist) end local function hasBackgroundColors() for _, key in ipairs({cfg.arg.titlestyle, cfg.arg.groupstyle, cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do if tostring(args[key]):find('background', 1, true) then return true end end return false end local function hasBorders() for _, key in ipairs({cfg.arg.groupstyle, cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do if tostring(args[key]):find('border', 1, true) then return true end end return false end local function isIllegible() local styleratio = require('Module:Color contrast')._styleratio for key, style in pairs(args) do if tostring(key):match(cfg.pattern.style) then if styleratio{mw.text.unstripNoWiki(style)} < 4.5 then return true end end end return false end local function getTrackingCategories(border) local cats = {} if needsHorizontalLists(border) then table.insert(cats, cfg.category.horizontal_lists) end if hasBackgroundColors() then table.insert(cats, cfg.category.background_colors) end if isIllegible() then table.insert(cats, cfg.category.illegible) end if hasBorders() then table.insert(cats, cfg.category.borders) end return cats end local function renderTrackingCategories(builder, border) local title = mw.title.getCurrentTitle() if title.namespace ~= 10 then return end -- not in template space local subpage = title.subpageText if subpage == cfg.keyword.subpage_doc or subpage == cfg.keyword.subpage_sandbox or subpage == cfg.keyword.subpage_testcases then return end for _, cat in ipairs(getTrackingCategories(border)) do builder:wikitext('[[تصنيف:' .. cat .. ']]') end end local function renderMainTable(border, listnums) local tbl = mw.html.create('table') :addClass(cfg.class.nowraplinks) :addClass(args[cfg.arg.bodyclass]) local state = args[cfg.arg.state] if args[cfg.arg.title] and state ~= cfg.keyword.state_plain and state ~= cfg.keyword.state_off then if state == cfg.keyword.state_collapsed then state = cfg.class.collapsed end tbl :addClass(cfg.class.collapsible) :addClass(state or cfg.class.autocollapse) end tbl:css('border-spacing', 0) if border == cfg.keyword.border_subgroup or border == cfg.keyword.border_none then tbl :addClass(cfg.class.navbox_subgroup) :cssText(args[cfg.arg.bodystyle]) :cssText(args[cfg.arg.style]) else -- regular navbox - bodystyle and style will be applied to the wrapper table tbl :addClass(cfg.class.navbox_inner) :css('background', 'transparent') :css('color', 'inherit') end tbl:cssText(args[cfg.arg.innerstyle]) renderTitleRow(tbl) renderAboveRow(tbl) local listnums_size = #listnums for i, listnum in ipairs(listnums) do renderListRow(tbl, i, listnum, listnums_size) end renderBelowRow(tbl) return tbl end local function add_navbox_styles(hiding_templatestyles) local frame = mw.getCurrentFrame() -- This is a lambda so that it doesn't need the frame as a parameter local function add_user_styles(templatestyles) if templatestyles and templatestyles ~= '' then return frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles } } end return '' end -- get templatestyles. load base from config so that Lua only needs to do -- the work once of parser tag expansion local base_templatestyles = cfg.templatestyles local templatestyles = add_user_styles(args[cfg.arg.templatestyles]) local child_templatestyles = add_user_styles(args[cfg.arg.child_templatestyles]) -- The 'navbox-styles' div exists to wrap the styles to work around T200206 -- more elegantly. Instead of combinatorial rules, this ends up being linear -- number of CSS rules. return mw.html.create('div') :addClass(cfg.class.navbox_styles) :wikitext( add_list_styles() .. -- see [hlist_note] applied to 'before base_templatestyles' base_templatestyles .. templatestyles .. child_templatestyles .. table.concat(hiding_templatestyles) ) :done() end -- work around [[phab:T303378]] -- for each arg: find all the templatestyles strip markers, insert them into a -- table. then remove all templatestyles markers from the arg local function move_hiding_templatestyles(args) local gfind = string.gfind local gsub = string.gsub local templatestyles_markers = {} local strip_marker_pattern = '(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)' for k, arg in pairs(args) do for marker in gfind(arg, strip_marker_pattern) do table.insert(templatestyles_markers, marker) end args[k] = gsub(arg, strip_marker_pattern, '') end return templatestyles_markers end function p._navbox(navboxArgs) args = navboxArgs local hiding_templatestyles = move_hiding_templatestyles(args) local listnums = {} for k, _ in pairs(args) do if type(k) == 'string' then local listnum = k:match(cfg.pattern.listnum) if listnum then table.insert(listnums, tonumber(listnum)) end end end table.sort(listnums) local border = mw.text.trim(args[cfg.arg.border] or args[1] or '') --#Modified if border == cfg.keyword.border_child or border == cfg.keyword.border_child_ar then border = cfg.keyword.border_subgroup end -- render the main body of the navbox local tbl = renderMainTable(border, listnums) local res = mw.html.create() -- render the appropriate wrapper for the navbox, based on the border param if border == cfg.keyword.border_none then res:node(add_navbox_styles(hiding_templatestyles)) local nav = res:tag('div') :attr('role', 'navigation') :node(tbl) -- aria-labelledby title, otherwise above, otherwise lone group if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then nav:attr( 'aria-labelledby', mw.uri.anchorEncode( args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1] ) ) else nav:attr('aria-label', cfg.aria_label) end elseif border == cfg.keyword.border_subgroup then -- We assume that this navbox is being rendered in a list cell of a -- parent navbox, and is therefore inside a div with padding:0em 0.25em. -- We start with a </div> to avoid the padding being applied, and at the -- end add a <div> to balance out the parent's </div> res :wikitext('</div>') :node(tbl) :wikitext('<div>') else res:node(add_navbox_styles(hiding_templatestyles)) local nav = res:tag('div') :attr('role', 'navigation') :addClass(cfg.class.navbox) :addClass(args[cfg.arg.navboxclass]) :cssText(args[cfg.arg.bodystyle]) :cssText(args[cfg.arg.style]) :css('padding', '1px') :node(tbl) -- aria-labelledby title, otherwise above, otherwise lone group if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then nav:attr( 'aria-labelledby', mw.uri.anchorEncode(args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1]) ) else nav:attr('aria-label', cfg.aria_label) end end if (args[cfg.arg.nocat] or cfg.keyword.nocat_false):lower() == cfg.keyword.nocat_false then renderTrackingCategories(res, border) end return striped(tostring(res), border) end --#added function local function check_name(frame, args) if not args.name then return '' end local nameframe = frame:getParent():getTitle() and mw.ustring.gsub(frame:getParent():getTitle(), '/ملعب$', '') if nameframe == 'قالب:شريط' or not nameframe then return '' end if args.name and nameframe ~= 'قالب:' .. args.name then local page_title = mw.title.getCurrentTitle() if page_title.fullText == nameframe or page_title.fullText == nameframe .. '/ملعب' then local ret = '[[تصنيف:قوالب تصفح باسم خاطئ]]' if frame:preprocess( "{{REVISIONID}}" ) == "" then ret = require('Module:If preview')._warning({frame:preprocess('الوسيط {{وسيط|' .. args:_ORIGIN('name') .. '}} اسمه مخالف لاسم القالب')}) .. ret end return ret end end return '' end function p.navbox(frame) if not getArgs then --#Modified getArgs = require('Module:Arguments with aliases').getArgs end --#added local options = mw.loadData('Module:navbox/وسائط') --#Modified args = getArgs(frame, {wrappers = {cfg.pattern.navbox}, aliases = options.aliases, numbered_aliases = options.numbered_aliases }) -- Read the arguments in the order they'll be output in, to make references -- number in the right order. local _ _ = args[cfg.arg.title] _ = args[cfg.arg.above] -- Limit this to 20 as covering 'most' cases (that's a SWAG) and because -- iterator approach won't work here for i = 1, 20 do _ = args[format(cfg.arg.group_and_num, i)] _ = args[format(cfg.arg.list_and_num, i)] end _ = args[cfg.arg.below] --#Modified return p._navbox(args) .. require('Module:Check for unknown parameters')._check_from_aliases({ aliases = options.aliases, numbered_aliases = options.numbered_aliases, unknown = "[[تصنيف:صفحات تستخدم وحدة:شريط مع وسائط غير معروفة|_VALUE_]]", "1" }, args) .. check_name(frame, args) end p['شريط'] = p.navbox return p 5okqrtfyid7imqahwab01z4lygvzeto قالب:Navbox 10 32895 145683 2026-03-30T21:24:52Z Mdktb 13023 نقل Mdktb صفحة [[قالب:Navbox]] إلى [[قالب:شريط]]: تعريب 145683 wikitext text/x-wiki #تحويل [[قالب:شريط]] 5vgzgg7z05312bc62wxcof1e0lj0vhw وحدة:Navbox/configuration 828 32896 145685 2026-03-30T21:30:03Z Mdktb 13023 + جلب من [[w:خاص:وصلة دائمة/69809280|w:وحدة:Navbox/configuration]] 145685 Scribunto text/plain return { aria_label = 'Navbox', nowrap_item = '%s<span class="nowrap">%s</span>', templatestyles = mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Module:Navbox/styles.css' } }, hlist_templatestyles = 'Hlist/styles.css', plainlist_templatestyles = 'Plainlist/styles.css', -- do not localize marker table marker = { oddeven = '\127_ODDEVEN_\127', restart = '\127_ODDEVEN0_\127', regex = '\127_ODDEVEN(%d?)_\127' }, category = { orphan = '[[تصنيف:Navbox orphans]]', horizontal_lists = 'صناديق تصفح بلا لوائح مسطحة', background_colors = 'صناديق تصفح ذات خلفيات ملونة', illegible = 'صناديق تصفح بنسبة تباين غير صالحة', borders = 'صناديق تصفح لها حدود', }, keyword = { border_subgroup = 'subgroup', border_child = 'child', border_child_ar = 'قسم', border_none = 'none', evenodd_swap = 'swap', navbar_off = 'off', navbar_plain = 'plain', nocat_false = 'false', nowrapitems_yes = 'yes', orphan_yes = 'yes', state_collapsed = 'collapsed', state_off = 'off', state_plain = 'plain', subgroups = {'subgroup', 'child', ''}, subpage_doc = 'شرح', subpage_sandbox = 'ملعب', subpage_testcases = 'مختبر', tracking_no = 'no' }, class = { autocollapse = 'autocollapse', collapsible = 'mw-collapsible', collapsed = 'mw-collapsed', -- Warning navbox = 'navbox', -- WMF currently hides 'navbox' from mobile, -- so you probably shouldn't change the navbox class. navbox_abovebelow = 'navbox-abovebelow', navbox_group = 'navbox-group', navbox_image = 'navbox-image', navbox_inner = 'navbox-inner', navbox_list = 'navbox-list', navbox_list_with_group = 'navbox-list-with-group', navbox_part = 'navbox-', -- do not l10n navbox_styles = 'navbox-styles', navbox_subgroup = 'navbox-subgroup', navbox_title = 'navbox-title', -- l10n only if you change pattern.navbox_title below navbox_odd_part = 'odd', -- do not l10n navbox_even_part = 'even', -- do not l10n nomobile = 'nomobile', nowraplinks = 'nowraplinks', noviewer = 'noviewer' -- used to remove images from MediaViewer }, pattern = { listnum = '^list(%d+)$', class = 'class', sandbox = '/ملعب$', navbox = 'قالب:شريط', nowrap = '^<span class="nowrap">', style = 'style$', navbox_title = '<th[^>]*"navbox%-title"', hlist = 'hlist', plainlist = 'plainlist', }, arg = { above = 'above', aboveclass = 'aboveclass', abovestyle = 'abovestyle', basestyle = 'basestyle', bodyclass = 'bodyclass', bodystyle = 'bodystyle', border = 'border', below = 'below', belowclass = 'belowclass', belowstyle = 'belowstyle', evenodd = 'evenodd', evenstyle = 'evenstyle', group1 = 'group1', group2 = 'group2', group_and_num = 'group%d', groupstyle_and_num = 'group%dstyle', groupclass = 'groupclass', groupstyle = 'groupstyle', groupwidth = 'groupwidth', innerstyle = 'innerstyle', image = 'image', imageclass = 'imageclass', imageleft = 'imageleft', imageleftstyle = 'imageleftstyle', imagesetyle = 'imagestyle', imagestyle = 'imagestyle', list_and_num = 'list%d', listclass_and_num = 'list%dclass', liststyle_and_num = 'list%dstyle', list1padding = 'list1padding', listclass = 'listclass', listpadding = 'listpadding', liststyle = 'liststyle', name = 'name', navbar = 'navbar', navboxclass = 'navboxclass', nocat = 'nocat', nowrapitems = 'nowrapitems', oddstyle = 'oddstyle', orphan = 'orphan', state = 'state', style = 'style', templatestyles = 'templatestyles', child_templatestyles = 'child templatestyles', title = 'title', titleclass = 'titleclass', titlestyle = 'titlestyle', tracking = 'tracking' }, -- names of navbar arguments navbar = { name = 1, fontstyle = 'fontstyle', mini = 'mini' } } 6uisl2h7db7r629ollqjhs2lst734ys 145686 145685 2026-03-30T21:31:01Z Mdktb 13023 حمى «[[وحدة:Navbox/configuration]]»: وحدة هامة ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 145685 Scribunto text/plain return { aria_label = 'Navbox', nowrap_item = '%s<span class="nowrap">%s</span>', templatestyles = mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Module:Navbox/styles.css' } }, hlist_templatestyles = 'Hlist/styles.css', plainlist_templatestyles = 'Plainlist/styles.css', -- do not localize marker table marker = { oddeven = '\127_ODDEVEN_\127', restart = '\127_ODDEVEN0_\127', regex = '\127_ODDEVEN(%d?)_\127' }, category = { orphan = '[[تصنيف:Navbox orphans]]', horizontal_lists = 'صناديق تصفح بلا لوائح مسطحة', background_colors = 'صناديق تصفح ذات خلفيات ملونة', illegible = 'صناديق تصفح بنسبة تباين غير صالحة', borders = 'صناديق تصفح لها حدود', }, keyword = { border_subgroup = 'subgroup', border_child = 'child', border_child_ar = 'قسم', border_none = 'none', evenodd_swap = 'swap', navbar_off = 'off', navbar_plain = 'plain', nocat_false = 'false', nowrapitems_yes = 'yes', orphan_yes = 'yes', state_collapsed = 'collapsed', state_off = 'off', state_plain = 'plain', subgroups = {'subgroup', 'child', ''}, subpage_doc = 'شرح', subpage_sandbox = 'ملعب', subpage_testcases = 'مختبر', tracking_no = 'no' }, class = { autocollapse = 'autocollapse', collapsible = 'mw-collapsible', collapsed = 'mw-collapsed', -- Warning navbox = 'navbox', -- WMF currently hides 'navbox' from mobile, -- so you probably shouldn't change the navbox class. navbox_abovebelow = 'navbox-abovebelow', navbox_group = 'navbox-group', navbox_image = 'navbox-image', navbox_inner = 'navbox-inner', navbox_list = 'navbox-list', navbox_list_with_group = 'navbox-list-with-group', navbox_part = 'navbox-', -- do not l10n navbox_styles = 'navbox-styles', navbox_subgroup = 'navbox-subgroup', navbox_title = 'navbox-title', -- l10n only if you change pattern.navbox_title below navbox_odd_part = 'odd', -- do not l10n navbox_even_part = 'even', -- do not l10n nomobile = 'nomobile', nowraplinks = 'nowraplinks', noviewer = 'noviewer' -- used to remove images from MediaViewer }, pattern = { listnum = '^list(%d+)$', class = 'class', sandbox = '/ملعب$', navbox = 'قالب:شريط', nowrap = '^<span class="nowrap">', style = 'style$', navbox_title = '<th[^>]*"navbox%-title"', hlist = 'hlist', plainlist = 'plainlist', }, arg = { above = 'above', aboveclass = 'aboveclass', abovestyle = 'abovestyle', basestyle = 'basestyle', bodyclass = 'bodyclass', bodystyle = 'bodystyle', border = 'border', below = 'below', belowclass = 'belowclass', belowstyle = 'belowstyle', evenodd = 'evenodd', evenstyle = 'evenstyle', group1 = 'group1', group2 = 'group2', group_and_num = 'group%d', groupstyle_and_num = 'group%dstyle', groupclass = 'groupclass', groupstyle = 'groupstyle', groupwidth = 'groupwidth', innerstyle = 'innerstyle', image = 'image', imageclass = 'imageclass', imageleft = 'imageleft', imageleftstyle = 'imageleftstyle', imagesetyle = 'imagestyle', imagestyle = 'imagestyle', list_and_num = 'list%d', listclass_and_num = 'list%dclass', liststyle_and_num = 'list%dstyle', list1padding = 'list1padding', listclass = 'listclass', listpadding = 'listpadding', liststyle = 'liststyle', name = 'name', navbar = 'navbar', navboxclass = 'navboxclass', nocat = 'nocat', nowrapitems = 'nowrapitems', oddstyle = 'oddstyle', orphan = 'orphan', state = 'state', style = 'style', templatestyles = 'templatestyles', child_templatestyles = 'child templatestyles', title = 'title', titleclass = 'titleclass', titlestyle = 'titlestyle', tracking = 'tracking' }, -- names of navbar arguments navbar = { name = 1, fontstyle = 'fontstyle', mini = 'mini' } } 6uisl2h7db7r629ollqjhs2lst734ys وحدة:Navbox/وسائط 828 32897 145687 2026-03-30T21:34:00Z Mdktb 13023 + جلب من [[w:خاص:وصلة دائمة/68657618|w:وحدة:Navbox/وسائط]] 145687 Scribunto text/plain return { aliases = { ['child'] = {'طفل','فرع','child' }, ['name'] = {'اسم','اسم القالب','name','الاسم' }, ['style'] = {'نمط','style' }, ['bodyclass'] = {'صنف_البنية', 'كلاس_بنية','bodyclass', 'صنف الهيكل' }, ['bodystyle'] = {'نمط_البنية' ,'نمط_بنية' ,'نمط_جسم','bodystyle', 'نمط الهيكل'}, ['border'] = {'حاشية','border'}, ['title'] = {'عنوان','العنوان','title' }, ['titlestyle'] = {'اللون','نمط_عنوان','titlestyle' }, ['titleclass'] = {'كلاس_عنوان','titleclass' }, ['state'] = {'وضع','حالة','state' }, ['innerstyle'] = {'نمط_داخلي','innerstyle' }, ['basestyle'] = {'نمط_أساسي','basestyle' }, ['titlegroup'] = {'مجموعة_عنوان','titlegroup' }, ['titlegroupclass'] = {'كلاس_مجموعة_عنوان','titlegroupclass' }, ['titlegroupstyle'] = {'نمط_مجموعة_عنوان','titlegroupstyle' }, ['groupstyle'] = {'نمط_مجموعة','groupstyle' }, ['image'] = {'صورة','الصورة','image' }, ['imageclass'] = {'كلاس_صورة','imageclass' }, ['imagestyle'] = {'نمط_صورة','imagestyle' }, ['imageleft'] = {'يمين_صورة','يسار_صورة','صورة_يمين','صورة_يسار','imageleft' }, ['imageleftstyle'] = {'نمط_صورة_يسار','نمط_صورة_يمين','imageleftstyle' }, ['navbar'] = {'وصلات قالب','navbar' } , ['above'] = {'اعلى','أعلى','فوق','above' }, ['aboveclass'] = {'كلاس_فوق','كلاس_اعلى','كلاس_أعلى','aboveclass' }, ['abovestyle'] = {'نمط_فوق','نمط_أعلى','نمط_اعلى','abovestyle' }, ['below'] = {'تحت','أدنى','ادنى','below' }, ['belowclass'] = {'كلاس_تحت','كلاس_ادنى','كلاس_أدنى','belowclass' }, ['belowstyle'] = {'نمط_تحت','نمط_أدنى','نمط_ادنى','belowstyle' }, ['tracking'] = {'متابعة','tracking' }, ['groupclass'] = {'كلاس_مجموعة','groupclass' }, ['groupwidth'] = {'عرض_مجموعة','groupwidth' }, ['liststyle'] = {'نمط_قائمة','liststyle' }, ['listclass'] = {'كلاس_قائمة','listclass', 'صنف القائمة' }, ['listpadding'] = {'تبطين_قائمة','listpadding' }, ['oddstyle'] = {'نمط_فردي','oddstyle' }, ['evenodd'] = {'زوجي_فردي','evenodd' }, ['evenstyle'] = {'نمط_زوجي','evenstyle' }, ['list1'] = {'المحتوى','قائمة1','list1','list','قائمة' }, }, numbered_aliases = { ['list#'] = {'قائمة#','list#' }, ['group#'] = {'مجموعة#','group#' }, ['group#style'] = {'نمط_مجموعة#','group#style' }, ['list#style'] = {'نمط_قائمة#','list#style' } } } tew4uywofk9xmj7l79i50q4a8fdlq01 145688 145687 2026-03-30T21:34:17Z Mdktb 13023 حمى «[[وحدة:Navbox/وسائط]]»: وحدة هامة ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 145687 Scribunto text/plain return { aliases = { ['child'] = {'طفل','فرع','child' }, ['name'] = {'اسم','اسم القالب','name','الاسم' }, ['style'] = {'نمط','style' }, ['bodyclass'] = {'صنف_البنية', 'كلاس_بنية','bodyclass', 'صنف الهيكل' }, ['bodystyle'] = {'نمط_البنية' ,'نمط_بنية' ,'نمط_جسم','bodystyle', 'نمط الهيكل'}, ['border'] = {'حاشية','border'}, ['title'] = {'عنوان','العنوان','title' }, ['titlestyle'] = {'اللون','نمط_عنوان','titlestyle' }, ['titleclass'] = {'كلاس_عنوان','titleclass' }, ['state'] = {'وضع','حالة','state' }, ['innerstyle'] = {'نمط_داخلي','innerstyle' }, ['basestyle'] = {'نمط_أساسي','basestyle' }, ['titlegroup'] = {'مجموعة_عنوان','titlegroup' }, ['titlegroupclass'] = {'كلاس_مجموعة_عنوان','titlegroupclass' }, ['titlegroupstyle'] = {'نمط_مجموعة_عنوان','titlegroupstyle' }, ['groupstyle'] = {'نمط_مجموعة','groupstyle' }, ['image'] = {'صورة','الصورة','image' }, ['imageclass'] = {'كلاس_صورة','imageclass' }, ['imagestyle'] = {'نمط_صورة','imagestyle' }, ['imageleft'] = {'يمين_صورة','يسار_صورة','صورة_يمين','صورة_يسار','imageleft' }, ['imageleftstyle'] = {'نمط_صورة_يسار','نمط_صورة_يمين','imageleftstyle' }, ['navbar'] = {'وصلات قالب','navbar' } , ['above'] = {'اعلى','أعلى','فوق','above' }, ['aboveclass'] = {'كلاس_فوق','كلاس_اعلى','كلاس_أعلى','aboveclass' }, ['abovestyle'] = {'نمط_فوق','نمط_أعلى','نمط_اعلى','abovestyle' }, ['below'] = {'تحت','أدنى','ادنى','below' }, ['belowclass'] = {'كلاس_تحت','كلاس_ادنى','كلاس_أدنى','belowclass' }, ['belowstyle'] = {'نمط_تحت','نمط_أدنى','نمط_ادنى','belowstyle' }, ['tracking'] = {'متابعة','tracking' }, ['groupclass'] = {'كلاس_مجموعة','groupclass' }, ['groupwidth'] = {'عرض_مجموعة','groupwidth' }, ['liststyle'] = {'نمط_قائمة','liststyle' }, ['listclass'] = {'كلاس_قائمة','listclass', 'صنف القائمة' }, ['listpadding'] = {'تبطين_قائمة','listpadding' }, ['oddstyle'] = {'نمط_فردي','oddstyle' }, ['evenodd'] = {'زوجي_فردي','evenodd' }, ['evenstyle'] = {'نمط_زوجي','evenstyle' }, ['list1'] = {'المحتوى','قائمة1','list1','list','قائمة' }, }, numbered_aliases = { ['list#'] = {'قائمة#','list#' }, ['group#'] = {'مجموعة#','group#' }, ['group#style'] = {'نمط_مجموعة#','group#style' }, ['list#style'] = {'نمط_قائمة#','list#style' } } } tew4uywofk9xmj7l79i50q4a8fdlq01 وحدة:Navbox/styles.css 828 32898 145689 2026-03-30T21:46:36Z Mdktb 13023 +جلب من [[w:خاص:وصلة دائمة/68124052|w:وحدة:Navbox/styles.css]] 145689 sanitized-css text/css .navbox { box-sizing: border-box; border: 1px solid #a2a9b1; width: 100%; clear: both; font-size: 88%; text-align: center; padding: 1px; margin: 1em auto 0; /* Prevent preceding content from clinging to navboxes */ } .navbox .navbox { margin-top: 0; /* No top margin for nested navboxes */ } .navbox + .navbox, /* TODO: remove first line after transclusions have updated */ .navbox + .navbox-styles + .navbox { margin-top: -1px; /* Single pixel border between adjacent navboxes */ } .navbox-inner, .navbox-subgroup { width: 100%; } .navbox-group, .navbox-title, .navbox-abovebelow { padding: 0.25em 1em; line-height: 1.5em; text-align: center; } .navbox-group { white-space: nowrap; /* @noflip */ text-align: right; } .navbox, .navbox-subgroup { background-color: #fdfdfd; } .navbox-list { line-height: 1.5em; border-color: #fdfdfd; /* Must match background color */ } .navbox-list-with-group { text-align: right; border-right-width: 2px; border-right-style: solid; } /* cell spacing for navbox cells */ /* Borders above 2nd, 3rd, etc. rows */ /* TODO: figure out how to replace tr as structure; * with div structure it should be just a matter of first-child */ tr + tr > .navbox-abovebelow, tr + tr > .navbox-group, tr + tr > .navbox-image, tr + tr > .navbox-list { border-top: 2px solid #fdfdfd; /* Must match background color */ } .navbox-title { background-color: #ccf; /* Level 1 color */ } .navbox-abovebelow, .navbox-group, .navbox-subgroup .navbox-title { background-color: #ddf; /* Level 2 color */ } .navbox-subgroup .navbox-group, .navbox-subgroup .navbox-abovebelow { background-color: #e6e6ff; /* Level 3 color */ } .navbox-even { background-color: #f7f7f7; } .navbox-odd { background-color: transparent; } /* TODO: figure out how to remove reliance on td as structure */ .navbox .hlist td dl, .navbox .hlist td ol, .navbox .hlist td ul, .navbox td.hlist dl, .navbox td.hlist ol, .navbox td.hlist ul { padding: 0.125em 0; } .navbox .navbar { display: block; font-size: 100%; } .navbox-title .navbar { /* @noflip */ float: right; /* @noflip */ text-align: right; /* @noflip */ margin-right: 0.5em; } /** T367463 */ body.skin--responsive .navbox-image img { max-width: none !important; } @media print { body.ns-0 .navbox { display: none !important; } } 370siif0pnrtiew0tanhxqqd4tdnfwt وحدة:Color contrast 828 32899 145690 2026-03-30T21:52:35Z Mdktb 13023 + جلب من [[w:خاص:وصلة دائمة/72377824|w:وحدة:Color contrast]] 145690 Scribunto text/plain -- -- This module implements -- {{Color contrast ratio}} -- {{Greater color contrast ratio}} -- {{ColorToLum}} -- {{RGBColorToLum}} -- local p = {} local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' ) local function sRGB (v) if (v <= 0.03928) then v = v / 12.92 else v = math.pow((v+0.055)/1.055, 2.4) end return v end local function rgbdec2lum(R, G, B) if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255) else return '' end end local function hsl2lum(h, s, l) if ( 0 <= h and h < 360 and 0 <= s and s <= 1 and 0 <= l and l <= 1 ) then local c = (1 - math.abs(2*l - 1))*s local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) ) local m = l - c/2 local r, g, b = m, m, m if( 0 <= h and h < 60 ) then r = r + c g = g + x elseif( 60 <= h and h < 120 ) then r = r + x g = g + c elseif( 120 <= h and h < 180 ) then g = g + c b = b + x elseif( 180 <= h and h < 240 ) then g = g + x b = b + c elseif( 240 <= h and h < 300 ) then r = r + x b = b + c elseif( 300 <= h and h < 360 ) then r = r + c b = b + x end return rgbdec2lum(255*r, 255*g, 255*b) else return '' end end local function color2lum(c) if (c == nil) then return '' end -- html '#' entity c = c:gsub("&#35;", "#") -- whitespace c = c:match( '^%s*(.-)[%s;]*$' ) -- unstrip nowiki strip markers c = mw.text.unstripNoWiki(c) -- lowercase c = c:lower() -- first try to look it up local L = HTMLcolor[c] if (L ~= nil) then return L end -- convert from hsl if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$') return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100) end -- convert from rgb if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$') return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B)) end -- convert from rgb percent if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$') return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100) end -- remove leading # (if there is one) and whitespace c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$') -- split into rgb local cs = mw.text.split(c or '', '') if( #cs == 6 ) then local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2]) local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4]) local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6]) return rgbdec2lum(R, G, B) elseif ( #cs == 3 ) then local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1]) local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2]) local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3]) return rgbdec2lum(R, G, B) end -- failure, return blank return '' end -- This exports the function for use in other modules. -- The colour is passed as a string. function p._lum(color) return color2lum(color) end function p._greatercontrast(args) local bias = tonumber(args['bias'] or '0') or 0 local css = (args['css'] and args['css'] ~= '') and true or false local v1 = color2lum(args[1] or '') local c2 = args[2] or 'white' local v2 = color2lum(c2) local c3 = args[3] or 'black' local v3 = color2lum(c3) local ratio1 = -1; local ratio2 = -1; if (type(v1) == 'number' and type(v2) == 'number') then ratio1 = (v2 + 0.05)/(v1 + 0.05) ratio1 = (ratio1 < 1) and 1/ratio1 or ratio1 end if (type(v1) == 'number' and type(v3) == 'number') then ratio2 = (v3 + 0.05)/(v1 + 0.05) ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2 end if css then local c1 = args[1] or '' if mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c1 = '#' .. c1 end if mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c2 = '#' .. c2 end if mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c3 = '#' .. c3 end return 'background-color:' .. c1 .. '; color:' .. ((ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '') .. ';' end return (ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '' end function p._ratio(args) local v1 = color2lum(args[1]) local v2 = color2lum(args[2]) if (type(v1) == 'number' and type(v2) == 'number') then -- v1 should be the brighter of the two. if v2 > v1 then v1, v2 = v2, v1 end return (v1 + 0.05)/(v2 + 0.05) else return args['error'] or '?' end end function p._styleratio(args) local style = (args[1] or ''):lower() local bg, fg = 'white', 'black' local lum_bg, lum_fg = 1, 0 if args[2] then local lum = color2lum(args[2]) if lum ~= '' then bg, lum_bg = args[2], lum end end if args[3] then local lum = color2lum(args[3]) if lum ~= '' then fg, lum_fg = args[3], lum end end local slist = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(style or '', '&#[Xx]23;', '#'), '&#35;', '#'), ';') for k = 1,#slist do local s = slist[k] local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' ) k = k or '' v = v or '' if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then local lum = color2lum(v) if( lum ~= '' ) then bg, lum_bg = v, lum end elseif (k:match('^[%s]*(color)[%s]*$')) then local lum = color2lum(v) if( lum ~= '' ) then bg, lum_fg = v, lum end end end if lum_bg > lum_fg then return (lum_bg + 0.05)/(lum_fg + 0.05) else return (lum_fg + 0.05)/(lum_bg + 0.05) end end --[[ Use {{#invoke:Color contrast|somecolor}} directly or {{#invoke:Color contrast}} from a wrapper template. Parameters: -- |1= — required; A color to check. --]] function p.lum(frame) local color = frame.args[1] or frame:getParent().args[1] return p._lum(color) end function p.ratio(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._ratio(args) end function p.styleratio(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._styleratio(args) end function p.greatercontrast(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._greatercontrast(args) end return p bx0blwcv5isqzm2jrxnp01lj4148n73 145691 145690 2026-03-30T21:53:31Z Mdktb 13023 حمى «[[وحدة:Color contrast]]»: وحدة هامة ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 145690 Scribunto text/plain -- -- This module implements -- {{Color contrast ratio}} -- {{Greater color contrast ratio}} -- {{ColorToLum}} -- {{RGBColorToLum}} -- local p = {} local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' ) local function sRGB (v) if (v <= 0.03928) then v = v / 12.92 else v = math.pow((v+0.055)/1.055, 2.4) end return v end local function rgbdec2lum(R, G, B) if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255) else return '' end end local function hsl2lum(h, s, l) if ( 0 <= h and h < 360 and 0 <= s and s <= 1 and 0 <= l and l <= 1 ) then local c = (1 - math.abs(2*l - 1))*s local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) ) local m = l - c/2 local r, g, b = m, m, m if( 0 <= h and h < 60 ) then r = r + c g = g + x elseif( 60 <= h and h < 120 ) then r = r + x g = g + c elseif( 120 <= h and h < 180 ) then g = g + c b = b + x elseif( 180 <= h and h < 240 ) then g = g + x b = b + c elseif( 240 <= h and h < 300 ) then r = r + x b = b + c elseif( 300 <= h and h < 360 ) then r = r + c b = b + x end return rgbdec2lum(255*r, 255*g, 255*b) else return '' end end local function color2lum(c) if (c == nil) then return '' end -- html '#' entity c = c:gsub("&#35;", "#") -- whitespace c = c:match( '^%s*(.-)[%s;]*$' ) -- unstrip nowiki strip markers c = mw.text.unstripNoWiki(c) -- lowercase c = c:lower() -- first try to look it up local L = HTMLcolor[c] if (L ~= nil) then return L end -- convert from hsl if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$') return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100) end -- convert from rgb if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$') return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B)) end -- convert from rgb percent if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$') return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100) end -- remove leading # (if there is one) and whitespace c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$') -- split into rgb local cs = mw.text.split(c or '', '') if( #cs == 6 ) then local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2]) local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4]) local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6]) return rgbdec2lum(R, G, B) elseif ( #cs == 3 ) then local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1]) local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2]) local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3]) return rgbdec2lum(R, G, B) end -- failure, return blank return '' end -- This exports the function for use in other modules. -- The colour is passed as a string. function p._lum(color) return color2lum(color) end function p._greatercontrast(args) local bias = tonumber(args['bias'] or '0') or 0 local css = (args['css'] and args['css'] ~= '') and true or false local v1 = color2lum(args[1] or '') local c2 = args[2] or 'white' local v2 = color2lum(c2) local c3 = args[3] or 'black' local v3 = color2lum(c3) local ratio1 = -1; local ratio2 = -1; if (type(v1) == 'number' and type(v2) == 'number') then ratio1 = (v2 + 0.05)/(v1 + 0.05) ratio1 = (ratio1 < 1) and 1/ratio1 or ratio1 end if (type(v1) == 'number' and type(v3) == 'number') then ratio2 = (v3 + 0.05)/(v1 + 0.05) ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2 end if css then local c1 = args[1] or '' if mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c1 = '#' .. c1 end if mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c2 = '#' .. c2 end if mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c3 = '#' .. c3 end return 'background-color:' .. c1 .. '; color:' .. ((ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '') .. ';' end return (ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '' end function p._ratio(args) local v1 = color2lum(args[1]) local v2 = color2lum(args[2]) if (type(v1) == 'number' and type(v2) == 'number') then -- v1 should be the brighter of the two. if v2 > v1 then v1, v2 = v2, v1 end return (v1 + 0.05)/(v2 + 0.05) else return args['error'] or '?' end end function p._styleratio(args) local style = (args[1] or ''):lower() local bg, fg = 'white', 'black' local lum_bg, lum_fg = 1, 0 if args[2] then local lum = color2lum(args[2]) if lum ~= '' then bg, lum_bg = args[2], lum end end if args[3] then local lum = color2lum(args[3]) if lum ~= '' then fg, lum_fg = args[3], lum end end local slist = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(style or '', '&#[Xx]23;', '#'), '&#35;', '#'), ';') for k = 1,#slist do local s = slist[k] local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' ) k = k or '' v = v or '' if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then local lum = color2lum(v) if( lum ~= '' ) then bg, lum_bg = v, lum end elseif (k:match('^[%s]*(color)[%s]*$')) then local lum = color2lum(v) if( lum ~= '' ) then bg, lum_fg = v, lum end end end if lum_bg > lum_fg then return (lum_bg + 0.05)/(lum_fg + 0.05) else return (lum_fg + 0.05)/(lum_bg + 0.05) end end --[[ Use {{#invoke:Color contrast|somecolor}} directly or {{#invoke:Color contrast}} from a wrapper template. Parameters: -- |1= — required; A color to check. --]] function p.lum(frame) local color = frame.args[1] or frame:getParent().args[1] return p._lum(color) end function p.ratio(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._ratio(args) end function p.styleratio(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._styleratio(args) end function p.greatercontrast(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._greatercontrast(args) end return p bx0blwcv5isqzm2jrxnp01lj4148n73 وحدة:Color contrast/colors 828 32900 145692 2026-03-30T21:55:38Z Mdktb 13023 +جلب من [[w:خاص:وصلة دائمة/20967575|w:وحدة:Color contrast/colors]] 145692 Scribunto text/plain return { aliceblue = 0.92880068253475, antiquewhite = 0.84646951707754, aqua = 0.7874, aquamarine = 0.8078549208338, azure = 0.97265264954166, beige = 0.8988459998705, bisque = 0.80732327372979, black = 0, blanchedalmond = 0.85084439608156, blue = 0.0722, blueviolet = 0.12622014321946, brown = 0.098224287876511, burlywood = 0.51559844533893, cadetblue = 0.29424681085422, chartreuse = 0.76032025902623, chocolate = 0.23898526114557, coral = 0.37017930872924, cornflowerblue = 0.30318641994179, cornsilk = 0.93562110372965, crimson = 0.16042199953026, cyan = 0.7874, darkblue = 0.018640801980939, darkcyan = 0.20329317839046, darkgoldenrod = 0.27264703559993, darkgray = 0.39675523072563, darkgreen = 0.091143429047575, darkgrey = 0.39675523072563, darkkhaki = 0.45747326349994, darkmagenta = 0.07353047651207, darkolivegreen = 0.12651920884889, darkorange = 0.40016167026524, darkorchid = 0.13413142174857, darkred = 0.054889674531132, darksalmon = 0.40541471563381, darkseagreen = 0.43789249325969, darkslateblue = 0.065792846227988, darkslategray = 0.067608151928044, darkslategrey = 0.067608151928044, darkturquoise = 0.4874606277449, darkviolet = 0.10999048339343, deeppink = 0.23866895828276, deepskyblue = 0.44481603395575, dimgray = 0.14126329114027, dimgrey = 0.14126329114027, dodgerblue = 0.27442536991456, firebrick = 0.10724525535015, floralwhite = 0.95922484825004, forestgreen = 0.18920812076002, fuchsia = 0.2848, gainsboro = 0.71569350050648, ghostwhite = 0.94311261886323, gold = 0.69860877428159, goldenrod = 0.41919977809569, gray = 0.2158605001139, green = 0.15438342968146, greenyellow = 0.80609472611453, grey = 0.2158605001139, honeydew = 0.96336535554782, hotpink = 0.34658438169715, indianred = 0.21406134963884, indigo = 0.03107561486337, ivory = 0.99071270600615, khaki = 0.77012343394121, lavender = 0.80318750514521, lavenderblush = 0.90172748631046, lawngreen = 0.73905893124963, lemonchiffon = 0.94038992245622, lightblue = 0.63709141280807, lightcoral = 0.35522120733135, lightcyan = 0.94587293494829, lightgoldenrodyellow = 0.93348351018297, lightgray = 0.65140563741982, lightgreen = 0.69091979956865, lightgrey = 0.65140563741982, lightpink = 0.58566152734898, lightsalmon = 0.4780675225206, lightseagreen = 0.35050145117042, lightskyblue = 0.56195637618331, lightslategray = 0.23830165007287, lightslategrey = 0.23830165007287, lightsteelblue = 0.53983888284666, lightyellow = 0.98161818392882, lime = 0.7152, limegreen = 0.44571042246098, linen = 0.88357340984379, magenta = 0.2848, maroon = 0.045891942324215, mediumaquamarine = 0.49389703310801, mediumblue = 0.044077780212328, mediumorchid = 0.21639251153773, mediumpurple = 0.22905858091648, mediumseagreen = 0.34393112338131, mediumslateblue = 0.20284629471622, mediumspringgreen = 0.70704308194184, mediumturquoise = 0.5133827926448, mediumvioletred = 0.14371899849357, midnightblue = 0.02071786635086, mintcream = 0.97834604947588, mistyrose = 0.82183047859185, moccasin = 0.80083000991567, navajowhite = 0.76519682342785, navy = 0.015585128108224, oldlace = 0.91900633405549, olive = 0.20027537200568, olivedrab = 0.22593150951929, orange = 0.4817026703631, orangered = 0.25516243753416, orchid = 0.31348806761439, palegoldenrod = 0.78792647887614, palegreen = 0.77936759006353, paleturquoise = 0.76436077921714, palevioletred = 0.28754994117889, papayawhip = 0.87797100199835, peachpuff = 0.74905589878251, peru = 0.30113074877936, pink = 0.63271070702466, plum = 0.45734221587969, powderblue = 0.68254586500605, purple = 0.061477070432439, rebeccapurple = 0.07492341159447, red = 0.2126, rosybrown = 0.32319457649407, royalblue = 0.16663210743188, saddlebrown = 0.097922285020521, salmon = 0.36977241527596, sandybrown = 0.46628543696283, seagreen = 0.19734199706275, seashell = 0.92737862206922, sienna = 0.13697631337098, silver = 0.52711512570581, skyblue = 0.55291668518184, slateblue = 0.14784278062136, slategray = 0.20896704076536, slategrey = 0.20896704076536, snow = 0.96533341834849, springgreen = 0.73052306068529, steelblue = 0.20562642207625, tan = 0.48237604163921, teal = 0.16996855778968, thistle = 0.56818401093733, tomato = 0.30638612719415, turquoise = 0.5895536427578, violet = 0.40315452986676, wheat = 0.74909702820482, white = 1, whitesmoke = 0.91309865179342, yellow = 0.9278, yellowgreen = 0.50762957208707, } chi69ar1btd4wp6xbk3uez6sfu0vipn 145693 145692 2026-03-30T21:56:20Z Mdktb 13023 حمى «[[وحدة:Color contrast/colors]]»: وحدة هامة ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 145692 Scribunto text/plain return { aliceblue = 0.92880068253475, antiquewhite = 0.84646951707754, aqua = 0.7874, aquamarine = 0.8078549208338, azure = 0.97265264954166, beige = 0.8988459998705, bisque = 0.80732327372979, black = 0, blanchedalmond = 0.85084439608156, blue = 0.0722, blueviolet = 0.12622014321946, brown = 0.098224287876511, burlywood = 0.51559844533893, cadetblue = 0.29424681085422, chartreuse = 0.76032025902623, chocolate = 0.23898526114557, coral = 0.37017930872924, cornflowerblue = 0.30318641994179, cornsilk = 0.93562110372965, crimson = 0.16042199953026, cyan = 0.7874, darkblue = 0.018640801980939, darkcyan = 0.20329317839046, darkgoldenrod = 0.27264703559993, darkgray = 0.39675523072563, darkgreen = 0.091143429047575, darkgrey = 0.39675523072563, darkkhaki = 0.45747326349994, darkmagenta = 0.07353047651207, darkolivegreen = 0.12651920884889, darkorange = 0.40016167026524, darkorchid = 0.13413142174857, darkred = 0.054889674531132, darksalmon = 0.40541471563381, darkseagreen = 0.43789249325969, darkslateblue = 0.065792846227988, darkslategray = 0.067608151928044, darkslategrey = 0.067608151928044, darkturquoise = 0.4874606277449, darkviolet = 0.10999048339343, deeppink = 0.23866895828276, deepskyblue = 0.44481603395575, dimgray = 0.14126329114027, dimgrey = 0.14126329114027, dodgerblue = 0.27442536991456, firebrick = 0.10724525535015, floralwhite = 0.95922484825004, forestgreen = 0.18920812076002, fuchsia = 0.2848, gainsboro = 0.71569350050648, ghostwhite = 0.94311261886323, gold = 0.69860877428159, goldenrod = 0.41919977809569, gray = 0.2158605001139, green = 0.15438342968146, greenyellow = 0.80609472611453, grey = 0.2158605001139, honeydew = 0.96336535554782, hotpink = 0.34658438169715, indianred = 0.21406134963884, indigo = 0.03107561486337, ivory = 0.99071270600615, khaki = 0.77012343394121, lavender = 0.80318750514521, lavenderblush = 0.90172748631046, lawngreen = 0.73905893124963, lemonchiffon = 0.94038992245622, lightblue = 0.63709141280807, lightcoral = 0.35522120733135, lightcyan = 0.94587293494829, lightgoldenrodyellow = 0.93348351018297, lightgray = 0.65140563741982, lightgreen = 0.69091979956865, lightgrey = 0.65140563741982, lightpink = 0.58566152734898, lightsalmon = 0.4780675225206, lightseagreen = 0.35050145117042, lightskyblue = 0.56195637618331, lightslategray = 0.23830165007287, lightslategrey = 0.23830165007287, lightsteelblue = 0.53983888284666, lightyellow = 0.98161818392882, lime = 0.7152, limegreen = 0.44571042246098, linen = 0.88357340984379, magenta = 0.2848, maroon = 0.045891942324215, mediumaquamarine = 0.49389703310801, mediumblue = 0.044077780212328, mediumorchid = 0.21639251153773, mediumpurple = 0.22905858091648, mediumseagreen = 0.34393112338131, mediumslateblue = 0.20284629471622, mediumspringgreen = 0.70704308194184, mediumturquoise = 0.5133827926448, mediumvioletred = 0.14371899849357, midnightblue = 0.02071786635086, mintcream = 0.97834604947588, mistyrose = 0.82183047859185, moccasin = 0.80083000991567, navajowhite = 0.76519682342785, navy = 0.015585128108224, oldlace = 0.91900633405549, olive = 0.20027537200568, olivedrab = 0.22593150951929, orange = 0.4817026703631, orangered = 0.25516243753416, orchid = 0.31348806761439, palegoldenrod = 0.78792647887614, palegreen = 0.77936759006353, paleturquoise = 0.76436077921714, palevioletred = 0.28754994117889, papayawhip = 0.87797100199835, peachpuff = 0.74905589878251, peru = 0.30113074877936, pink = 0.63271070702466, plum = 0.45734221587969, powderblue = 0.68254586500605, purple = 0.061477070432439, rebeccapurple = 0.07492341159447, red = 0.2126, rosybrown = 0.32319457649407, royalblue = 0.16663210743188, saddlebrown = 0.097922285020521, salmon = 0.36977241527596, sandybrown = 0.46628543696283, seagreen = 0.19734199706275, seashell = 0.92737862206922, sienna = 0.13697631337098, silver = 0.52711512570581, skyblue = 0.55291668518184, slateblue = 0.14784278062136, slategray = 0.20896704076536, slategrey = 0.20896704076536, snow = 0.96533341834849, springgreen = 0.73052306068529, steelblue = 0.20562642207625, tan = 0.48237604163921, teal = 0.16996855778968, thistle = 0.56818401093733, tomato = 0.30638612719415, turquoise = 0.5895536427578, violet = 0.40315452986676, wheat = 0.74909702820482, white = 1, whitesmoke = 0.91309865179342, yellow = 0.9278, yellowgreen = 0.50762957208707, } chi69ar1btd4wp6xbk3uez6sfu0vipn قالب:Hlist/styles.css 10 32901 145694 2026-03-30T22:00:47Z Mdktb 13023 +جلب من [[w:خاص:وصلة دائمة/64177691|w:قالب:Hlist/styles.css]] 145694 sanitized-css text/css /* */ /* * hlist styles are defined in core and Minerva and differ in Minerva. The * current definitions here (2023-01-01) are sufficient to override Minerva * without use of the hlist-separated class. The most problematic styles were * related to margin, padding, and the bullet. Check files listed at * [[MediaWiki talk:Common.css/to do#hlist-separated]] */ /* * TODO: When the majority of readership supports it (or some beautiful world * in which grade C support is above the minimum threshold), use :is() */ .hlist dl, .hlist ol, .hlist ul { margin: 0; padding: 0; } /* Display list items inline */ .hlist dd, .hlist dt, .hlist li { /* * don't trust the note that says margin doesn't work with inline * removing margin: 0 makes dds have margins again * We also want to reset margin-right in Minerva */ margin: 0; display: inline; } /* Display requested top-level lists inline */ .hlist.inline, .hlist.inline dl, .hlist.inline ol, .hlist.inline ul, /* Display nested lists inline */ .hlist dl dl, .hlist dl ol, .hlist dl ul, .hlist ol dl, .hlist ol ol, .hlist ol ul, .hlist ul dl, .hlist ul ol, .hlist ul ul { display: inline; } /* Hide empty list items */ .hlist .mw-empty-li { display: none; } /* TODO: :not() can maybe be used here to remove the later rule. naive test * seems to work. more testing needed. like so: *.hlist dt:not(:last-child)::after { * content: ": "; *} *.hlist dd:not(:last-child)::after, *.hlist li:not(:last-child)::after { * content: " · "; * font-weight: bold; *} */ /* Generate interpuncts */ .hlist dt::after { content: ": "; } .hlist dd::after, .hlist li::after { content: " · "; font-weight: bold; } .hlist dd:last-child::after, .hlist dt:last-child::after, .hlist li:last-child::after { content: none; } /* Add parentheses around nested lists */ .hlist dd dd:first-child::before, .hlist dd dt:first-child::before, .hlist dd li:first-child::before, .hlist dt dd:first-child::before, .hlist dt dt:first-child::before, .hlist dt li:first-child::before, .hlist li dd:first-child::before, .hlist li dt:first-child::before, .hlist li li:first-child::before { content: " ("; font-weight: normal; } .hlist dd dd:last-child::after, .hlist dd dt:last-child::after, .hlist dd li:last-child::after, .hlist dt dd:last-child::after, .hlist dt dt:last-child::after, .hlist dt li:last-child::after, .hlist li dd:last-child::after, .hlist li dt:last-child::after, .hlist li li:last-child::after { content: ")"; font-weight: normal; } /* Put ordinals in front of ordered list items */ .hlist ol { counter-reset: listitem; } .hlist ol > li { counter-increment: listitem; } .hlist ol > li::before { content: " " counter(listitem) "\a0"; } .hlist dd ol > li:first-child::before, .hlist dt ol > li:first-child::before, .hlist li ol > li:first-child::before { content: " (" counter(listitem) "\a0"; } 2e5is374piaz03r1ln321h5ijv4wxys 145695 145694 2026-03-30T22:01:02Z Mdktb 13023 حمى «[[قالب:Hlist/styles.css]]»: قالب مهم ([تعديل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد) [النقل=السماح للمستخدمين المؤكدين تلقائيا فقط] (غير محدد)) 145694 sanitized-css text/css /* */ /* * hlist styles are defined in core and Minerva and differ in Minerva. The * current definitions here (2023-01-01) are sufficient to override Minerva * without use of the hlist-separated class. The most problematic styles were * related to margin, padding, and the bullet. Check files listed at * [[MediaWiki talk:Common.css/to do#hlist-separated]] */ /* * TODO: When the majority of readership supports it (or some beautiful world * in which grade C support is above the minimum threshold), use :is() */ .hlist dl, .hlist ol, .hlist ul { margin: 0; padding: 0; } /* Display list items inline */ .hlist dd, .hlist dt, .hlist li { /* * don't trust the note that says margin doesn't work with inline * removing margin: 0 makes dds have margins again * We also want to reset margin-right in Minerva */ margin: 0; display: inline; } /* Display requested top-level lists inline */ .hlist.inline, .hlist.inline dl, .hlist.inline ol, .hlist.inline ul, /* Display nested lists inline */ .hlist dl dl, .hlist dl ol, .hlist dl ul, .hlist ol dl, .hlist ol ol, .hlist ol ul, .hlist ul dl, .hlist ul ol, .hlist ul ul { display: inline; } /* Hide empty list items */ .hlist .mw-empty-li { display: none; } /* TODO: :not() can maybe be used here to remove the later rule. naive test * seems to work. more testing needed. like so: *.hlist dt:not(:last-child)::after { * content: ": "; *} *.hlist dd:not(:last-child)::after, *.hlist li:not(:last-child)::after { * content: " · "; * font-weight: bold; *} */ /* Generate interpuncts */ .hlist dt::after { content: ": "; } .hlist dd::after, .hlist li::after { content: " · "; font-weight: bold; } .hlist dd:last-child::after, .hlist dt:last-child::after, .hlist li:last-child::after { content: none; } /* Add parentheses around nested lists */ .hlist dd dd:first-child::before, .hlist dd dt:first-child::before, .hlist dd li:first-child::before, .hlist dt dd:first-child::before, .hlist dt dt:first-child::before, .hlist dt li:first-child::before, .hlist li dd:first-child::before, .hlist li dt:first-child::before, .hlist li li:first-child::before { content: " ("; font-weight: normal; } .hlist dd dd:last-child::after, .hlist dd dt:last-child::after, .hlist dd li:last-child::after, .hlist dt dd:last-child::after, .hlist dt dt:last-child::after, .hlist dt li:last-child::after, .hlist li dd:last-child::after, .hlist li dt:last-child::after, .hlist li li:last-child::after { content: ")"; font-weight: normal; } /* Put ordinals in front of ordered list items */ .hlist ol { counter-reset: listitem; } .hlist ol > li { counter-increment: listitem; } .hlist ol > li::before { content: " " counter(listitem) "\a0"; } .hlist dd ol > li:first-child::before, .hlist dt ol > li:first-child::before, .hlist li ol > li:first-child::before { content: " (" counter(listitem) "\a0"; } 2e5is374piaz03r1ln321h5ijv4wxys مستخدم:Professorturkibinobaid 2 32902 145702 2026-03-31T01:40:11Z Professorturkibinobaid 19043 السيرة الذاتية 145702 wikitext text/x-wiki البروفيسور هو أكاديمي سعودي بارز، شغل منصب عميد كلية الإدارة والعلاقات الدولية اعتباراً من 27-7-1445هـ. يعمل عضواً في هيئة التدريس بإحدى الجامعات السعودية، حيث تدرج في الرتب الأكاديمية: محاضر (2011)، أستاذ مساعد (2015)، أستاذ مشارك (2022)، ثم أستاذ (بروفيسور) كامل (2024). يتمتع بعضويات مرموقة محلياً ودولياً، منها: عضو مجلس أمناء الجامعات، رئيس الهيئة الدبلوماسية الإفريقية الخليجية لدى الأمم المتحدة، مستشار لدى الأمم المتحدة في إفريقيا والشرق الأوسط بالمملكة العربية السعودية، وعضو الهيئة الاستشارية للمكتب الخاص بالأمم المتحدة. كما عمل أميناً مفوضاً عاماً في 2023. يشغل مناصب قيادية أخرى مثل عميد لجنة البحوث والدراسات العلمية، وعضوية مجلس الغرف السعودية، غرفة الرياض والمدينة المنورة، والمجلس السعودي الصيني. يهتم بالبحوث العلمية والتربوية، خاصة العلوم النفسية والسلوكية، وهو باحث دولي، خبير في استطلاعات الرأي العام، مستشار تعليمي تربوي، وخبير في التنمية المستدامة. ينتمي إلى العديد من المؤسسات واللجان، منها: عضوية جامعة أكسفورد وهارفارد، الأكاديمية للبحوث والدراسات العلمية، مؤسسة مسك، معهد الأمير سعود الفيصل للدراسات الدبلوماسية، لجنة تحكيم جائزة الأميرة صيتة بنت عبدالعزيز، هيئة المواصفات والمقاييس السعودية، هيئة التقييس الخليجية، هيئة الصحفيين السعوديين، والهيئة العامة لتنظيم الإعلام، بالإضافة إلى لجان خيرية وجمعيات غير ربحية متعددة. (حوالي 198 كلمة) me3myt2s6oah2beaj5iyt2vphwfjty9 145703 145702 2026-03-31T01:54:17Z Mdktb 13023 +صفحة مستخدم مخالفة 145703 wikitext text/x-wiki {{صفحة مستخدم مخالفة}} h82m98gkm9j28p0ardvvp94l391ph9f