diff --git a/scripts/prerender.js b/scripts/prerender.js index 316154e..bd094f2 100644 --- a/scripts/prerender.js +++ b/scripts/prerender.js @@ -1,20 +1,27 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync } from "fs"; import { resolve, dirname } from "path"; import { fileURLToPath } from "url"; -import { client } from "../src/api/client"; const __dirname = dirname(fileURLToPath(import.meta.url)); -const products = async function getProducts() { +async function getProducts() { try { - console.log("📡 Загрузка товаров из API..."); - const response = await client.get("/productList/"); - return response.data; + const response = await fetch('https://pvh.projects.rustprogersteam.ru/api/productList'); + const data = await response.json(); + + if (Array.isArray(data)) { + console.log(`✅ Загружено ${data.length} товаров`); + return data; + } + return []; } catch (error) { - console.error("❌ Ошибка загрузки из API:", error.message); - console.log("📦 Использую тестовые данные..."); + console.error('Ошибка:', error.message); + return []; } -}; +} + +// Получаем товары +const products = await getProducts(); const distPath = resolve(__dirname, "../dist"); const indexHtmlPath = resolve(distPath, "index.html"); @@ -27,65 +34,149 @@ if (!existsSync(indexHtmlPath)) { // Читаем исходный HTML let baseHtml = readFileSync(indexHtmlPath, "utf-8"); -// Добавляем базовые мета-теги для каждой страницы -const pages = [ +// ============================================ +// ФУНКЦИИ ДЛЯ ГЕНЕРАЦИИ КОНТЕНТА +// ============================================ + +function escapeHtml(text) { + if (!text) return ''; + return String(text) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +// Генерация страницы товара +function generateProductPage(product) { + return ` +
${escapeHtml(product.description || 'Описание отсутствует')}
+Артикул: ${product.id}
+Широкий выбор канализационных труб, фитингов и комплектующих.
+${escapeHtml((product.description || '').slice(0, 150))}...
+ Подробнее +Мы занимаемся продажей качественных труб и фитингов для канализации.
+