# کاتالوگ صفحات لندینگ

محتوای معرفی صفحات در `assets/data/page-catalog.json` نگهداری می‌شود. فایل HTML نهایی استاتیک است و برای اجرا به درخواست JSON یا ابزار ساخت نیاز ندارد.

## افزودن یا تغییر صفحه

برای هر صفحهٔ جدید، یک مدخل با `id` یکتا، `panelId`، مسیر `href` نسبت به ریشهٔ بسته، `category`، `kind`، `title`، `summary` و `emoji` اضافه کنید. توضیح باید کاربرد واقعی صفحه را روشن کند و با محتوا و کنترل‌های آن مطابقت داشته باشد. متن فنی یا عملیات بک‌اندِ پیاده‌سازی‌نشده را به‌عنوان قابلیت آماده معرفی نکنید.

نوع‌ها: `dashboard`، `page`، `auth`، `layout`، `system` و `guide`. چیدمان‌ها و راهنماها در آمار جدا هستند. مسیرهای جایگزینِ یک داشبورد در `aliases` با مقصد `canonical` ثبت می‌شوند؛ آن‌ها کارت و شمارش مستقل ندارند. صفحات فروشنده زیر شناسهٔ `ecommerce-seller` قرار می‌گیرند، نه پنل مدیر فروشگاه.

برای پنل جدید، اطلاعات معرفی، مسیر پایه، رنگ صنفی و امکانات شاخص را در فهرست `panels` اضافه کنید. هر پنل باید یک مدخل برای `index.html` داشته باشد.

## تولید و بررسی

```bash
python3 scripts/page_catalog.py
python3 scripts/test_page_catalog.py
python3 scripts/generate_landing.py
```

مولد، همهٔ فایل‌های HTML زیر `industries` را با مدخل‌ها و مسیرهای جایگزین تطبیق می‌دهد. مدخل جاافتاده، مسیر ناموجود، شناسه یا مسیر تکراری و متن خالی، تولید را متوقف می‌کند.

بدون جاوااسکریپت، پنل‌ها به‌صورت بخش‌های بازشوندهٔ بومی و لینک‌های واقعی نمایش داده می‌شوند. با جاوااسکریپت، انتخاب صنف، جست‌وجو و دسته‌بندی فعال می‌شوند. تنها یک iframe نزدیک‌شدن به کاتالوگ یا انتخاب صفحه بارگذاری می‌شود؛ تغییر اندازهٔ نمایش صفحه را دوباره بارگذاری نمی‌کند. اجرای `file://` به دریافت داده از شبکه وابسته نیست.

در بررسی مرورگر، انتخاب هر ۱۱ پنل، کلیک کارت و لینک مستقل، جست‌وجوی فارسی و حروف عربی، حالت بدون نتیجه، فیلتر دسته، عرض‌های دسکتاپ/تبلت/موبایل و حالت روشن و تاریک کنترل شوند.
