Files
scrabble-game/ui/landing.html
T
Ilia Denisov 1ed624eaf1
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 57s
CI / conformance (pull_request) Successful in 8s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m20s
feat(landing): Russian default + SEO head, icons and OG card
The landing now always opens in Russian (saved 🌐 choice still wins) —
browser-language detection made the indexed content nondeterministic
(Googlebot renders with en-US). landing.html gains the static Russian
SEO head: title/description, canonical pinned to the production origin,
Open Graph card (Telegram/VK link previews), twitter:card, JSON-LD,
theme-color and the favicon set; the SPA shell turns noindex and its
tab title becomes «Эрудит (Скрэббл)». New assets/icons generator
(same tile design as the VK loader) produces favicon.svg/ico,
apple-touch-icon.png and og-image.png into ui/public/, plus robots.txt.
2026-07-02 01:25:19 +02:00

55 lines
3.3 KiB
HTML

<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<!-- A normal scrollable page (no board, no Telegram SDK), so allow the browser's zoom. -->
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<!-- The SEO head is static and Russian-only: the page is client-rendered, so this layer is
what non-rendering crawlers and link-preview bots (Telegram/VK use Open Graph) see. The
absolute URLs are the production origin on purpose — the test contour then canonicalises
to production instead of being indexed as a separate site. -->
<title>Эрудит (Скрэббл) — играть онлайн с друзьями или роботом</title>
<meta
name="description"
content="Бесплатная онлайн-игра в слова «Эрудит» (Скрэббл): играйте со случайным соперником, с друзьями или против робота — в Telegram, ВКонтакте или прямо в браузере."
/>
<link rel="canonical" href="https://erudit-game.ru/" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Эрудит" />
<meta property="og:title" content="Эрудит (Скрэббл) — играть онлайн" />
<meta property="og:description" content="Игра в слова: со случайным соперником, с друзьями или против робота." />
<meta property="og:url" content="https://erudit-game.ru/" />
<meta property="og:image" content="https://erudit-game.ru/og-image.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:locale" content="ru_RU" />
<meta property="og:locale:alternate" content="en_US" />
<meta name="twitter:card" content="summary_large_image" />
<!-- Relative icon hrefs, like the in-page assets: the same build serves under any path. -->
<link rel="icon" href="favicon.ico" sizes="32x32" />
<link rel="icon" type="image/svg+xml" href="favicon.svg" />
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#f3f4f6" />
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0f1115" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "Эрудит (Скрэббл)",
"alternateName": "Erudit (Scrabble)",
"url": "https://erudit-game.ru/",
"image": "https://erudit-game.ru/og-image.png",
"description": "Бесплатная онлайн-игра в слова «Эрудит» (Скрэббл): играйте со случайным соперником, с друзьями или против робота — в Telegram, ВКонтакте или прямо в браузере.",
"applicationCategory": "GameApplication",
"operatingSystem": "Any",
"inLanguage": ["ru", "en"],
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "RUB" }
}
</script>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/landing.ts"></script>
</body>
</html>