/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/web/src/components/Head.astro
54 строки
1 KB
Adam
wip(docs): i18n (#12681)
09 фев 2026, 20:34
Не верифицирован
09 фев 2026, 20:34
dc53086
Код
Авторство
О чём код?
--- import { Base64 } from "js-base64"; import Default from '@astrojs/starlight/components/Head.astro' import config from '../../config.mjs' const base = import.meta.env.BASE_URL.replace(/^\//, "").replace(/\/$/, "") const slug = Astro.url.pathname.replace(/^\//, "").replace(/\/$/, ""); const { entry: { data: { title , description }, }, } = Astro.locals.starlightRoute; const isDocs = base === "" ? true : slug === base || slug.startsWith(`${base}/`) const t = Astro.locals.t as (key: string) => string const titleSuffix = t("app.head.titleSuffix") const shareSlug = base === "" ? "s" : `${base}/s` const isShare = slug === shareSlug || slug.startsWith(`${shareSlug}/`) const isHome = slug === "" || slug === base let encodedTitle = ''; let ogImage = `${config.url}/social-share.png`; let truncatedDesc = ''; if (isDocs) { // Truncate to fit S3's max key size encodedTitle = encodeURIComponent( Base64.encode( // Convert to ASCII encodeURIComponent( // Truncate to fit S3's max key size title.substring(0, 700) ) ) ); if (description) { truncatedDesc = encodeURIComponent(description.substring(0, 400)) } ogImage = `${config.socialCard}/opencode-docs/${encodedTitle}.png?desc=${truncatedDesc}`; } --- { isHome && ( <title>{title} | {titleSuffix}</title> )} <Default {...Astro.props}><slot /></Default> { !isShare && ( <meta property="og:image" content={ogImage} /> <meta property="twitter:image" content={ogImage} /> )}