refactor: i18n routing, shared GeneratorLayout, analytics component, content collections

- Add Astro native i18n routing (prefixDefaultLocale: false)
- Introduce GeneratorLayout to deduplicate all generator pages
- Enrich generator data with pageTitle, ruPageTitle, howTo/whenTo arrays
- Make EN and RU generator pages identical using @/ path aliases
- Extract analytics (Yandex Metrika + Top.Mail.Ru) into Analytics.astro
- Move tracker IDs to src/data/config.ts, inject via define:vars
- Migrate generator metadata to Content Collections (src/content/generators/*.json)
- Add Zod schema with .strict() validation in src/lib/generator-schema.ts
- Update CLAUDE.md with new conventions
This commit is contained in:
emil
2026-05-10 20:42:05 +03:00
parent 195c2deb54
commit f1ba82735b
46 changed files with 960 additions and 1369 deletions
+11 -4
View File
@@ -1,11 +1,18 @@
import { defineConfig } from 'astro/config';
import tailwindcss from '@tailwindcss/vite';
import sitemap from '@astrojs/sitemap';
import { defineConfig } from "astro/config";
import tailwindcss from "@tailwindcss/vite";
import sitemap from "@astrojs/sitemap";
export default defineConfig({
site: 'https://randify.pro',
site: "https://randify.pro",
integrations: [sitemap()],
vite: {
plugins: [tailwindcss()],
},
i18n: {
defaultLocale: "en",
locales: ["en", "ru"],
routing: {
prefixDefaultLocale: false,
},
},
});