From 11c063f73ad2fcd6ade769a0bff5ef3f6eaed2d5 Mon Sep 17 00:00:00 2001 From: Matias Izquierdo Date: Wed, 21 Jan 2026 17:08:54 -0300 Subject: [PATCH 1/2] chore: fixes spanish documentation links --- content/tutorials/en/n8n-worker.mdx | 2 +- content/tutorials/es/n8n-worker.mdx | 6 +-- definitive_link_fix.js | 70 +++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 definitive_link_fix.js diff --git a/content/tutorials/en/n8n-worker.mdx b/content/tutorials/en/n8n-worker.mdx index d7f55ba9a..5064a7630 100644 --- a/content/tutorials/en/n8n-worker.mdx +++ b/content/tutorials/en/n8n-worker.mdx @@ -237,7 +237,7 @@ This will show our n8n worker deployed. ## Create dependencies (Redis and PostgreSQL) -Dependencies are resources necessary for your application to function. In the case of n8n in queue mode, it needs a database and Redis. Sleakops leverages AWS services to provide you with alternatives. You can find more information in the dependencies documentation (/project/dependency). +Dependencies are resources necessary for your application to function. In the case of n8n in queue mode, it needs a database and Redis. Sleakops leverages AWS services to provide you with alternatives. You can find more information in the dependencies documentation (/docs/project/dependency). Let's go to the dependencies section: diff --git a/content/tutorials/es/n8n-worker.mdx b/content/tutorials/es/n8n-worker.mdx index cd73da65b..7308cfdf4 100644 --- a/content/tutorials/es/n8n-worker.mdx +++ b/content/tutorials/es/n8n-worker.mdx @@ -229,13 +229,13 @@ Simple, ve a los detalles de tu worker o servicio web que creamos anteriormente - **Connection Pooling**: Configura pools de conexiones PostgreSQL para alta concurrencia. -- **Read Replicas**: Usa read replicas para consultas de reporting y analytics. (Esto se puede hacer desde Sleakops en la configuración de [Postgres](/project/dependency/postgresql-aws).) +- **Read Replicas**: Usa read replicas para consultas de reporting y analytics. (Esto se puede hacer desde Sleakops en la configuración de [Postgres](/docs/project/dependency/postgresql-aws).) - **Indexing**: Optimiza índices de base de datos para consultas de ejecución de workflow. -- **Backup Strategies**: Implementa backups automatizados con recuperación en un punto específico del tiempo. (Esto se puede hacer desde Sleakops en la configuración de [Postgres](/project/dependency/postgresql-aws).) +- **Backup Strategies**: Implementa backups automatizados con recuperación en un punto específico del tiempo. (Esto se puede hacer desde Sleakops en la configuración de [Postgres](/docs/project/dependency/postgresql-aws).) ### 🚀 **Configuraciones Avanzadas** -- **Node Affinity**: Programa workers en tipos de nodos apropiados (optimizados para CPU vs. memoria). (Puedes hacer esto desde Sleakops usando [Nodepools](/cluster/nodepools)) +- **Node Affinity**: Programa workers en tipos de nodos apropiados (optimizados para CPU vs. memoria). (Puedes hacer esto desde Sleakops usando [Nodepools](/docs/cluster/nodepools)) - **Pod Disruption Budgets**: Garantiza disponibilidad mínima durante mantenimiento del clúster. (Sleakops ya maneja esto) - **Resource Quotas**: Establece límites apropiados para prevenir agotamiento de recursos. (Puedes hacer esto desde Sleakops definiendo límites en tus Workloads y Nodepools) - **Network Policies**: Garantiza comunicación entre pods. (Sleakops ya maneja esto) diff --git a/definitive_link_fix.js b/definitive_link_fix.js new file mode 100644 index 000000000..2a6cbb064 --- /dev/null +++ b/definitive_link_fix.js @@ -0,0 +1,70 @@ +const fs = require("fs"); +const path = require("path"); + +const CONTENT_DIR = "content"; + +const docsPrefixes = [ + "/cluster", + "/domain", + "/environment", + "/network", + "/project", + "/provider", + "/quickstart", + "/user", + "/cli", + "/basicconcepts", + "/changelog", + "/connect_to_git", + "/gettingstarted", + "/responsability-model", +]; + +function getAllFiles(dir, allFiles = []) { + const files = fs.readdirSync(dir); + files.forEach((file) => { + const name = path.join(dir, file); + if (fs.statSync(name).isDirectory()) { + getAllFiles(name, allFiles); + } else if (name.endsWith(".mdx") || name.endsWith(".md")) { + allFiles.push(name); + } + }); + return allFiles; +} + +const allFiles = getAllFiles(CONTENT_DIR); + +allFiles.forEach((file) => { + let content = fs.readFileSync(file, "utf8"); + let originalContent = content; + + docsPrefixes.forEach((prefix) => { + // Regex to match links like (/cluster...) and NOT matching (/docs/cluster...) or (/img/...) or external links + // We look for [text](/prefix...) + const regex = new RegExp( + `\\(\(${prefix.replace(/\//g, "\\/")}\)\(\[\\s\\)\\#\/\]\|\$\\)\)`, + "g", + ); + + // We need to be careful not to replace if it already has /docs + // So we use a negative lookbehind (not supported in all node versions easily, but we can do a replace function) + content = content.replace( + /\(\/([a-z_]+)([\s\)#\/]|$)/g, + (match, p1, p2) => { + const matchedPrefix = "/" + p1; + if (docsPrefixes.includes(matchedPrefix)) { + return "(/docs/" + p1 + p2; + } + return match; + }, + ); + }); + + if (content !== originalContent) { + fs.writeFileSync(file, content); + console.log(`Fixed links in ${file}`); + } +}); + +console.log("✅ Done!"); From d263ff0d0a0d33e4161cb2670b3ac9b2772c6617 Mon Sep 17 00:00:00 2001 From: Matias Izquierdo Date: Wed, 21 Jan 2026 17:14:07 -0300 Subject: [PATCH 2/2] chore: removed unused script --- definitive_link_fix.js | 70 ------------------------------------------ 1 file changed, 70 deletions(-) delete mode 100644 definitive_link_fix.js diff --git a/definitive_link_fix.js b/definitive_link_fix.js deleted file mode 100644 index 2a6cbb064..000000000 --- a/definitive_link_fix.js +++ /dev/null @@ -1,70 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const CONTENT_DIR = "content"; - -const docsPrefixes = [ - "/cluster", - "/domain", - "/environment", - "/network", - "/project", - "/provider", - "/quickstart", - "/user", - "/cli", - "/basicconcepts", - "/changelog", - "/connect_to_git", - "/gettingstarted", - "/responsability-model", -]; - -function getAllFiles(dir, allFiles = []) { - const files = fs.readdirSync(dir); - files.forEach((file) => { - const name = path.join(dir, file); - if (fs.statSync(name).isDirectory()) { - getAllFiles(name, allFiles); - } else if (name.endsWith(".mdx") || name.endsWith(".md")) { - allFiles.push(name); - } - }); - return allFiles; -} - -const allFiles = getAllFiles(CONTENT_DIR); - -allFiles.forEach((file) => { - let content = fs.readFileSync(file, "utf8"); - let originalContent = content; - - docsPrefixes.forEach((prefix) => { - // Regex to match links like (/cluster...) and NOT matching (/docs/cluster...) or (/img/...) or external links - // We look for [text](/prefix...) - const regex = new RegExp( - `\\(\(${prefix.replace(/\//g, "\\/")}\)\(\[\\s\\)\\#\/\]\|\$\\)\)`, - "g", - ); - - // We need to be careful not to replace if it already has /docs - // So we use a negative lookbehind (not supported in all node versions easily, but we can do a replace function) - content = content.replace( - /\(\/([a-z_]+)([\s\)#\/]|$)/g, - (match, p1, p2) => { - const matchedPrefix = "/" + p1; - if (docsPrefixes.includes(matchedPrefix)) { - return "(/docs/" + p1 + p2; - } - return match; - }, - ); - }); - - if (content !== originalContent) { - fs.writeFileSync(file, content); - console.log(`Fixed links in ${file}`); - } -}); - -console.log("✅ Done!");