/** * template.js — общая оболочка сайта Эврики. * * Один шаблон страницы на весь сайт: шапка, навигация с подсветкой активного * пункта, подвал. Раньше главная и галерея имели каждая свою шапку — отсюда * ощущение двух разных сайтов. Теперь шапка и подвал описаны здесь один раз. * * Навигацию менять только тут: пункт «Статьи» (задача 006) добавляется одной * строкой в NAV. */ export function esc(s) { return String(s) .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """); } // Порядок и состав пунктов навигации. href — корневые (работают с любой глубины). export const NAV = [ { key: "home", label: "Главная", href: "/" }, { key: "gallery", label: "Галерея", href: "/gallery/" }, { key: "workshop", label: "Мастерская", href: "/workshop/" }, { key: "about", label: "О себе", href: "/#about" }, // Задача 006 добавит сюда: { key: "articles", label: "Статьи", href: "/articles/" } ]; export function page({ title, description = "", body, active = "", mainClass = "" }) { const nav = NAV.map( (n) => ` ${esc(n.label)}` ).join("\n"); return ` ${esc(title)} ${description ? `\n` : ""}
Эврика
${body} `; }