Новый файл README.md
This commit is contained in:
parent
9b2e948ef3
commit
406bba7d40
4 changed files with 181 additions and 40 deletions
|
|
@ -1,46 +1,149 @@
|
|||
# Astro Starter Kit: Basics
|
||||
# 🚗 Автоюрист Сургут — Центр защиты прав водителей
|
||||
|
||||
> Профессиональная юридическая помощь для автомобилистов в Сургуте
|
||||
|
||||

|
||||
|
||||
**🌐 Сайт:** [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)
|
||||
|
||||
---
|
||||
|
||||
## 📝 Лицензия
|
||||
|
||||
Все права защищены © Автоюрист Сургут
|
||||
|
|
|
|||
BIN
frontend/public/images/posts/2026/04/car-dealer-dispute.avif
Normal file
BIN
frontend/public/images/posts/2026/04/car-dealer-dispute.avif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
|
|
@ -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
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue