Developer Page Specifications
Category Page
/:lang/categories/{slug} — scoped listing reusing the Industry chassis with topic filter + sort. 404 on unknown slug.
مكتمل
المسار: /:lang/editorial/categories/{categorySlug}. قائمة محصورة تَعرض كل المقالات ضمن فئة تحريرية واحدة. نفس مكوّن EditorialListingPage كالقائمة لكن مع scope=category و hero مُتَخَصِّص-بالفئة إضافي.
أقسام الصفحة
- A · Breadcrumb الفئة (Home → Editorial → {اسم الفئة})
- B · Hero الفئة (الاسم H1 + الوصف + chip عدد المقالات + chip آخر-تحديث + مقالة مميَّزة من هذه الفئة)
- C · شريط الفلتر (تعدّد-اختيار الموضوع، منسدلة الفرز)
- D · خلاصة المقالات (شبكة 3-أعمدة، scroll لانهائي)
- E · الفئات ذات الصلة (3 فئات أخرى قد يَستكشفها القارئ)
- F · كتلة النشرة (تَختار مُسبَقاً هذه الفئة في فلتر الاهتمام)
- G · Footer
C · عقد الفلتر
- topic (تعدّد-اختيار)
- المصدر: SELECT DISTINCT topic FROM EditorialArticle WHERE categorySlug = :categorySlug. query param: topic=csv.
- sort (اختيار-واحد)
- القيم: latest (افتراضي، publishedAt DESC) | most-read (viewCount DESC) | editor-picks (isEditorPick DESC، publishedAt DESC) | long-reads (readingTimeMinutes DESC) | short-reads (readingTimeMinutes ASC).
