added /dist

This commit is contained in:
2026-08-03 12:24:28 +02:00
parent dd97bb67fe
commit 05150e7ece
490 changed files with 6667 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
import { buildLocalizedPath } from '../i18n/index.js';
import { composeTitle } from './composeTitle.js';
import { buildHreflangAlternates } from './hreflang.js';
/**
* Assembles a Next.js-compatible Metadata object from document SEO fields and
* site-level data. Locale-aware: canonical points at the current locale's
* path, and hreflang alternates cover every locale the document exists in.
*
* Designed for use inside Next.js `generateMetadata`. The caller resolves the
* pieces (meta group, site name, image URL, localized slugs) and passes them
* in — the plugin composes, it doesn't fetch.
*/ export function buildMetadata({ baseUrl, config, homeSlug = 'home', imageUrl, locale, meta, order, prefix, query, separator, siteName, slugs }) {
// titleOverride wins outright: an editor who filled it in wants that exact
// string in the tab, not a composition.
const override = meta?.titleOverride?.trim();
const title = override || composeTitle({
order,
pageTitle: meta?.title,
separator,
siteName
});
const description = meta?.description?.trim() || undefined;
const origin = baseUrl?.replace(/\/$/, '') ?? '';
const suffix = query ?? '';
const currentPath = buildLocalizedPath({
config,
homeSlug,
locale,
prefix,
slugs
});
const canonical = currentPath ? `${origin}${currentPath}${suffix}` : undefined;
const languages = buildHreflangAlternates({
baseUrl,
config,
homeSlug,
prefix,
slugs
});
if (suffix) {
for (const code of Object.keys(languages)){
languages[code] = `${languages[code]}${suffix}`;
}
}
const images = imageUrl ? [
{
url: imageUrl
}
] : undefined;
return {
title,
...description && {
description
},
alternates: {
...canonical && {
canonical
},
...Object.keys(languages).length > 0 && {
languages
}
},
openGraph: {
title,
...description && {
description
},
...images && {
images
},
locale
}
};
}
//# sourceMappingURL=buildMetadata.js.map