This commit is contained in:
53
docs/platform/12-static-pages-system.md
Normal file
53
docs/platform/12-static-pages-system.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# 12. Система статических страниц
|
||||
|
||||
## Назначение
|
||||
Система статических страниц управляет юридическими и информационными страницами (о компании, политика, доставка, возврат) через конфигурацию.
|
||||
|
||||
## Поведение системы
|
||||
- Список страниц и маршруты берутся из bootstrap/pages.
|
||||
- Контент может храниться как HTML/Markdown/структурированный JSON.
|
||||
- Frontend рендерит контент безопасно, с tenant-aware навигацией.
|
||||
|
||||
## Обязательные JSON-свойства
|
||||
- page.id
|
||||
- page.key
|
||||
- page.route.path
|
||||
- page.type = "static"
|
||||
- page.content.source
|
||||
|
||||
## Опциональные свойства
|
||||
- page.seoKey
|
||||
- page.visible
|
||||
- page.translations
|
||||
- page.lastUpdated
|
||||
|
||||
## Строгие правила
|
||||
- Запрещено хардкодить список статических страниц во frontend.
|
||||
- Контент должен быть изолирован по tenant.
|
||||
- HTML-контент должен проходить sanitation на frontend и/или backend.
|
||||
|
||||
## Пример JSON статической страницы
|
||||
```json
|
||||
{
|
||||
"id": "page-privacy",
|
||||
"key": "privacy-policy",
|
||||
"type": "static",
|
||||
"route": { "path": "/privacy-policy", "exact": true },
|
||||
"content": {
|
||||
"source": "cms",
|
||||
"contentType": "html",
|
||||
"value": "<h1>Политика конфиденциальности</h1><p>...</p>"
|
||||
},
|
||||
"visible": true
|
||||
}
|
||||
```
|
||||
|
||||
## Ответственность Frontend
|
||||
- Рендерить статические страницы по конфигурации маршрутов.
|
||||
- Безопасно обрабатывать HTML-контент.
|
||||
- Поддерживать локализованные версии страницы.
|
||||
|
||||
## Ответственность Backend
|
||||
- Поставлять tenant-specific статический контент.
|
||||
- Поддерживать версионирование и аудит контента.
|
||||
- Гарантировать валидность route/content связки.
|
||||
Reference in New Issue
Block a user