Общество

n

Материалы и архитектура раздела «Общество»

Раздел «Общество» построен на модульной системе шаблонов, где основным материалом выступает семантическая разметка JSON-LD для событий и микроформаты h-event для календаря. База данных использует PostgreSQL 16 с JSONB-колонками для хранения гибких метаданных каждого мероприятия. Все тексты проходят препроцессинг через Rust-модуль, что гарантирует чистоту разметки без лишних

-обёрток. В отличие от аналогов (Joomla, старые версии Drupal), здесь отсутствует тяжёлый Bootstrap: CSS-фреймворк заменён на нативный Grid Layout с fallback на Flexbox для IE11. Это снижает вес страницы на 40%.

Спецификации и отличия от альтернатив

  • Спецификация шаблонов: каждый блок «Общество» (новостная лента, анонсы, детали события) имеет собственную схему a11y — aria-роли заданы на уровне рендеринга через компоненты Svelte 5.
  • Отличие от типовых порталов: календарь мероприятий не использует iframe и не подгружает внешние календари (Google Calendar, Outlook). Вместо этого — собственный парсер iCalendar (RFC 5545), преобразующий .ics в статичный HTML с хешированием ETag для кэширования.
  • Материалы интерфейса: для графики применяется векторный формат WebP с AVIF-альтернативой, шрифты — локальный Variable Font Inter (без загрузки из внешних CDN).

Производство контента и стандарты качества

Контент для раздела «Общество» создаётся через редактор с кастомной системой проверок. Каждая единица (анонс, пост, запись календаря) проходит три стадии: автоматическая валидация через ESLint-плагин для HTML, проверка на соответствие стандарту WCAG 2.1 AA (цветовой контраст, доступность фокусов) и ревью модератором. Дата-центр использует диски NVMe RAID 10, что обеспечивает ответ API календаря за 12-45 мс. В отличие от решений на WordPress, здесь отсутствуют сторонние плагины — вся логика сборки календаря зашита в ядро. Это исключает разрывы в вёрстке при обновлении.

Сравнение с аналогичными разделами

  1. Импортозамещение: в 2026 году раздел полностью отвязан от зарубежных библиотек (например, jQuery заменён на Alpine.js с весом 8 кБ).
  2. Устойчивость к нагрузкам: календарь мероприятий использует lazy-load с IntersectionObserver — подгрузка записей происходит только при появлении блока во viewport. Аналоги (например, на bitrix) грузят весь массив при старте страницы.
  3. Контроль версий: каждый HTML-фрагмент раздела сохраняется в Git-репозитории, изменения даты или описания события подлежат обязательному коммиту. Ни один модератор не может изменить контент напрямую в базе — только через Pull Request.

Материалы и сроки службы

Текстовые материалы хранятся в сжатой колонке (zstd-level 3) с автоматическим сбросом в бэкап каждые 15 минут. Графические активы проходят пайплайн: оригинал → ImageMagick (очистка мета-данных, ресемплинг до 1280px по одной оси) → WebP (lossless). Качество выше порогового уровня 85% проверяется по SSIM. В отличие от решений на ТАСС-подобных платформах, здесь нет кеша с истечением через 5 минут — кеширование событий живёт до наступления даты события, после чего инвалидируется принудительно. Все стандарты зафиксированы в Service-Level Agreement (SLA) внутреннего реестра 2026 года.

Добавлено: 11.05.2026