عن المشروع
هذا هو مستودع الكود المصدري للموقع الرسمي لمجتمع Open Source Design (opensourcedesign.net). يُبنى الموقع باستخدام مولّد المواقع الثابتة Hugo وTailwind CSS، ويُنشر على GitHub Pages، وتُنجز عمليات البناء والمعاينة والمهام الآلية المتنوعة عبر GitHub Actions.
تنظيم المحتوى
يُخزَّن محتوى الموقع بصيغة Markdown في دليل content/، وينقسم أساسًا إلى: About Us (نبذة، بيان، أهداف، حوكمة، ميثاق، مدونة سلوك، لوحة مراجعة)، وEvents (إعلانات الفعاليات ومراجعاتها)، وJobs (قوائم الوظائف)، وResources (مركز الموارد، ويشمل دليل روابط مختارة وقائمة مراجع ومقالات المجتمع)، إضافة إلى صفحات مستقلة مثل imprint وbrand والصفحة الرئيسية. يُدار المحتوى الديناميكي عبر ملفات YAML في data/، فعلى سبيل المثال يدير data/resources.yaml الأدوات والروابط المختارة، ويدير data/bibliography.yaml مدخلات المراجع.
طرق المساهمة
يوفر README ثلاث طرق للتحرير: تعديل الملفات مباشرة عبر محرر واجهة GitHub على الويب، أو استخدام بيئة تطوير GitHub Codespaces السحابية (المهيأة مسبقًا بـ Hugo والمعاينة الفورية)، أو إعداد بيئة محلية. يتطلب التطوير المحلي فقط تثبيت إصدار Hugo الموسّع وGit، ولا يعتمد الاستخدام اليومي على Node.js أو npm؛ إذ يُعدّ Tailwind CLI المستقل وPagefind ملفين تنفيذيين اختياريين. يُنصح في مسار المساهمة بفتح issue للنقاش أولًا ثم تقديم pull request، وتحتاج طلبات المحتوى إلى مراجعة عضوين من المجتمع. يشترط المشروع صراحةً عدم تقديم أكواد أو issues أو وثائق أو مراجعات أكواد مولّدة بالذكاء الاصطناعي.
التنسيق والبناء
يأتي مظهر الصفحات من فئات أدوات Tailwind في قوالب layouts/ والقواعد المخصصة في assets/css/main.css، ويُصرَّف الاثنان إلى assets/css/compiled.css (غير مُدرَج في التحكم بالإصدارات، ويُولّده CI). عند تشغيل hugo server محليًا، إذا غاب هذا الملف، يتراجع الموقع إلى Tailwind Play CDN لتوليد التنسيقات فوريًا في المتصفح؛ ويمكن أيضًا التصريف المسبق عبر Tailwind CLI لمطابقة بيئة الإنتاج. تُحمَّل تنسيقات الوضع الداكن بشكل منفصل، ويستخدم تنسيق المقالات ملف typography.css المُصرَّف مسبقًا.
وظائف الوظائف والفعاليات
يمكن تقديم الوظائف والفعاليات عبر نماذج إلكترونية، يعالجها Cloudflare Worker ويولّد pull request خاضعًا للمراجعة. تدعم الوظائف حقول الرواتب المهيكلة، وأيقونات خدمات التعرف التلقائي على روابط التقديم، وكشف الوظائف المكررة، ورسائل تذكير بعد نحو ستة أسابيع، وآلية انتهاء الصلاحية بناءً على deadline (Action يومي يقدّم طلبات انتهاء تلقائيًا)، وخلاصات RSS مميزة بين المدفوع والتطوعي، وبطاقات مشاركة اجتماعية مولّدة تلقائيًا. تدعم الفعاليات وسم المؤلف للتمييز بين الإعلانات والمراجعات، والأرشفة التلقائية عبر endDate، وحالة الإلغاء.
الأتمتة وضمان الجودة
يتجاوز CI عمليات بناء Hugo غير ذات الصلة عبر قائمة مسارات مسموحة في path-filters.yml. يفحص lint المحتوى الملفات المتغيرة فقط، ويتحقق من الحقول الإلزامية في front matter، وتعدادات الحالة، وتواريخ ISO، ويعترض مزالق Markdown الشائعة. تُعدّ فحوصات المستودع وفحوصات إمكانية الوصول وlint المحتوى فحوصات حالة إلزامية لفرع main. بعد دمج وظيفة جديدة، ينشرها سكربت تلقائيًا إلى Mastodon وBluesky (مفاتيح التهيئة اختيارية لكل منصة، مع دعم التشغيل اليدوي وdry-run). توجد أيضًا سير عمل لتذكير أسبوعي بالوظائف، وتخزين مؤقت للمنتدى كل 12 ساعة، وفحص الروابط مرتين شهريًا.
البحث والصور
البحث داخل الموقع نافذة منبثقة على مستوى الموقع كله، تدعم اختصارات Ctrl/⌘+K أو /، ويوفره Pagefind، ويُولَّد الفهرس بعد البناء ويُحمَّل بتأخير. تُعالَج صور Markdown عبر خط موارد Hugo، فتُقاس الصور النقطية المحلية تلقائيًا وتُخرَج بصيغتي AVIF وWebP، مع تراجع إلى الصيغة الأصلية وأبعاد أصلية لتجنب انزياح التخطيط؛ وتبقى ملفات SVG وGIF والروابط الخارجية دون تغيير.
الترخيص
الكود بموجب AGPLv3، والمحتوى بموجب Creative Commons Attribution-ShareAlike 4.0، ويجب عند الاستخدام أو التعديل الإشارة إلى Open Source Design وتطبيق الترخيص نفسه على الأعمال المشتقة.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.