Сайт-каталог туристических экскурсий (Пхукет и Паттайя), построенный на фреймворке Astro.
Все данные об экскурсиях хранятся в виде Markdown-файлов (.md) в папке src/content/excursions/.
Чтобы добавить новую экскурсию, просто создайте новый файл .md в этой папке. В самом начале файла должен присутствовать блок с метаданными (Frontmatter).
---
title: "Острова Пхи-Пхи"
subtitle: "Ранний выезд, без толп"
category: "МОРСКИЕ"
priceAdult: 1800
priceChild: 1200
childAge: "4-11 лет"
pricePrefix: "от"
badges: ["ХИТ", "Русский гид"]
city: "Пхукет"
cover: "../../assets/images/phiphi.jpg"
---
Опциональный текст: сюда можно добавлять полноценное описание экскурсии, расписание, программу и т.д.title(строка, обязательно) — основное название.subtitle(строка, опционально) — небольшое описание под названием.category(строка, обязательно) — категория экскурсии. От этого зависит, в каком блоке она появится. Основные категории:🔥 ХИТЫ 🔥,МОРСКИЕ,НАЗЕМНЫЕ,ПО ПХУКЕТУ,ПО ПАТТАЙЕ.priceAdult(число, обязательно) — стоимость взрослого билета.priceChild(число, опционально) — стоимость детского билета.childAge(строка, опционально) — примечание о возрасте ребенка.pricePrefix(строка, опционально) — например, слово "от".badges(массив строк, опционально) — плашки, которые выводятся поверх экскурсии (например:["Хит", "Sale"]).cover(путь к картинке, опционально) — фоновое изображение для карточки товара.city(строка, опционально) — Важное поле для разделения по городам.- Можно указать
"Пхукет","phuket"— экскурсия будет видна только на странице Пхукета. - Можно указать
"Паттайя","pattaya"— экскурсия будет видна только на странице Паттайи. - Если поле не указано (как в более старых файлах), экскурсия по умолчанию будет показана в разделе Пхукета.
- Можно указать
src/pages/— маршруты сайта (главнаяindex.astro,phuket.astro,pattaya.astro).src/content/excursions/— файлы.mdс карточками экскурсий.src/content.config.ts— схема проверки и валидации полей из markdown (с использованием Zod).
Все команды выполняются в корне проекта через терминал:
| Команда | Что делает |
|---|---|
npm install |
Устанавливает все необходимые пакеты |
npm run dev |
Запускает сайт в режиме разработки (localhost:4321) |
npm run build |
Собирает оптимизированный сайт для публикации в папку dist/ |
npm run preview |
Позволяет протестировать собранный сайт локально |