feat: prepare site for Yandex Ads (RSYA) moderation
- Add About page (/about, /ru/about) with mission, history, contacts - Add FaqBlock component for generator FAQ sections - Add FAQ to all 10 generators (3 Q&A each, EN+RU) - Expand howTo/whenTo content on numbers, password, coin generators - Add About link to LanguageSwitcher navigation - Improve Yandex RTB ad block: min-height placeholder, no layout shift - Extend generator schema with optional faq/ruFaq fields - Update translations.ts with about and faq i18n keys
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
---
|
||||
import { useT } from "../i18n/translations";
|
||||
import type { Lang } from "../i18n/translations";
|
||||
|
||||
interface Props {
|
||||
questions: Array<{ q: string; a: string }>;
|
||||
lang?: Lang;
|
||||
}
|
||||
|
||||
const { questions, lang = "en" } = Astro.props;
|
||||
const T = useT(lang);
|
||||
---
|
||||
|
||||
<section class="mt-4">
|
||||
<div class="rounded-xl bg-zinc-900/50 border border-zinc-800/60 p-5">
|
||||
<h2
|
||||
class="flex items-center gap-2 text-xs font-semibold uppercase tracking-widest text-zinc-400 mb-3"
|
||||
>
|
||||
<span class="w-1.5 h-1.5 rounded-full bg-accent" aria-hidden="true"></span>
|
||||
{T.faq}
|
||||
</h2>
|
||||
<div class="space-y-3">
|
||||
{
|
||||
questions.map(({ q, a }) => (
|
||||
<div>
|
||||
<p class="font-medium text-zinc-300 text-sm">{q}</p>
|
||||
<p class="text-zinc-400 text-sm mt-0.5">{a}</p>
|
||||
</div>
|
||||
))
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -25,6 +25,13 @@ const alternatePath = isRu
|
||||
data-target-lang="ru"
|
||||
data-alternate={isRu ? "" : alternatePath}>RU</a
|
||||
>
|
||||
<span class="w-px h-3 bg-zinc-700 mx-0.5" aria-hidden="true"></span>
|
||||
<a
|
||||
href={isRu ? "/ru/about/" : "/about/"}
|
||||
class="px-2 py-1 rounded-md transition-colors text-zinc-400 hover:text-zinc-200"
|
||||
>
|
||||
{isRu ? "О проекте" : "About"}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
<!-- Yandex.RTB R-A-19259130-1 -->
|
||||
<div id="yandex_rtb_R-A-19259130-1"></div>
|
||||
<div
|
||||
id="yandex_rtb_R-A-19259130-1"
|
||||
class="min-h-[90px] w-full flex items-center justify-center rounded-lg bg-zinc-900/30"
|
||||
>
|
||||
<span class="text-xs text-zinc-600 uppercase tracking-widest select-none"
|
||||
>Advertisement</span
|
||||
>
|
||||
</div>
|
||||
<script>
|
||||
window.yaContextCb.push(() => {
|
||||
Ya.Context.AdvManager.render({
|
||||
blockId: "R-A-19259130-1",
|
||||
renderTo: "yandex_rtb_R-A-19259130-1"
|
||||
})
|
||||
})
|
||||
renderTo: "yandex_rtb_R-A-19259130-1",
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user