openspec: архив changes series-taxonomy-and-header, archive-by-year-month, deploy-sftp-incremental (2026-09-25)
deploy-dedinit / Build & SFTP Deploy (push) Successful in 7m13s
deploy-dedinit / Build & SFTP Deploy (push) Successful in 7m13s
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# 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/ (как и раньше)
|
||||
Reference in New Issue
Block a user