@webnumseoagent/next 0.1.21 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client.ts +9 -0
- package/dist/client.js +9 -0
- package/package.json +1 -1
package/client.ts
CHANGED
|
@@ -158,6 +158,15 @@ function mergeIntoMetadata(fallback: Metadata, f: SeoFields, route: string): Met
|
|
|
158
158
|
m.description = f.description;
|
|
159
159
|
}
|
|
160
160
|
if (f.canonical) m.alternates = { ...(m.alternates ?? {}), canonical: f.canonical };
|
|
161
|
+
// Авто self-canonical: если ни сайт (fallback), ни конфиг не задали canonical — ставим ссылку на
|
|
162
|
+
// саму страницу. Существующий canonical НЕ трогаем (сайт может каноникалить на другой URL — дедуп).
|
|
163
|
+
// Путь нормализуем к ведущему «/»; при заданном baseUrl делаем абсолютным, иначе относительный —
|
|
164
|
+
// он тоже даёт верный self-canonical (резолвится к URL страницы / через metadataBase сайта).
|
|
165
|
+
if (!m.alternates?.canonical) {
|
|
166
|
+
const path = "/" + String(route ?? "").replace(/^\/+/, "");
|
|
167
|
+
const self = f.baseUrl ? f.baseUrl.replace(/\/+$/, "") + path : path;
|
|
168
|
+
m.alternates = { ...(m.alternates ?? {}), canonical: self };
|
|
169
|
+
}
|
|
161
170
|
if (f.robots) {
|
|
162
171
|
const r = f.robots;
|
|
163
172
|
const base: Record<string, unknown> =
|
package/dist/client.js
CHANGED
|
@@ -157,6 +157,15 @@ function mergeIntoMetadata(fallback, f, route) {
|
|
|
157
157
|
}
|
|
158
158
|
if (f.canonical)
|
|
159
159
|
m.alternates = { ...(m.alternates ?? {}), canonical: f.canonical };
|
|
160
|
+
// Авто self-canonical: если ни сайт (fallback), ни конфиг не задали canonical — ставим ссылку на
|
|
161
|
+
// саму страницу. Существующий canonical НЕ трогаем (сайт может каноникалить на другой URL — дедуп).
|
|
162
|
+
// Путь нормализуем к ведущему «/»; при заданном baseUrl делаем абсолютным, иначе относительный —
|
|
163
|
+
// он тоже даёт верный self-canonical (резолвится к URL страницы / через metadataBase сайта).
|
|
164
|
+
if (!m.alternates?.canonical) {
|
|
165
|
+
const path = "/" + String(route ?? "").replace(/^\/+/, "");
|
|
166
|
+
const self = f.baseUrl ? f.baseUrl.replace(/\/+$/, "") + path : path;
|
|
167
|
+
m.alternates = { ...(m.alternates ?? {}), canonical: self };
|
|
168
|
+
}
|
|
160
169
|
if (f.robots) {
|
|
161
170
|
const r = f.robots;
|
|
162
171
|
const base = typeof m.robots === "string" ? robotsFromString(m.robots)
|
package/package.json
CHANGED