--- import { Icon } from "astro-icon/components"; import { type NavbarLink } from "@/types/config"; import { navbarConfig } from "@/config"; import { LinkPresets } from "@constants/link-presets"; import { url } from "@utils/url"; import GridLayout from "@layouts/grid.astro"; import { siteConfig } from "@/config"; // Получаем все ссылки из navbar, включая основные и с подразделами const allLinks: NavbarLink[] = []; navbarConfig.links.forEach(link => { if (typeof link === "number") { // Это LinkPreset const preset = LinkPresets[link]; if (preset) { allLinks.push(preset); } } else { // Это NavbarLink allLinks.push(link); } }); // Добавляем ссылку на новости/ленту постов const newsLink: NavbarLink = { name: "Новости", url: "/news/", icon: "material-symbols:article", description: "Лента постов и статей", }; // Вставляем ссылку на новости в начало списка allLinks.unshift(newsLink); const pageTitle = siteConfig.title; const pageDescription = siteConfig.subtitle || ""; ---

{pageTitle}

{pageDescription && (

{pageDescription}

)}
{allLinks.map(link => { // Для ссылок с подразделами показываем саму ссылку const hasChildren = link.children && link.children.length > 0; const linkUrl = hasChildren ? link.url : (link.external ? link.url : url(link.url)); return (
{link.icon && }

{link.name}

{link.description && (

{link.description}

)}
); })}