# archive-by-year-month Specification ## Purpose Страница «Архив» (/posts/) блога dedinit.ru отображает все посты, сгруппированные по годам и месяцам (как штатный архив Hugo), вместо плоского списка с пагинацией. ## Requirements ### Requirement: Группировка постов по годам и месяцам Система SHALL отображать на странице /posts/ список всех постов, сгруппированный по годам публикации, и внутри каждого года — по месяцам публикации. Заголовки содержат год/месяц и количество постов в группе. #### Scenario: Страница /posts/ показывает годы - **WHEN** пользователь открывает страницу /posts/ - **THEN** страница содержит заголовки годов (например «2026», «2023»), под каждым — посты этого года - **AND** возле каждого года отображается количество постов #### Scenario: Внутри года посты сгруппированы по месяцам - **WHEN** пользователь открывает страницу /posts/ - **THEN** внутри каждого года посты сгруппированы по месяцам публикации (например «January», «September») - **AND** возле каждого месяца отображается количество постов #### Scenario: Каждый пост — ссылка на свою страницу - **WHEN** пользователь видит запись в архиве - **THEN** заголовок поста является ссылкой на его страницу (permalink) - **AND** под заголовком отображаются метаданные поста (дата и пр.) ### Requirement: Заголовок и описание страницы Система SHALL отображать на странице /posts/ заголовок «Архив» и описание страницы (из frontmatter секции). #### Scenario: Заголовок страницы - **WHEN** пользователь открывает страницу /posts/ - **THEN** заголовок страницы — «Архив» ### Requirement: Сохранение остальной функциональности секции Система SHALL сохранять работоспособность RSS-ленты секции /posts/ и URL постов (permalinks не меняются) при переключении layout на архив. #### Scenario: RSS секции не сломан - **WHEN** пользователь запрашивает RSS-ленту секции /posts/ (index.xml) - **THEN** лента валидна и содержит посты секции #### Scenario: Permalinks постов не меняются - **WHEN** пользователь открывает пост из архива - **THEN** URL поста соответствует permalink /:year/:slug/ (как и раньше)