/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/web/src/components/Footer.astro
125 строк
3 KB
Aiden Cline
fix(web): persist docs language selection (#32551)
16 июн 2026, 14:27
Не верифицирован
16 июн 2026, 14:27
bd84c32
Код
Авторство
О чём код?
--- import config from "virtual:starlight/user-config" import LanguageSelect from "./LanguageSelect.astro" import { Icon } from "@astrojs/starlight/components" const { lang, editUrl, lastUpdated, entry } = Astro.locals.starlightRoute const template = entry.data.template const issueLink = Astro.locals.t("app.footer.issueLink", "Found a bug? Open an issue") const discordLink = Astro.locals.t("app.footer.discordLink", "Join our Discord community") const github = config.social?.find((item) => item.icon === "github") const discord = config.social?.find((item) => item.icon === "discord") --- { template === "doc" && ( <footer class="doc"> <div class="meta sl-flex"> <div> { editUrl && ( <a href={editUrl} target="_blank" rel="noopener noreferrer" class="sl-flex"> <Icon name="pencil" size="1em" /> {Astro.locals.t("page.editLink")} </a> ) } { github && ( <a href={`${github.href}/issues/new`} target="_blank" rel="noopener noreferrer" class="sl-flex"> <Icon name={github.icon} size="1em" /> {issueLink} </a> ) } { discord && ( <a href={discord.href} target="_blank" rel="noopener noreferrer" class="sl-flex"> <Icon name={discord.icon} size="1em" /> {discordLink} </a> ) } <LanguageSelect /> </div> <div> <p>© <a target="_blank" rel="noopener noreferrer" href="https://anoma.ly">Anomaly</a></p> <p title={Astro.locals.t("page.lastUpdated")}> {Astro.locals.t("page.lastUpdated")} {" "} { lastUpdated ? ( <time datetime={lastUpdated.toISOString()}> {lastUpdated.toLocaleDateString(lang, { dateStyle: "medium", timeZone: "UTC" })} </time> ) : ( "-" ) } </p> </div> </div> </footer> ) } <style> footer.doc { margin-top: 3rem; border-top: 1px solid var(--sl-color-border); } .meta { gap: 0.75rem 3rem; justify-content: space-between; flex-wrap: wrap; margin-block: 3rem 1.5rem; font-size: var(--sl-text-sm); } @media (min-width: 30rem) { .meta { flex-direction: row; } } .doc a, .doc p { padding-block: 0.125rem; } .doc a { gap: 0.4375rem; align-items: center; text-decoration: none; color: var(--sl-color-text); font-size: var(--sl-text-sm); } .doc a svg { opacity: 0.85; } .doc p { color: var(--sl-color-text-dimmed); } .doc :global(starlight-lang-select) { display: inline-flex; margin-top: 0.5rem; } .doc :global(starlight-lang-select select) { min-width: 15em; } @media (min-width: 30rem) { .doc p { text-align: right; } } .doc p a { color: var(--sl-color-text-dimmed); } </style>