ما تغيّر منذ 2024
كتبت معظم هذا الموقع في نهاية عام 2023. أما الأدوات فتطوّرت. أما الأفكار فلم تتغيّر.
إليك ما تغيّر، وما الذي يعنيه ذلك لك.
htmx
صدر htmx 2 في يونيو 2024. فقد أسقط دعم Internet Explorer، ونقل إضافاته إلى خارج الملف الأساسي، وغيّر بعض الإعدادات الافتراضية. ولا شيء يمسّ بالنموذج الذهني.
صدر htmx 4 عام 2026. وهذه خطوة أكبر. وأبرز التغييرات:
- وراثة السمات (attributes) صارت الآن صريحة. إن أردت أن يرث عنصرٌ ابنَه السمة
hx-targetمن عنصرٍ أب، فتكتبhx-target:inheritedعلى العنصر الأب - الردود ذات الحالة
4xxأو5xxتُستبدَل افتراضيًا، فتصبح بمقدورك تصيير رسائل الخطأ القادمة من الخادم - التنقّل في سجلّ المتصفّح (history) يطلب الصفحة من الخادم من جديد بدل استعمال لقطة محلية (snapshot)
- وسم جديد `` يتيح لردٍّ واحد أن يحدّث أجزاءً كثيرة من الصفحة، دون الاعتماد على مطابقة
id
الفكرة الأساسية مطابقة تمامًا: أي عنصر يمكنه أن يُصدر طلبًا، وأي حدث يمكنه أن يُطلقه، ويعيد الخادم HTML في المقابل.
لم تُوسَم htmx 4 بعدُ بـ latest على npm، لذا فإن npm install htmx.org ما زال يعطيك الإصدار 2.x. ويخطّط الفريق لعكس ذلك في عام 2027. والأمثلة في هذا الموقع تستعمل الإصدار 4.
إن كان لديك تطبيق بالإصدار 2.x، فهناك أداة فحص للترقية:
نافذة طرفية
npx htmx.org@4.0.0 upgrade-check -- .
Alpine.js
ما زالت Alpine على الإصدار 3. الواجهة البرمجية نفسها، ووسم script نفسه، وإصدارات منتظمة.
هذه ميزة. تعلّمتها مرة واحدة، وما زالت تعمل.
Astro
Astro هي الأسرع تطوّرًا من الثلاثة. ثلاثة إصدارات رئيسية.
قدّمت Astro 5 (ديسمبر 2024) طبقة المحتوى (content layer) وجزر الخادم (server islands). وأُلغي نمط output: 'hybrid': فأنت الآن تستعمل output: 'static' وتُشير الصفحات المفردة بـ export const prerender = false، أو تستعمل output: 'server' للتصيير عند الطلب (on demand).
أعادت Astro 6 (2026) بناء خادم التطوير (dev server) بحيث يشغّل بيئة التشغيل الإنتاجية الحقيقية (runtime) لديك. وهذا أمر مهم جدًّا بالنسبة إلى Cloudflare: إذ يعمل astro dev على workerd، وتعمل الربطيات (bindings) مثل D1 و KV محليًا. وتستوردها بالتعبير import { env } from 'cloudflare:workers'. كما أضافت واجهة الخطوط (Fonts API)، ومجموعات المحتوى الحيّة (live content collections)، ودعمًا لسياسة أمن المحتوى (Content Security Policy).
Astro 7 (2026) تخصّصت للسرعة. فالمُصرِّف (compiler) وخطّ أنابيب Markdown مكتوبان الآن بلغة Rust، وتعمل البناءات على Vite 8. كما أضافت توجيهًا متقدّمًا (advanced routing) عبر ملف src/fetch.ts، ما يتيح لك تغليف Astro داخل Hono أو داخل معالجات fetch عادية.
هناك أمر ينبغي معرفته إن كنت قادمًا من Astro 4: فالصفحات المصيّرة عند الطلب تفحص الآن ترويسة Origin في طلبات POST افتراضيًا. أما طلبات htmx القادمة من صفحاتك فتُمرَّر. أما curl -X POST المجرّد فيُرفض.
ما الذي كنت سأفعله بشكل مختلف
قسم بعنوان “ما الذي كنت سأفعله بشكل مختلف”
ليس كثيرًا.
الآن يعمل المثال الصغير على Cloudflare Workers مع D1 بدلًا من ملف في /tmp. الملفات الثلاثة نفسها، وسمات htmx نفسها.
ما زالت الحزمة (stack) تتّسع في أصيل واحد.