ويكي الجامعة
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;"> </span>}}|<!--
-->{{#ifeq:{{{state|}}}|plain||<span style="float:left;width:6em;"> </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;"> </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"] = " [[تصنيف:صفحات بها وصلات للإزالة]]"
Category["review"] = " [[تصنيف:وصلات إنترويكي بحاجة لمراجعة|%s]]"
Category["nositelinks"] = " [[تصنيف:صفحات بها قالب: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 = '"'.. id ..'" في لغات أخرى'
--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 = ' [[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(" " .. suff) --suff
suffe = " " .. 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("#", "#")
-- 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;', '#'), '#', '#'), ';')
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("#", "#")
-- 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;', '#'), '#', '#'), ';')
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