عن المشروع

يعتبر dotfiles-web مركز العرض والتوثيق العام لنظام dotgibson dotfiles، والذي يوصف في ملف README بأنه بيئة طرفية مكونة من 11 مستودعاً وثلاث طبقات (Core ← OS-native ← Role). يقوم الموقع بتوثيق هذا النظام بدلاً من تهيئة جهاز، لذا فهو ليس جزءاً من الطبقات الثلاث. تم بناء الموقع باستخدام Astro، وبسمة Tokyo Night، ونُشر على GitHub Pages. الهيكل يسرد ملف README خمسة مسارات رئيسية: صفحة هبوط تحتوي على الواجهة الرئيسية، ونموذج الطبقات الثلاث، وخريطة المستودعات وتعليمات التثبيت؛ وصفحة "البدء“ التي تقدم إرشادات التثبيت لكل منصة؛ وصفحة البنية التي تغطي نموذج الطبقات، والمنطق وراء subtree، والـ loader وتفاصيل معمقة؛ ومركز توثيق يحتوي على المفاهيم، والأدلة، والمراجع، وصفحة مولدة لكل مستودع؛ وسجل تغييرات يعكس ملف CHANGELOG.md لكل مستودع. المحتوى القائم على البيانات يصف الموقع نفسه بأنه قائم على البيانات ومشتق إلى حد كبير من المصدر: فبطاقات العرض، وصفحات توثيق كل مستودع، وشريط "بالأرقام"، وسجل التغييرات تأتي من ملفات تحت src/data بالإضافة إلى المستودعات الشقيقة، لضمان عدم انحراف التوثيق عن الكود الذي يصفه. تشمل المدخلات القابلة للتعديل src/data/site.ts (اسم الموقع، المالك، التنقل، روابط GitHub)، وsrc/data/repos.ts (خريطة المستودعات والنصوص الخاصة بكل مستودع وحالته)، وsrc/data/install.ts (خطوات التثبيت لكل منصة)، وصفحات Markdown تحت src/content/docs. هناك أربعة جامع بيانات تحت scripts/ تشتق البيانات المولدة من المستودعات الشقيقة: collect-metrics.mjs ينتج generated.json من مستودعات dotfiles الإحدى عشرة؛ وcollect-snippets.mjs ينتج snippets.json من ثمانية ملفات مختارة عبر ستة مستودعات؛ وcollect-corpus.mjs ينتج corpus.json من htpx؛ وcollect-coverage.mjs ينتج coverage.json من dotfiles-Defense. الصرامة وحراس المصدر يوصف الأمر npm run data بأنه مسار النشر وهو صارم: فأي مستودع مفقود، أو مستودع شقيق متوقف على فرع ميزة (feature branch) أو يحتوي على تعديلات غير مثبتة في ملف يقرأه جامع البيانات، يؤدي إلى فشل التشغيل. يوضح ملف README أن هذا الفحص موجود لأن dotfiles-core الذي تم سحبه على فرع ميزة نشر ذات مرة إدخالاً في سجل التغييرات غير موجود في الفرع الرئيسي لـ Core. تظل الجامعات الفردية وnpm run data:lenient مرنة لعمليات التشغيل الاستكشافية؛ ويميز ملف README بين الحالة غير الضارة (غياب مستودع المصدر — الملف المثبت لم يمس، الخروج 0) والحالة التي تكتب بيانات ملوثة (الأسطول موجود ولكن غير نظيف، مختوم بـ generatedFrom.clean: false). يقرأ حارسان حكم المصدر هذا: خطاف pre-commit يتم تثبيته بواسطة npm install أو npm run hooks:install (جهاز واحد، يغطي generated.json وsnippets.json) ومهمة CI تسمى committed-data-provenance في data-freshness.yml (لكل طلب سحب PR). يتخطى الخطاف العملية بصوت عالٍ عندما يتم تعيين core.hooksPath ويمكن تجاوزه باستخدام DOTFILES_ALLOW_DIRTY_DATA=1 أو --no-verify؛ بينما لا يمكن لمهمة CI ذلك. الأتمتة يقوم fleet-sync.yml بتشغيل جميع الجامعات الأربعة أسبوعياً ويفتح طلب سحب (PR) عند انحراف المخرجات. وتفشل CI في data-freshness.yml عندما لا يتطابق أي من الملفات الأربعة المثبتة مع مصدره، وبالإضافة إلى ذلك عندما يكون إصدار Core في generated.json متأخراً عن أحدث إصدار لـ dotfiles-core. يؤدي الدفع إلى main إلى تشغيل deploy.yml (بناء Astro ← GitHub Pages)، ويمكن لمستودعات المصدر طلب إعادة بناء عبر repository_dispatch، والمصادقة من خلال رمز GitHub App قصير المدى كما هو موضح في docs/WEBHOOK-SETUP.md. التطوير المتطلبات الأساسية هي Node.js مع npm؛ المشروع هو مشروع Astro قياسي. تشمل الأوامر npm run dev (خادم تطوير محلي)، وnpm run build (بناء الإنتاج في dist/)، وnpm run preview وnpm run check (فحوصات Astro للأنواع ومجموعات المحتوى). تطلب إرشادات المساهمة من المساهمين التعامل مع مستودعات "مصدر الحقيقة" كمرجع أساسي، والاحتفاظ بالمحتوى في ملفات البيانات بدلاً من كتابته يدوياً في الصفحات، واجتياز npm run check وnpm run build قبل الدفع. تم ذكر ترخيص MIT.