Skip to content

Commit ad19392

Browse files
author
mcarbonell
committed
fix: Arreglar páginas de categorías para usar archivo unificado
1 parent 329cd29 commit ad19392

17 files changed

+1072
-4
lines changed

scripts/generate-category-pages.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,16 @@ async function generateCategoryPages() {
7575
const toolIds = audienceMapping[category.id] || [];
7676

7777
for (const lang of siteConfig.languages) {
78-
const toolsIndexLangPath = path.join(projectRoot, 'data', `tools-index-${lang}.json`);
79-
const toolsIndex = JSON.parse(await fs.readFile(toolsIndexLangPath, 'utf8'));
80-
81-
const categoryTools = toolsIndex.filter(tool => toolIds.includes(tool.id));
78+
// Get tools from unified index and translate
79+
const categoryTools = toolsData.tools
80+
.filter(tool => toolIds.includes(tool.id))
81+
.map(tool => ({
82+
id: tool.id,
83+
title: tool.title[lang] || tool.title.en,
84+
description: tool.description[lang] || tool.description.en,
85+
icon: tool.icon,
86+
slug: tool.slug.replace('tools/', '')
87+
}));
8288

8389
let toolsGrid = '';
8490
categoryTools.forEach(tool => {

web/ai.html

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,51 @@ <h1 class="display-5 fw-bold mb-3">🤖 AI</h1>
5252

5353
<div class="row g-4">
5454

55+
<div class="col-md-6 col-lg-4">
56+
<div class="card h-100">
57+
<div class="card-body">
58+
<h5 class="card-title">💬 AI Chat</h5>
59+
<p class="card-text">Chat with AI using Google Gemini.</p>
60+
<a href="/chat-ai.html" class="btn btn-primary">Open</a>
61+
</div>
62+
</div>
63+
</div>
64+
<div class="col-md-6 col-lg-4">
65+
<div class="card h-100">
66+
<div class="card-body">
67+
<h5 class="card-title">📄 Summarize Text with AI</h5>
68+
<p class="card-text">Summarize long texts using AI.</p>
69+
<a href="/summarize-text-ai.html" class="btn btn-primary">Open</a>
70+
</div>
71+
</div>
72+
</div>
73+
<div class="col-md-6 col-lg-4">
74+
<div class="card h-100">
75+
<div class="card-body">
76+
<h5 class="card-title">✨ Improve Text with AI</h5>
77+
<p class="card-text">Improve your text writing with AI.</p>
78+
<a href="/improve-text-ai.html" class="btn btn-primary">Open</a>
79+
</div>
80+
</div>
81+
</div>
82+
<div class="col-md-6 col-lg-4">
83+
<div class="card h-100">
84+
<div class="card-body">
85+
<h5 class="card-title">📚 Chat with PDF</h5>
86+
<p class="card-text">Chat with your PDF documents using AI.</p>
87+
<a href="/chat-pdf.html" class="btn btn-primary">Open</a>
88+
</div>
89+
</div>
90+
</div>
91+
<div class="col-md-6 col-lg-4">
92+
<div class="card h-100">
93+
<div class="card-body">
94+
<h5 class="card-title">🎨 Edit Image with AI</h5>
95+
<p class="card-text">Edit images using artificial intelligence.</p>
96+
<a href="/edit-image-ai.html" class="btn btn-primary">Open</a>
97+
</div>
98+
</div>
99+
</div>
55100
</div>
56101

57102
<div class="text-center mt-5">

web/data-analysts.html

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,60 @@ <h1 class="display-5 fw-bold mb-3">📊 Data Analysts</h1>
5252

5353
<div class="row g-4">
5454

55+
<div class="col-md-6 col-lg-4">
56+
<div class="card h-100">
57+
<div class="card-body">
58+
<h5 class="card-title">📋 Format JSON</h5>
59+
<p class="card-text">Format, validate and minify JSON instantly.</p>
60+
<a href="/json-formatter.html" class="btn btn-primary">Open</a>
61+
</div>
62+
</div>
63+
</div>
64+
<div class="col-md-6 col-lg-4">
65+
<div class="card h-100">
66+
<div class="card-body">
67+
<h5 class="card-title">📊 CSV ↔ JSON</h5>
68+
<p class="card-text">Convert CSV to JSON and JSON to CSV in browser.</p>
69+
<a href="/csv-json.html" class="btn btn-primary">Open</a>
70+
</div>
71+
</div>
72+
</div>
73+
<div class="col-md-6 col-lg-4">
74+
<div class="card h-100">
75+
<div class="card-body">
76+
<h5 class="card-title">📄 Extract Text from PDF</h5>
77+
<p class="card-text">Extract text from PDF files in browser using PDF.js.</p>
78+
<a href="/pdf-to-text.html" class="btn btn-primary">Open</a>
79+
</div>
80+
</div>
81+
</div>
82+
<div class="col-md-6 col-lg-4">
83+
<div class="card h-100">
84+
<div class="card-body">
85+
<h5 class="card-title">🔄 YAML ↔ JSON</h5>
86+
<p class="card-text">Convert YAML to JSON and JSON to YAML.</p>
87+
<a href="/yaml-json.html" class="btn btn-primary">Open</a>
88+
</div>
89+
</div>
90+
</div>
91+
<div class="col-md-6 col-lg-4">
92+
<div class="card h-100">
93+
<div class="card-body">
94+
<h5 class="card-title">🔄 XML ↔ JSON</h5>
95+
<p class="card-text">Convert XML to JSON and JSON to XML.</p>
96+
<a href="/xml-json.html" class="btn btn-primary">Open</a>
97+
</div>
98+
</div>
99+
</div>
100+
<div class="col-md-6 col-lg-4">
101+
<div class="card h-100">
102+
<div class="card-body">
103+
<h5 class="card-title">🔄 TOML ↔ JSON</h5>
104+
<p class="card-text">Convert TOML to JSON and JSON to TOML.</p>
105+
<a href="/toml-json.html" class="btn btn-primary">Open</a>
106+
</div>
107+
</div>
108+
</div>
55109
</div>
56110

57111
<div class="text-center mt-5">

web/designers.html

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,78 @@ <h1 class="display-5 fw-bold mb-3">🎨 Designers</h1>
5252

5353
<div class="row g-4">
5454

55+
<div class="col-md-6 col-lg-4">
56+
<div class="card h-100">
57+
<div class="card-body">
58+
<h5 class="card-title">📐 Resize Image</h5>
59+
<p class="card-text">Resize images in browser while maintaining aspect ratio.</p>
60+
<a href="/image-resizer.html" class="btn btn-primary">Open</a>
61+
</div>
62+
</div>
63+
</div>
64+
<div class="col-md-6 col-lg-4">
65+
<div class="card h-100">
66+
<div class="card-body">
67+
<h5 class="card-title">🔄 Convert Image Format</h5>
68+
<p class="card-text">Convert JPG, PNG and WebP without uploading files.</p>
69+
<a href="/convert-image.html" class="btn btn-primary">Open</a>
70+
</div>
71+
</div>
72+
</div>
73+
<div class="col-md-6 col-lg-4">
74+
<div class="card h-100">
75+
<div class="card-body">
76+
<h5 class="card-title">🎨 Color Palette Generator</h5>
77+
<p class="card-text">Extract dominant color palette from any image.</p>
78+
<a href="/color-palette-generator.html" class="btn btn-primary">Open</a>
79+
</div>
80+
</div>
81+
</div>
82+
<div class="col-md-6 col-lg-4">
83+
<div class="card h-100">
84+
<div class="card-body">
85+
<h5 class="card-title">🔍 EXIF Viewer & Cleaner</h5>
86+
<p class="card-text">View EXIF metadata and remove private information.</p>
87+
<a href="/exif-viewer-cleaner.html" class="btn btn-primary">Open</a>
88+
</div>
89+
</div>
90+
</div>
91+
<div class="col-md-6 col-lg-4">
92+
<div class="card h-100">
93+
<div class="card-body">
94+
<h5 class="card-title">✂️ Crop Image</h5>
95+
<p class="card-text">Crop your images online easily and precisely.</p>
96+
<a href="/image-cropper.html" class="btn btn-primary">Open</a>
97+
</div>
98+
</div>
99+
</div>
100+
<div class="col-md-6 col-lg-4">
101+
<div class="card h-100">
102+
<div class="card-body">
103+
<h5 class="card-title">📦 Compress Image</h5>
104+
<p class="card-text">Reduce image size without losing visible quality.</p>
105+
<a href="/image-compressor.html" class="btn btn-primary">Open</a>
106+
</div>
107+
</div>
108+
</div>
109+
<div class="col-md-6 col-lg-4">
110+
<div class="card h-100">
111+
<div class="card-body">
112+
<h5 class="card-title">🎨 Color Picker & Converter</h5>
113+
<p class="card-text">Color picker and converter between HEX, RGB and HSL.</p>
114+
<a href="/color-picker-converter.html" class="btn btn-primary">Open</a>
115+
</div>
116+
</div>
117+
</div>
118+
<div class="col-md-6 col-lg-4">
119+
<div class="card h-100">
120+
<div class="card-body">
121+
<h5 class="card-title">🎨 Edit Image with AI</h5>
122+
<p class="card-text">Edit images using artificial intelligence.</p>
123+
<a href="/edit-image-ai.html" class="btn btn-primary">Open</a>
124+
</div>
125+
</div>
126+
</div>
55127
</div>
56128

57129
<div class="text-center mt-5">

web/developers.html

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,96 @@ <h1 class="display-5 fw-bold mb-3">💻 Developers</h1>
5252

5353
<div class="row g-4">
5454

55+
<div class="col-md-6 col-lg-4">
56+
<div class="card h-100">
57+
<div class="card-body">
58+
<h5 class="card-title">📋 Format JSON</h5>
59+
<p class="card-text">Format, validate and minify JSON instantly.</p>
60+
<a href="/json-formatter.html" class="btn btn-primary">Open</a>
61+
</div>
62+
</div>
63+
</div>
64+
<div class="col-md-6 col-lg-4">
65+
<div class="card h-100">
66+
<div class="card-body">
67+
<h5 class="card-title">📊 CSV ↔ JSON</h5>
68+
<p class="card-text">Convert CSV to JSON and JSON to CSV in browser.</p>
69+
<a href="/csv-json.html" class="btn btn-primary">Open</a>
70+
</div>
71+
</div>
72+
</div>
73+
<div class="col-md-6 col-lg-4">
74+
<div class="card h-100">
75+
<div class="card-body">
76+
<h5 class="card-title">🔗 Encode/Decode URL</h5>
77+
<p class="card-text">Encode and decode URLs and parameters.</p>
78+
<a href="/url-encoder.html" class="btn btn-primary">Open</a>
79+
</div>
80+
</div>
81+
</div>
82+
<div class="col-md-6 col-lg-4">
83+
<div class="card h-100">
84+
<div class="card-body">
85+
<h5 class="card-title">🔐 Encode/Decode Base64</h5>
86+
<p class="card-text">Encode and decode text in Base64.</p>
87+
<a href="/base64.html" class="btn btn-primary">Open</a>
88+
</div>
89+
</div>
90+
</div>
91+
<div class="col-md-6 col-lg-4">
92+
<div class="card h-100">
93+
<div class="card-body">
94+
<h5 class="card-title">🏷️ Encode/Decode HTML</h5>
95+
<p class="card-text">Encode and decode HTML entities.</p>
96+
<a href="/html-encoder.html" class="btn btn-primary">Open</a>
97+
</div>
98+
</div>
99+
</div>
100+
<div class="col-md-6 col-lg-4">
101+
<div class="card h-100">
102+
<div class="card-body">
103+
<h5 class="card-title">🔀 Compare Texts</h5>
104+
<p class="card-text">Compare two texts and find differences.</p>
105+
<a href="/diff.html" class="btn btn-primary">Open</a>
106+
</div>
107+
</div>
108+
</div>
109+
<div class="col-md-6 col-lg-4">
110+
<div class="card h-100">
111+
<div class="card-body">
112+
<h5 class="card-title">🔄 YAML ↔ JSON</h5>
113+
<p class="card-text">Convert YAML to JSON and JSON to YAML.</p>
114+
<a href="/yaml-json.html" class="btn btn-primary">Open</a>
115+
</div>
116+
</div>
117+
</div>
118+
<div class="col-md-6 col-lg-4">
119+
<div class="card h-100">
120+
<div class="card-body">
121+
<h5 class="card-title">🔄 XML ↔ JSON</h5>
122+
<p class="card-text">Convert XML to JSON and JSON to XML.</p>
123+
<a href="/xml-json.html" class="btn btn-primary">Open</a>
124+
</div>
125+
</div>
126+
</div>
127+
<div class="col-md-6 col-lg-4">
128+
<div class="card h-100">
129+
<div class="card-body">
130+
<h5 class="card-title">🔄 TOML ↔ JSON</h5>
131+
<p class="card-text">Convert TOML to JSON and JSON to TOML.</p>
132+
<a href="/toml-json.html" class="btn btn-primary">Open</a>
133+
</div>
134+
</div>
135+
</div>
136+
<div class="col-md-6 col-lg-4">
137+
<div class="card h-100">
138+
<div class="card-body">
139+
<h5 class="card-title">#️⃣ Hash Calculator</h5>
140+
<p class="card-text">Calculate MD5, SHA-1, SHA-256 and SHA-512 hashes.</p>
141+
<a href="/hash-calculator.html" class="btn btn-primary">Open</a>
142+
</div>
143+
</div>
144+
</div>
55145
</div>
56146

57147
<div class="text-center mt-5">

web/es/analistas-datos.html

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,60 @@ <h1 class="display-5 fw-bold mb-3">📊 Analistas de Datos</h1>
5252

5353
<div class="row g-4">
5454

55+
<div class="col-md-6 col-lg-4">
56+
<div class="card h-100">
57+
<div class="card-body">
58+
<h5 class="card-title">📋 Formatear JSON</h5>
59+
<p class="card-text">Formatea, valida y minifica JSON al instante.</p>
60+
<a href="/es/json-formatter.html" class="btn btn-primary">Abrir</a>
61+
</div>
62+
</div>
63+
</div>
64+
<div class="col-md-6 col-lg-4">
65+
<div class="card h-100">
66+
<div class="card-body">
67+
<h5 class="card-title">📊 CSV ↔ JSON</h5>
68+
<p class="card-text">Convierte CSV a JSON y JSON a CSV en el navegador.</p>
69+
<a href="/es/csv-json.html" class="btn btn-primary">Abrir</a>
70+
</div>
71+
</div>
72+
</div>
73+
<div class="col-md-6 col-lg-4">
74+
<div class="card h-100">
75+
<div class="card-body">
76+
<h5 class="card-title">📄 Extraer texto de PDF</h5>
77+
<p class="card-text">Extrae texto de archivos PDF en el navegador usando PDF.js.</p>
78+
<a href="/es/pdf-to-text.html" class="btn btn-primary">Abrir</a>
79+
</div>
80+
</div>
81+
</div>
82+
<div class="col-md-6 col-lg-4">
83+
<div class="card h-100">
84+
<div class="card-body">
85+
<h5 class="card-title">🔄 YAML ↔ JSON</h5>
86+
<p class="card-text">Convierte YAML a JSON y JSON a YAML.</p>
87+
<a href="/es/yaml-json.html" class="btn btn-primary">Abrir</a>
88+
</div>
89+
</div>
90+
</div>
91+
<div class="col-md-6 col-lg-4">
92+
<div class="card h-100">
93+
<div class="card-body">
94+
<h5 class="card-title">🔄 XML ↔ JSON</h5>
95+
<p class="card-text">Convierte XML a JSON y JSON a XML.</p>
96+
<a href="/es/xml-json.html" class="btn btn-primary">Abrir</a>
97+
</div>
98+
</div>
99+
</div>
100+
<div class="col-md-6 col-lg-4">
101+
<div class="card h-100">
102+
<div class="card-body">
103+
<h5 class="card-title">🔄 TOML ↔ JSON</h5>
104+
<p class="card-text">Convierte TOML a JSON y JSON a TOML.</p>
105+
<a href="/es/toml-json.html" class="btn btn-primary">Abrir</a>
106+
</div>
107+
</div>
108+
</div>
55109
</div>
56110

57111
<div class="text-center mt-5">

0 commit comments

Comments
 (0)