File: //tmp/dateweb_patch_trends_integrations.cjs
const fs = require('fs');
function write(file, content) { fs.writeFileSync(file, content, 'utf8'); }
function read(file) { return fs.readFileSync(file, 'utf8'); }
function replaceOnce(file, from, to) {
let s = read(file);
if (!s.includes(from)) throw new Error(`${file}: anchor missing`);
s = s.replace(from, to);
write(file, s);
}
// deploy hook
{
const file = 'scripts/deploy-webroot.sh';
let s = read(file);
const hook = `\n# dateweb growth route: Dating Trends 2026\nif [ -f scripts/generate-static-dating-trends-2026.mjs ]; then\n node scripts/generate-static-dating-trends-2026.mjs\nfi\nif [ -f scripts/patch-dating-trends-2026-internal-links.mjs ]; then\n node scripts/patch-dating-trends-2026-internal-links.mjs\nfi\n`;
if (!s.includes('generate-static-dating-trends-2026.mjs')) {
s = s.replace('# dateweb growth route: Feed and RSS', `${hook}\n# dateweb growth route: Feed and RSS`);
}
write(file, s);
}
// feed: prepend trend item and update description
{
const file = 'scripts/generate-static-feed.mjs';
let s = read(file);
if (!s.includes("path: '/ratgeber/dating-trends-2026/'")) {
s = s.replace('const items = [\n', `const items = [\n {\n title: 'Dating-Trends 2026: klare Absichten statt Swipen',\n path: '/ratgeber/dating-trends-2026/',\n description: 'Clear Coding, Dating-Fatigue, KI mit Grenzen und sichere erste Treffen: was Singles 2026 wirklich suchen.',\n },\n`);
}
s = s.replace('Aktuelle dateweb.de Ratgeber zu Dating-Fatigue, Ghosting, Dating ab 40, Dating nach Trennung, Profilen und ersten Nachrichten.', 'Aktuelle dateweb.de Ratgeber zu Dating-Trends 2026, Dating-Fatigue, Ghosting, Dating ab 40, Dating nach Trennung, Profilen und ersten Nachrichten.');
write(file, s);
}
// distribution: add campaign first
{
const file = 'scripts/growth-distribution-plan.mjs';
let s = read(file);
if (!s.includes("slug: 'dating-trends-2026'")) {
s = s.replace('const campaigns = [\n', `const campaigns = [\n {\n slug: 'dating-trends-2026',\n title: 'Dating-Trends 2026',\n path: '/ratgeber/dating-trends-2026/',\n intent: 'Dating Trends 2026, Clear Coding, Dating-Fatigue, KI Dating, klare Absichten',\n audience: 'Singles ab 30 und 40, die weniger App-Rauschen und mehr Verbindlichkeit suchen',\n campaign: 'guide_dating_trends_2026_launch',\n keyword: 'dating_trends_2026',\n copy: [\n 'Dating 2026 wird klarer: weniger Swipen, mehr Absicht, KI mit Grenzen und sichere kleine Treffen. Neuer dateweb-Ratgeber.',\n 'Clear Coding statt Rätselraten: dateweb zeigt, wie Singles 2026 mit weniger Rauschen besser kennenlernen.'\n ],\n anchors: ['Dating-Trends 2026', 'Clear Coding beim Dating', 'klare Absichten statt endlosem Swipen']\n },\n`);
}
write(file, s);
}
// public sitemap
{
const file = 'public/sitemap.xml';
let s = read(file);
const url = 'https://dateweb.de/ratgeber/dating-trends-2026';
if (!s.includes(url)) {
const entry = ` <url>\n <loc>${url}</loc>\n <lastmod>2026-06-02</lastmod>\n <changefreq>weekly</changefreq>\n <priority>0.88</priority>\n </url>\n`;
s = s.replace('</urlset>', `${entry}</urlset>`);
}
write(file, s);
}
// robots
{
const file = 'public/robots.txt';
let s = read(file);
if (!s.includes('Allow: /ratgeber/dating-trends-2026')) {
s = s.replace('Allow: /ratgeber/dating-ab-30\n', 'Allow: /ratgeber/dating-ab-30\nAllow: /ratgeber/dating-trends-2026\n');
}
write(file, s);
}
// growth insights route lists
{
const file = 'scripts/growth-insights.mjs';
let s = read(file);
if (!s.includes("'/ratgeber/dating-trends-2026/'")) {
s = s.replace(" '/ratgeber/dating-fatigue/',\n", " '/ratgeber/dating-fatigue/',\n '/ratgeber/dating-trends-2026/',\n");
}
if (!s.includes("'/ratgeber/dating-trends-2026/'") || !s.includes('launchClusterRoutes')) throw new Error('growth insights route insertion failed');
if (!s.match(/const launchClusterRoutes = \[[\s\S]*dating-trends-2026/)) {
s = s.replace(" '/ratgeber/dating-nach-trennung/',\n];", " '/ratgeber/dating-nach-trennung/',\n '/ratgeber/dating-trends-2026/',\n];");
}
write(file, s);
}
// growth backlog tuple list
{
const file = 'scripts/growth-backlog.mjs';
let s = read(file);
if (!s.includes("['/ratgeber/dating-trends-2026/'")) {
s = s.replace(" ['/ratgeber/dating-fatigue/', 'Ratgeber Dating-Fatigue', 'App-Müdigkeit und Neustart-Suchintention'],\n", " ['/ratgeber/dating-fatigue/', 'Ratgeber Dating-Fatigue', 'App-Müdigkeit und Neustart-Suchintention'],\n ['/ratgeber/dating-trends-2026/', 'Ratgeber Dating-Trends 2026', 'Clear-Coding-, KI- und Intentional-Dating-Suchintention'],\n");
}
write(file, s);
}