feat: кейс Primo AI Server по фреймворку STAR (страница без ссылок на сайте, noindex, только ru)

This commit is contained in:
root committed 2026-10-02 16:21:03 +02:00
1 parent a8ae6323c0
commit ac1eceefd1
3 files changed
+1837 -2

No files matched your search

+11 -2
View File
@@ -37,6 +37,13 @@ const NOINDEX_PAGES = new Set([
"cases/design-system",
"cases/template-elements-demo",
"cases/mini-projects-showcase",
"cases/primo-ai-server-star",
]);
// Страницы, у которых пока нет перевода: собираются только в дефолтную локаль,
// чтобы /en/ не отдавал русскоязычный дубль и не попадал в sitemap.
const DEFAULT_LOCALE_ONLY_PAGES = new Set([
"cases/primo-ai-server-star",
]);
const titleRe = /<title>([\s\S]*?)<\/title>/i;
@@ -187,7 +194,8 @@ function buildSitemap(pageFiles) {
if (NOINDEX_PAGES.has(noSlug)) continue;
const lastmod = lastModFor(relNorm);
const locUrl = canonicalFor(relNorm, DEFAULT_LOCALE);
const alternates = LOCALES.map(
const buildLocales = DEFAULT_LOCALE_ONLY_PAGES.has(noSlug) ? [DEFAULT_LOCALE] : LOCALES;
const alternates = buildLocales.map(
(loc) =>
` <xhtml:link rel="alternate" hreflang="${loc}" href="${canonicalFor(relNorm, loc)}" />`
);
@@ -346,8 +354,10 @@ function build() {
const isResume = relNorm === "resume.html";
const isCookiePolicy = relNorm === "cookie-policy.html";
const omitFile = isCase ? path.basename(pagePath) : null;
const noSlug = relNorm.replace(/\.html$/, "");
for (const loc of LOCALES) {
if (loc !== DEFAULT_LOCALE && DEFAULT_LOCALE_ONLY_PAGES.has(noSlug)) continue;
const dict = i18n[loc] || {};
const isDefault = loc === DEFAULT_LOCALE;
const langPrefix = isDefault ? "" : `${loc}/`;
@@ -361,7 +371,6 @@ function build() {
const source = readUtf8(sourcePath);
// --- SEO-переменные для head-seo / json-ld ---
const noSlug = relNorm.replace(/\.html$/, "");
const isNoindex = NOINDEX_PAGES.has(noSlug);
const canonicalUrl = canonicalFor(relNorm, loc);
const metaSource = extractMeta(source);