Новый файл README.md

This commit is contained in:
Web-serfer 2026-04-10 01:28:31 +05:00
parent 9b2e948ef3
commit 406bba7d40
4 changed files with 181 additions and 40 deletions

View file

@ -1,46 +1,149 @@
# Astro Starter Kit: Basics
# 🚗 Автоюрист Сургут — Центр защиты прав водителей
> Профессиональная юридическая помощь для автомобилистов в Сургуте
![Автоюрист Сургут](/public/images/home/avtourist-surgut.avif)
**🌐 Сайт:** [avtourist-surgut.ru](https://avtourist-surgut.ru/)
---
## О проекте
**Автоюрист 086** — современный веб-сайт юридической компании, специализирующейся на защите прав водителей. Сайт предоставляет информацию об услугах, реальных кейсах, отзывах клиентов и полезных материалы в блоге.
### 📍 Контакты
- **Адрес:** г. Сургут, пр. Комсомольский, д. 19
- **Телефон:** [+7 (922) 253-83-75](tel:+79222538375)
- **Email:** [redibedi2019@gmail.com](mailto:redibedi2019@gmail.com)
- **Часы работы:** Пн-Пт: 9:00 - 18:00
---
## 🚀 Технологии
| Технология | Назначение |
|------------|------------|
| [Astro 6](https://astro.build/) | Фреймворк для серверного рендеринга |
| [Tailwind CSS 4](https://tailwindcss.com/) | Утилитарный CSS-фреймворк |
| [MDX](https://mdxjs.com/) | Контент с JSX-компонентами |
| [Node.js](https://nodejs.org/) | Серверный адаптер (standalone) |
| [TypeScript](https://www.typescriptlang.org/) | Типизация |
---
## 📁 Структура проекта
```sh
bun create astro@latest -- --template basics
```
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
## 🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files:
```text
/
frontend/
├── public/
│ └── favicon.svg
├── src
│   ├── assets
│   │   └── astro.svg
│   ├── components
│   │   └── Welcome.astro
│   ├── layouts
│   │   └── Layout.astro
│   └── pages
│   └── index.astro
└── package.json
│ ├── images/ # Изображения по разделам
│ │ ├── blog/ # Для блога
│ │ ├── cases/ # Для кейсов
│ │ ├── contacts/ # Для контактов
│ │ ├── home/ # Для главной страницы
│ │ ├── posts/ # Для постов
│ │ ├── reviews/ # Для отзывов
│ │ └── services/ # Для услуг
│ └── favicons/ # Иконки сайта
├── src/
│ ├── components/ # Компоненты Astro
│ │ ├── auth/ # Аутентификация
│ │ ├── base/ # Базовые элементы
│ │ ├── blog/ # Компоненты блога
│ │ ├── cases/ # Компоненты кейсов
│ │ ├── home/ # Компоненты главной
│ │ ├── layout/ # Layout-компоненты
│ │ ├── reviews/ # Компоненты отзывов
│ │ └── services/ # Компоненты услуг
│ ├── content/ # Контент (блог, страницы)
│ ├── data/ # Данные (кейсы, отзывы)
│ ├── layouts/ # Основные layouts
│ ├── pages/ # Маршруты (SSR)
│ │ ├── auth/ # Страницы авторизации
│ │ ├── blog/ # Страницы блога
│ │ └── *.astro # Основные страницы
│ ├── styles/ # Глобальные стили
│ ├── constants.ts # Константы сайта
│ └── content.config.ts # Конфигурация контента
├── astro.config.mjs # Конфигурация Astro
└── package.json # Зависимости
```
To learn more about the folder structure of an Astro project, refer to [our guide on project structure](https://docs.astro.build/en/basics/project-structure/).
---
## 🧞 Commands
## 📄 Страницы сайта
All commands are run from the root of the project, from a terminal:
| Страница | URL | Описание |
|----------|-----|----------|
| Главная | `/` | Hero-секция, услуги, преимущества |
| Услуги | `/services` | Перечень юридических услуг |
| Кейсы | `/cases` | Реальные дела компании |
| Блог | `/blog` | Полезные статьи для водителей |
| Отзывы | `/reviews` | Отзывы клиентов |
| Контакты | `/contacts` | Адрес, карта, форма связи |
| FAQ | `/faq` | Часто задаваемые вопросы |
| Privacy | `/privacy` | Политика конфиденциальности |
| Terms | `/terms` | Пользовательское соглашение |
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `bun install` | Installs dependencies |
| `bun dev` | Starts local dev server at `localhost:4321` |
| `bun build` | Build your production site to `./dist/` |
| `bun preview` | Preview your build locally, before deploying |
| `bun astro ...` | Run CLI commands like `astro add`, `astro check` |
| `bun astro -- --help` | Get help using the Astro CLI |
---
## 👀 Want to learn more?
## 🛠️ Команды
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
Все команды выполняются через **Bun** из директории `frontend/`:
| Команда | Описание |
|---------|----------|
| `bun install` | Установить зависимости |
| `bun dev` | Запустить dev-сервер (`localhost:4321`) |
| `bun build` | Собрать production-версию в `./dist/` |
| `bun preview` | Превью production-сборки |
| `bun astro ...` | Astro CLI команды |
---
## ⚙️ Конфигурация
Проект работает в режиме **SSR** (Server-Side Rendering) с использованием адаптера **Node.js** в standalone-режиме.
```js
// astro.config.mjs
output: 'server',
adapter: node({ mode: 'standalone' }),
```
---
## 📋 Требования
- **Node.js:** `>=22.12.0`
- **Пакетный менеджер:** [Bun](https://bun.sh/)
---
## 🐳 Docker
Проект включает [Dockerfile](./Dockerfile) для контейнеризации и удобного развертывания.
---
## 👨‍💻 Разработка
1. Установите зависимости:
```bash
bun install
```
2. Запустите dev-сервер:
```bash
bun dev
```
3. Откройте [http://localhost:4321](http://localhost:4321)
---
## 📝 Лицензия
Все права защищены © Автоюрист Сургут

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View file

@ -1,12 +1,12 @@
---
title: "Спор с автосалоном: как вернуть неисправный автомобиль"
description: "Права потребителя при покупке автомобиля с дефектами. Закон «О защите прав потребителей» и судебная практика в Сургуте."
author: "Юрист АВ"
author: "Автоюрист"
category: "Автосалоны"
categoryColor: "bg-gold"
date: 2024-02-20
readTime: "11 мин"
imageUrl: "/images/blog/car-dealer-dispute.avif"
imageUrl: "/images/posts/2026/04/car-dealer-dispute.avif"
draft: false
---

View file

@ -114,7 +114,7 @@ const categories = ['Все', ...new Set(posts.map((post: any) => post.data.cate
}
.blog-card-wrapper {
transition: opacity 0.3s ease, transform 0.3s ease;
transition: opacity 0.3s ease, transform 0.3s ease, display 0.3s ease;
}
/* ===== RESPONSIVE ===== */
@ -164,6 +164,44 @@ const categories = ['Все', ...new Set(posts.map((post: any) => post.data.cate
});
};
const setupFilter = () => {
const buttons = document.querySelectorAll('.category-btn');
const cards = document.querySelectorAll('.blog-card-wrapper');
const grid = document.getElementById('blog-grid');
buttons.forEach((btn) => {
btn.addEventListener('click', (e) => {
e.preventDefault();
const category = btn.getAttribute('data-category');
// Обновляем активную кнопку
buttons.forEach(b => b.classList.remove('active'));
btn.classList.add('active');
// Фильтруем карточки
cards.forEach((card) => {
const cardCategory = card.getAttribute('data-category');
if (category === 'Все' || cardCategory === category) {
card.style.display = '';
card.style.opacity = '0';
card.style.transform = 'translateY(20px)';
requestAnimationFrame(() => {
card.style.transition = 'opacity 0.4s ease, transform 0.4s ease';
card.style.opacity = '1';
card.style.transform = 'translateY(0)';
});
} else {
card.style.display = 'none';
}
});
});
});
};
setupAnimations();
document.addEventListener('astro:after-swap', setupAnimations);
setupFilter();
document.addEventListener('astro:after-swap', () => {
setupAnimations();
setupFilter();
});
</script>