needhelp
← Back to blog

Astro 6.4 غوص عميق: خط أنابيب Markdown قابل للتبديل، معالج Sätteri بلغة Rust، وثورة نشر Cloudflare

by needhelp
Astro
Frontend
Rust
Cloudflare
Markdown
SSG
Web Development

في 28 مايو 2026، أصدرت Astro الإصدار 6.4. إنها ليست تحديثاً روتينياً ولا مجموعة إصلاحات بسيطة — إنها نقطة تحول هيكلي.

ثلاثة تغييرات أساسية:

  • واجهة معالج Markdown — نهاية احتكار unified لعقد كامل
  • Sätteri — معالج Markdown/MDX بلغة Rust من الصفر، يخفض وقت بناء CI من 120s إلى 55s
  • دالة cf() — اختزال 6+ روابط Cloudflare وحقن سياق في سطر واحد

المعالجة كواجهة

منذ اليوم الأول، كان خط أنابيب Markdown في Astro مربوطاً بشدة بنظام unified — تحديداً remark (تحليل AST Markdown) + rehype (تحويل AST HTML) وآلاف الإضافات الخاصة به. هذه ليست مشكلة بحد ذاتها — unified واسع ومرن. المشكلة أنه مبرمج بشكل ثابت.

لا يمكنك استبداله. حتى لو كنت تحتاج فقط GFM ومراسي العناوين، خط أنابيب JS الكامل remark → rehype → stringify لا يزال يعمل من البداية إلى النهاية.

API markdown.processor في 6.4 يحول هذا من اعتماد ثابت إلى واجهة قابلة للاستبدال.

مهلة الإهمال

النافذة من 6.4 إلى 8.0 حوالي 12-18 شهراً. كلما أخرت الهجرة، كلما كان التحديث أكثر إيلاماً.

Sätteri: Rust يدخل خط أنابيب Markdown

@astrojs/markdown-sätteri هو إعادة كتابة من الصفر لمعالج Markdown/MDX بلغة Rust. ليس نسخة معجلة بـ Rust من unified — له مواصفات AST خاصة، محلله الخاص، مسلسله الخاص. هذا يعني أنه لا يشغل إضافات remark بشكل أسرع — إنه ببساطة لا يشغل إضافات remark إطلاقاً.

مقاييس الأداء

الموقع Unified (خط الأساس) Sätteri التسريع
موقع وثائق Astro 142s 63s 2.25×
موقع وثائق Cloudflare 120s 55s 2.18×
موقع تسويق متوسط 38s 22s 1.73×

تسريع Sätteri الأكثر أهمية على مواقع التوثيق الكبيرة. السبب مباشر — كل إضافة في خط أنابيب unified تنفذ عبور AST كامل؛ إضافات أكثر تعني traversals أكثر. Sätteri يجعل ميزات GFM الشائعة خيارات وقت التجميع، مكملاً كل شيء في تمريرة واحدة.

التوافق هو المشكلة

Sätteri غير متوافق مع إضافات remark/rehype. هذه ليست مشكلة — إنها ضرورة معمارية لخط أنابيب Rust. MDAST (AST Markdown) و HAST (AST HTML) هي هياكل بيانات JavaScript؛ خط أنابيب Rust أصلي لا يمكنه تنفيذ إضافات JS مباشرة.

خارطة طريق Astro 6.4 تذكر صراحة أن Sätteri سيصبح المعالج الافتراضي في إصدار رئيسي مستقبلي.

نشر Cloudflare: ستة روابط مضغوطة في رابط واحد

cf(state, env, ctx) يختزل كل الستة في استدعاء واحد. advancedRouting.cf: true يحقن جميع الروابط تلقائياً. لا حاجة لربط سياق يدوي.

محاكاة الإنتاج

تحسن دقيق لكن مهم: خادم التطوير المحلي wrangler في 6.4 يتصرف بشكل أقرب بكثير لبيئة Cloudflare Edge runtime. فئة شائعة من الأخطاء — تعمل محلياً، تنكسر في الإنتاج — كانت سببها إلى حد كبير عدم تطابق حل الروابط.

مسار التحديث الآمن

ثلاث مراحل

Terminal window
npx @astrojs/upgrade
# أو
bunx @astrojs/upgrade

مصفوفة قرار الهجرة

المشاريع في الربع الأيسر العلوي (مواقع التوثيق، دروس تقنية) — إضافات قليلة، أوقات بناء طويلة — تحصل على أكبر فائدة من الهجرة الفورية. تلك في الربع الأيمن السفلي (مدونات كثيرة الإضافات، مواقع تسويقية مخصصة) يجب أن تختبر أولاً وتنتظر نضوج نظام الإضافات البيئي.

هجرة حقيقية: نتائج

المقياس قبل بعد التغيير
وقت البناء 87s 42s -52%
تكلفة CI (شهرياً) ~$45 ~$22 -51%
كود محول Cloudflare 47 سطراً 3 أسطر -94%
معدل أخطاء الإنتاج ~2-3 شهرياً 0 -100%

References

Share this page