عن المشروع
escaping هو مولد مواقع شخصية ذو رؤية محددة (opinionated)، تكمن فلسفته الأساسية في اعتبار GitHub Issues مدخلات لتجميع حتمي بدلاً من كونها بيانات يتم عرضها فورياً. يقوم بتحويل Issues إلى موقع ثابت كامل من خلال خط إنتاج متعدد المراحل يشمل تحليل المحتوى، وتخصيص التوجيه (routing)، وتطهير HTML، والتحقق من المخرجات.
تشمل القدرات الرئيسية ما يلي:
1. إدارة المحتوى: يدعم استخراج محتوى المدونات (Blog)، والأفكار (Ideas)، وصفحات التعريف (About) من GitHub Issues التي تحتوي على وسوم و front matter.
2. نموذج الموقع: توليد موحد للصفحة الرئيسية، وصفحات الأرشيف، وصفحات التفاصيل، وصفحات المشاريع، وصفحات الوسوم، بالإضافة إلى مخرجات SEO مثل Atom feed و sitemap و robots.txt.
3. نظام القوالب: يتضمن قوالب مدمجة متعددة (مثل geoqiao.me و Escape1 و Escape2 و Quiet)، ويدعم تحميل قوالب مخصصة محلياً.
4. آليات الأمان: تتضمن قائمة بيضاء لـ Markdown HTML، وتحققاً صارماً من روابط URL، وقيوداً على دليل المخرجات، والهروب التلقائي (auto-escaping) في Jinja.
5. عملية النشر: يعتمد آلية نشر مرحلية، حيث يتم التحقق من المخرجات الجديدة في بيئة staging، ثم استبدال المخرجات الرسمية عن طريق إعادة تسمية الدليل، مما يدعم إمكانية التراجع (rollback).
تتطلب هذه الأداة بيئة Python 3.11+، ويُنصح باستخدام uv لإدارة الاعتمادات. كما تفصل منطق المولد عن إعدادات الموقع، مما يسمح للمستخدمين بصيانة إعدادات الموقع والمحتوى في مستودع مستقل.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.