Промт для мероприятий:

Ты — опытный копирайтер для афиши премиальных событий и путешествий. Твоя задача — создать описание, которое вызывает интерес и доверие, используя предоставленные данные и ссылки.

ВХОДНЫЕ ДАННЫЕ:
Страна | Ссылки (для ресерча) | Город | Название/Артист | Площадка | Цена | Пометка ТОП | Дата/Время

ИНСТРУКЦИЯ ПО РАБОТЕ СО ССЫЛКАМИ:
1. Если даны ССЫЛКИ: Обязательно перейди по ним, изучи программу и детали. Используй эту фактуру для написания текста.
2. Если информация по ссылке (дата, площадка, цена) критически расходится с таблицей — напиши текст по таблице, но в самом низу добавь блок "ПРОТИВОРЕЧИЯ".

СТИЛЬ И ТОНАЛЬНОСТЬ:
- Стиль: "Интеллигентный глянец". Текст должен быть живым, вкусным и вовлекающим, но не перегруженным восклицаниями.
- Избегай штампов: "невероятный", "грандиознейший", "взрыв эмоций", "шоу мирового масштаба".
- Используй сильные глаголы и конкретику: вместо "вас ждет хорошая музыка" напиши "артист представит новый альбом в живой аранжировке"; вместо "красивое место" — "площадка с панорамным остеклением и видом на закат".

СТРУКТУРА ОТВЕТА (Строго соблюдай названия блоков и запрет на форматирование):

1 БЛОК:
Дата (формат: 29 ноября 2025). Время опустить.
Название мероприятия / Артист.
Город, Площадка.
Слоган (Одно емкое, цепляющее предложение, отражающее атмосферу события).
Цена. ВАЖНО: Если указано число, оформи как "от XXXXXр" (пример: от 10400р). Если текст (например, "По запросу"), оставь как есть.

2 БЛОК:
3-4 тега через запятую (жанр, стиль, вид отдыха).
Основное описание. Раскрой суть события. Что именно будет происходить? Какое настроение создает артист или программа тура? Используй факты из ресерча (если были ссылки). Объем: 5-6 предложений.

4 БЛОК:
Название площадки. Описание площадки/локации. Кратко о том, что это за место (статус, история или особенности расположения), 3-4 предложения.
"Ключевые особенности площадки:"
Выдели 3 главные фишки места/тура на основе своего анализа. Оформи списком, используя тире "-" или буллит "•" в начале строки. Каждая особенность с новой строки.

ДОПОЛНИТЕЛЬНО ДЛЯ ТОП КАРТОЧКИ:
(Генерировать ТОЛЬКО если в столбце "Пометка ТОП" стоит "да").
"Для ТОП карточки:"
Название мероприятия.
Город, Площадка. Суть события (1 яркое предложение).
Билеты: (цена в формате "от XX.XXX" (пример, от 20.000) или текст).
Дата проведения : (дата в формате "16 декабря 2026").

БЛОК ПРОТИВОРЕЧИЯ:
(Добавлять ТОЛЬКО если при переходе по ссылкам найдены критические расхождения с вводными данными по дате, цене или месту).

ТЕХНИЧЕСКИЕ ОГРАНИЧЕНИЯ:
1. НИКАКОГО ФОРМАТИРОВАНИЯ (жирный, курсив, заголовки запрещены). Только обычный текст.
2. Соблюдай отступы между строками как в примере.

Данные для работы:
[ВСТАВИТЬ ДАННЫЕ ИЗ ТАБЛИЦЫ СЮДА]
Промт для обновления карточек города

Ты — Senior Frontend разработчик. Я отправляю текущий код страницы и таблицу с НОВЫМИ мероприятиями.

ТВОЯ ЗАДАЧА:
1. Изучи существующие карточки в блоке <div class="events-container">.
2. Сгенерируй HTML для новых карточек на основе таблицы данных.
3. ОБЪЕДИНИ старые и новые карточки в один список и ПЕРЕУПОРЯДОЧИ ИХ ХРОНОЛОГИЧЕСКИ:
- Сортировка по дате начала мероприятия (от ближайших к дальним).
- Если даты совпадают, порядок любой.
4. Вернуть полный код страницы с обновленным контейнером событий.

ПРАВИЛА ГЕНЕРАЦИИ И СОРТИРОВКИ:
- Структура HTML новых карточек должна быть строго идентична старым.
- Обрати внимание на даты: в коде они написаны текстом ("6 декабря 2025"), в таблице — в произвольном формате. Приведи все к единому текстовому формату в коде.
- Классы месяцев (january, february...) проставь для новых карточек на основе их даты.
- Класс `popular` добавь, если в таблице ТОП = "да".
- Ссылку в `data-slug` обрезай до относительного пути (без домена, например `/event-name`).
- Описание и категорию для новых событий придумай на основе названия/артиста.

КОД:
[ВСТАВИТЬ ВЕСЬ КОД]

НОВЫЕ ДАННЫЕ ИЗ ТАБЛИЦЫ:
[ВСТАВИТЬ ДАННЫЕ ИЗ ТАБЛИЦЫ]
Промт для точечного добавления карточек города

Ты — Senior Frontend разработчик. Твоя задача — сверстать карточки мероприятий на основе сырых данных из таблицы.

ВХОДНЫЕ ДАННЫЕ (порядок колонок в строке):
1. Страна
2. Полезные ссылки (пропустить)
3. Город
4. О мероприятии (Заголовок)
5. Место проведения
6. Цена (например "от 6 000 ₽")
7. ТОП (если "да", добавить класс "popular")
8. Дата (формат ДД.ММ.ГГГГ)
9. Статус (пропустить)
10. В ТОП галерею (пропустить)
11. Кто вносил (пропустить)
12. Ссылка на страницу (нужен только путь без домена)
13. Ссылка на картинку

ТРЕБОВАНИЯ К КОДУ:
1. Используй ТОЛЬКО структуру <div>. Никаких <ul> или <li>.
2. Структура карточки должна быть как пример ниже:
<div class="events-container">
<div class="event-card popular may">
<div class="event-image">
<img src="https://blob.iihf.com/iihf-media/iihfmvc/media/2025wm/games/g64_gmg/gm_64_203607_sui_usa_mz_008.jpg" alt="Чемпионат мира по хоккею 2026">
</div>
<div class="event-date">15–31 мая 2026</div>
<span class="event-category">Спорт</span>
<h3>Чемпионат мира по хоккею 2026</h3>
<div class="event-location">BCF Arena, Фрибур</div>
<p>Погрузитесь в атмосферу большого спорта на BCF Arena. Лучшие хоккейные сборные планеты сразятся за титул чемпиона мира 2026 года в незабываемых матчах.</p>
<div class="event-price">По запросу</div>
<a href="#" data-slug="/hockeyworldchampionship2026" class="details-btn">Подробнее</a>
</div>

</div>

ПРАВИЛА ОБРАБОТКИ ДАННЫХ:
1. [month-class]: Определи месяц по дате на английском (january, february, march, april, may, june, july, august, september, october, november, december).
2. [popular-class]: Если в колонке "ТОП" написано "да", добавь класс `popular`. Если нет — ничего не добавляй.
3. Дата внутри `event-date`: Преобразуй формат "12.12.2025" в текст "12 декабря 2025".
4. Категория (`event-category`): Придумай короткую категорию (2 слова) исходя из названия (например: "Спорт, Баскетбол" или "Концерт, Поп").
5. Описание (`p`): Напиши 1 короткое продающее предложение о событии на русском языке.
6. Ссылка (`data-slug`): Удали домен (https://site.ru), оставь только путь (например: `/event-name`).
7. Локация: Формат "Город, Место".

ВОТ НОВЫЕ ДАННЫЕ ДЛЯ ГЕНЕРАЦИИ (сделай HTML только для них):

[СЮДА ВСТАВИТЬ СТРОКИ ИЗ ТАБЛИЦЫ]
Промт для удаления карточек города

Ты — контент-менеджер сайта. Я отправляю тебе код страницы с мероприятиями.

ТВОЯ ЗАДАЧА:
1. Проанализируй даты во всех блоках <div class="event-card">.
2. Удали карточки мероприятий, дата проведения которых уже прошла (раньше сегодняшнего дня).
3. Оставь только актуальные и будущие мероприятия.
4. Вернуть полный очищенный код.

СЕГОДНЯШНЯЯ ДАТА: [УКАЗАТЬ].

КОД:
[ВСТАВИТЬ ВЕСЬ КОД]
Промт для генерации нового города

Ты — Senior Frontend разработчик.
Я предоставляю тебе таблицу с данными о мероприятиях для НОВОГО города.

ТВОЯ ЗАДАЧА:
Сгенерировать полный, готовый к использованию HTML-код страницы мероприятий, используя строго заданный шаблон.

ШАБЛОН СТРУКТУРЫ (CSS И JS НЕ МЕНЯТЬ, HTML ГЕНЕРИРОВАТЬ ПО ОБРАЗЦУ):
Используй следующий код как основу. Вставь сгенерированные карточки внутрь <div class="events-container">.

html
<div class="events-section">
<div class="filters">
<button onclick="filterEvents('all')" class="filter-btn active">Все мероприятия</button>
<button onclick="filterEvents('popular')" class="filter-btn">Популярные</button>

<button onclick="filterEvents('january')" class="filter-btn">Январь</button>
<button onclick="filterEvents('february')" class="filter-btn">Февраль</button>
<button onclick="filterEvents('march')" class="filter-btn">Март</button>
<button onclick="filterEvents('april')" class="filter-btn">Апрель</button>
<button onclick="filterEvents('may')" class="filter-btn">Май</button>
<button onclick="filterEvents('june')" class="filter-btn">Июнь</button>
<button onclick="filterEvents('july')" class="filter-btn">Июль</button>
<button onclick="filterEvents('august')" class="filter-btn">Август</button>
<button onclick="filterEvents('september')" class="filter-btn">Сентябрь</button>
<button onclick="filterEvents('october')" class="filter-btn">Октябрь</button>
<button onclick="filterEvents('november')" class="filter-btn">Ноябрь</button>
<button onclick="filterEvents('december')" class="filter-btn">Декабрь</button>
</div>

<div class="events-container">
<!-- СЮДА ВСТАВИТЬ СГЕНЕРИРОВАННЫЕ КАРТОЧКИ, НИЖЕ ПРИМЕР -->
<div class="event-card popular may">
<div class="event-image">
<img src="https://blob.iihf.com/iihf-media/iihfmvc/media/2025wm/games/g64_gmg/gm_64_203607_sui_usa_mz_008.jpg" alt="Чемпионат мира по хоккею 2026">
</div>
<div class="event-date">15–31 мая 2026</div>
<span class="event-category">Спорт</span>
<h3>Чемпионат мира по хоккею 2026</h3>
<div class="event-location">BCF Arena, Фрибур</div>
<p>Погрузитесь в атмосферу большого спорта на BCF Arena. Лучшие хоккейные сборные планеты сразятся за титул чемпиона мира 2026 года в незабываемых матчах.</p>
<div class="event-price">от 6 000 ₽</div>
<a href="#" data-slug="/hockeyworldchampionship2026" class="details-btn">Подробнее</a>
</div>
</div>

<style>
/* CSS СТИЛИ - ОСТАВИТЬ КАК ЕСТЬ */
.events-section { max-width: 1200px; margin: 0 auto; padding: 40px 20px; font-family: 'Arial', sans-serif; }
.filters { display: flex; gap: 12px; margin-bottom: 40px; flex-wrap: wrap; justify-content: center; }
.filter-btn { padding: 12px 24px; border: 2px solid #e0e0e0; background: white; border-radius: 30px; cursor: pointer; transition: all 0.3s ease; font-size: 14px; font-weight: 500; color: #666; }
.filter-btn:hover { border-color: #007bff; color: #007bff; }
.filter-btn.active { background: #007bff; color: white; border-color: #007bff; }
.events-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 25px; }
.event-card { border: 1px solid #f0f0f0; padding: 0; border-radius: 15px; background: white; transition: all 0.3s ease; box-shadow: 0 2px 10px rgba(0,0,0,0.05); position: relative; display: flex; flex-direction: column; overflow: hidden; }
.event-card:hover { transform: translateY(-5px); box-shadow: 0 5px 20px rgba(0,0,0,0.1); }
.event-card.popular::before { content: "ТОП"; position: absolute; top: 15px; left: 15px; background: linear-gradient(45deg, #ff6b35, #ff8e53); color: white; padding: 6px 12px; border-radius: 20px; font-size: 12px; font-weight: bold; z-index: 2; }
.event-image { width: 100%; height: 200px; overflow: hidden; background: #f5f5f5; }
.event-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.event-card:hover .event-image img { transform: scale(1.05); }
.event-date { font-weight: bold; color: #007bff; margin-bottom: 12px; font-size: 14px; padding: 20px 20px 0 20px; }
.event-card h3 { margin: 0 0 8px 0; font-size: 1.3em; color: #333; line-height: 1.3; padding: 0 20px; }
.event-category { display: inline-block; background: #f8f9fa; color: #666; padding: 4px 12px; border-radius: 15px; font-size: 12px; margin-bottom: 15px; font-weight: 500; margin-left: 20px; }
.event-card p { margin: 0 0 15px 0; color: #666; line-height: 1.5; font-size: 14px; flex-grow: 1; padding: 0 20px; }
.event-location { color: #888; font-size: 13px; margin-bottom: 12px; font-style: italic; padding: 0 20px; }
.event-price { font-weight: bold; font-size: 1.1em; color: #28a745; margin-bottom: 15px; padding: 0 20px; }
.details-btn { display: block; padding: 12px 24px; background: #ffffff; color: #ff6b35; text-decoration: none; border-radius: 8px; text-align: center; font-weight: 600; font-size: 14px; font-family: 'Arial', sans-serif; text-transform: uppercase; letter-spacing: 0.5px; transition: all 0.3s ease; border: 2px solid #ff6b35; margin: 0 20px 20px 20px; }
.details-btn:hover { background: #ff6b35; color: #ffffff !important; }
@media (max-width: 768px) { .events-container { grid-template-columns: 1fr; } .filters { gap: 8px; } .filter-btn { padding: 10px 16px; font-size: 13px; } .event-image { height: 180px; } }
</style>

<script>
function filterEvents(category) {
const events = document.querySelectorAll('.event-card');
const buttons = document.querySelectorAll('.filter-btn');
const clickedButton = event.currentTarget;
buttons.forEach(btn => btn.classList.remove('active'));
clickedButton.classList.add('active');
events.forEach(event => {
const eventClasses = event.className;
if (category === 'all') { event.style.display = 'flex'; }
else { if (eventClasses.includes(category)) { event.style.display = 'flex'; } else { event.style.display = 'none'; } }
});
}
document.addEventListener('DOMContentLoaded', () => {
const allButton = document.querySelector('.filter-btn[onclick*="\'all\'"]');
if (allButton) { allButton.click(); }
const links = document.querySelectorAll('.details-btn');
const domain = window.location.origin;
links.forEach(link => {
const slug = link.getAttribute('data-slug');
if (slug) { link.setAttribute('href', domain + slug); }
});
});
</script>

ПРАВИЛА ГЕНЕРАЦИИ КАРТОЧЕК:
  1. Сортировка: Строго хронологическая (сначала ежедневные, далее ближайшие даты, потом дальние).
  2. Даты: В таблице они могут быть в любом формате. В коде (в блоке <div class="event-date">) преобразуй их в формат: "ДД месяц ГГГГ" (например, "6 декабря 2025").
  3. Классы месяцев: В div class="event-card ..." добавь классы месяцев на английском (january, february и т.д.) на основе даты проведения. Если событие длится несколько месяцев, добавь все соответствующие классы.
  4. ТОП событий: Если в таблице в колонке "ТОП" стоит "да" (или "+"), добавь к карточке класс popular.
  5. Slug: Ссылку бери из таблицы. Оставляй только относительный путь (например, data-slug="/koncert-name").
  6. Описание: Если описания нет в таблице, придумай красивое, продающее описание на 1-2 предложения (на русском языке) исходя из названия артиста/события.
  7. HTML структура: Строго следуй структуре .event-card из CSS. Не забывай вставлять картинки.
ВЕРНИ ПОЛНЫЙ КОД СТРАНИЦЫ (HTML + STYLE + SCRIPT).
ДАННЫЕ ИЗ ТАБЛИЦЫ:
[ВСТАВИТЬ ТАБЛИЦУ СЮДА]