Initial commit

This commit is contained in:
2026-02-10 16:22:14 +05:00
parent bc64b84640
commit 505f49fbd9
6720 changed files with 1357701 additions and 0 deletions

BIN
dist/assets/geo-logo-CTcDXZQa.webp vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

1
dist/assets/index-BZSFOg8v.css vendored Normal file
View File

@@ -0,0 +1 @@
*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif}.overflow-x-auto{scrollbar-width:thin;scrollbar-color:#FF9900 #f5f5f5}.overflow-x-auto::-webkit-scrollbar{height:8px}.overflow-x-auto::-webkit-scrollbar-track{background:#f5f5f5;border-radius:10px}.overflow-x-auto::-webkit-scrollbar-thumb{background:#f90;border-radius:10px}.overflow-x-auto::-webkit-scrollbar-thumb:hover{background:#e68a00}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-gradient{background-size:200% 200%;animation:gradient-shift 8s ease infinite}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fade-in-up .6s ease-out forwards}

361
dist/assets/index-WgNyvlZq.js vendored Normal file

File diff suppressed because one or more lines are too long

104
dist/index.html vendored Normal file
View File

@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ГеоВектор - Проектирование и Строительство</title>
<!-- Favicon -->
<link rel="icon" type="image/webp" href="/assets/geo-logo-CTcDXZQa.webp" />
<link rel="shortcut icon" type="image/webp" href="/assets/geo-logo-CTcDXZQa.webp" />
<link rel="apple-touch-icon" href="/assets/geo-logo-CTcDXZQa.webp" />
<!-- Meta tags -->
<meta name="description" content="ООО ГеоВектор - профессиональные инженерные изыскания, проектирование и строительство в Уфе. Современное оборудование, опытные специалисты." />
<meta name="keywords" content="инженерные изыскания, проектирование, строительство, геология, геодезия, ГеоВектор, Уфа" />
<!-- Open Graph для соцсетей -->
<meta property="og:title" content="ГеоВектор - Инженерные изыскания, проектирование и строительство" />
<meta property="og:description" content="Профессиональные инженерные изыскания, проектирование и строительство в Уфе. Современное оборудование, опытные специалисты." />
<meta property="og:image" content="https://geowektor.ru/media/geo-logo.webp" />
<meta property="og:url" content="https://geowektor.ru" />
<meta property="og:type" content="website" />
<meta property="og:locale" content="ru_RU" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="ГеоВектор - Инженерные изыскания и строительство" />
<meta name="twitter:description" content="Профессиональные решения для строительства в Уфе" />
<meta name="twitter:image" content="https://geowektor.ru/media/geo-logo.webp" />
<!-- Schema.org разметка -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "ООО ГеоВектор",
"alternateName": "GeoVector",
"url": "https://geowektor.ru",
"logo": "https://geowektor.ru/media/geo-logo.webp",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+7-347-292-73-70",
"contactType": "customer service",
"areaServed": "RU",
"availableLanguage": ["Russian"]
},
"address": {
"@type": "PostalAddress",
"streetAddress": "ул. Комсомольская 19/1",
"addressLocality": "Уфа",
"addressRegion": "Республика Башкортостан",
"postalCode": "450001",
"addressCountry": "RU"
},
"sameAs": [
"https://t.me/ooo_geo_wektor",
"https://vk.com/geowektor_ru"
],
"description": "Профессиональные инженерные изыскания, проектирование и строительство. Грунтовая и радиационная лаборатории."
}
</script>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Inter', 'sans-serif'],
},
colors: {
brand: {
orange: '#FF9900',
dark: '#111111',
gray: '#222222',
light: '#F5F5F5'
}
}
}
}
}
</script>
<script type="importmap">
{
"imports": {
"lucide-react": "https://aistudiocdn.com/lucide-react@^0.555.0",
"react/": "https://aistudiocdn.com/react@^19.2.0/",
"react": "https://aistudiocdn.com/react@^19.2.0",
"react-dom/": "https://aistudiocdn.com/react-dom@^19.2.0/",
"react-router-dom": "https://aistudiocdn.com/react-router-dom@^6.22.3",
"react-router": "https://aistudiocdn.com/react-router@^6.22.3",
"@remix-run/router": "https://aistudiocdn.com/@remix-run/router@^1.15.3"
}
}
</script>
<script type="module" crossorigin src="/assets/index-WgNyvlZq.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BZSFOg8v.css">
</head>
<body>
<div id="root"></div>
</body>
</html>

19
dist/robots.txt vendored Normal file
View File

@@ -0,0 +1,19 @@
User-agent: *
Allow: /
# Sitemap
Sitemap: https://geowektor.ru/sitemap.xml
# Запрет индексации служебных файлов
Disallow: /node_modules/
Disallow: /*.json
Disallow: /*.ts
Disallow: /*.tsx
# Доступ к медиа файлам
Allow: /media/
# Host (основной домен)
Host: https://geowektor.ru

107
dist/sitemap.xml vendored Normal file
View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://geowektor.ru/</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://geowektor.ru/#/about</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://geowektor.ru/#/services</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://geowektor.ru/#/services/surveying</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://geowektor.ru/#/services/design</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://geowektor.ru/#/services/construction</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://geowektor.ru/#/services/soil-survey</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://geowektor.ru/#/services/building-survey</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://geowektor.ru/#/services/land-survey</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://geowektor.ru/#/services/technical-tasks</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://geowektor.ru/#/projects</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://geowektor.ru/#/fleet</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://geowektor.ru/#/laboratories/soil</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://geowektor.ru/#/laboratories/radiation</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://geowektor.ru/#/certificates</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://geowektor.ru/#/contacts</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://geowektor.ru/#/privacy-policy</loc>
<lastmod>2025-01-01</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
</urlset>

67
dist/sw.js vendored Normal file
View File

@@ -0,0 +1,67 @@
const CACHE_NAME = 'geovector-v1';
const urlsToCache = [
'/',
'/index.html',
'/index.css',
'/media/geo-logo.webp',
'/media/qr-code.png'
];
// Установка Service Worker
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open(CACHE_NAME)
.then((cache) => {
console.log('Кэш открыт');
return cache.addAll(urlsToCache);
})
);
self.skipWaiting();
});
// Активация Service Worker
self.addEventListener('activate', (event) => {
event.waitUntil(
caches.keys().then((cacheNames) => {
return Promise.all(
cacheNames.map((cacheName) => {
if (cacheName !== CACHE_NAME) {
console.log('Удаление старого кэша:', cacheName);
return caches.delete(cacheName);
}
})
);
})
);
return self.clients.claim();
});
// Fetch - стратегия Network First, затем Cache
self.addEventListener('fetch', (event) => {
event.respondWith(
fetch(event.request)
.then((response) => {
// Клонируем ответ, так как можем использовать его только один раз
const responseToCache = response.clone();
caches.open(CACHE_NAME).then((cache) => {
cache.put(event.request, responseToCache);
});
return response;
})
.catch(() => {
// Если сеть недоступна, пытаемся получить из кэша
return caches.match(event.request).then((cachedResponse) => {
if (cachedResponse) {
return cachedResponse;
}
// Если нет в кэше, возвращаем офлайн-страницу
return caches.match('/index.html');
});
})
);
});