Skip to content

Commit 65a112e

Browse files
committed
💚 todo en español
1 parent fa48ccd commit 65a112e

4 files changed

Lines changed: 35 additions & 34 deletions

File tree

‎src/componentes.js‎

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77

88
import { marked } from 'marked';
99

10-
function renderMarkdown(texto) {
10+
function renderizarMarkdown(texto) {
1111
if (!texto) return '';
1212
return marked.parse(String(texto), { breaks: true });
1313
}
1414

15-
function escapeHtml(texto) {
15+
function escaparHtml(texto) {
1616
return String(texto)
1717
.replace(/&/g, '&')
1818
.replace(/</g, '&lt;')
@@ -40,7 +40,7 @@ function renderizarArchivo(archivo) {
4040
if (!archivo) return '';
4141
const url = archivo.url || archivo.file || archivo.download_url || '';
4242
const nombre = archivo.name || archivo.original_name || 'Archivo';
43-
if (!url) return escapeHtml(nombre);
43+
if (!url) return escaparHtml(nombre);
4444
const esImagen = archivo.is_image || archivo.image || false;
4545
if (esImagen) {
4646
return `<img src="${url}" alt="${escapeHtml(nombre)}" class="campo-imagen">`;
@@ -53,15 +53,15 @@ function renderizarValorCampo(valor, campo) {
5353

5454
switch (campo.type) {
5555
case 'long_text':
56-
return renderMarkdown(valor);
56+
return renderizarMarkdown(valor);
5757
case 'text':
58-
return escapeHtml(valor);
58+
return escaparHtml(valor);
5959
case 'url':
60-
return `<a href="${escapeHtml(valor)}" target="_blank" rel="noreferrer">${escapeHtml(valor)}</a>`;
60+
return `<a href="${escaparHtml(valor)}" target="_blank" rel="noreferrer">${escaparHtml(valor)}</a>`;
6161
case 'email':
62-
return `<a href="mailto:${escapeHtml(valor)}">${escapeHtml(valor)}</a>`;
62+
return `<a href="mailto:${escaparHtml(valor)}">${escaparHtml(valor)}</a>`;
6363
case 'phone_number':
64-
return `<a href="tel:${escapeHtml(valor)}">${escapeHtml(valor)}</a>`;
64+
return `<a href="tel:${escaparHtml(valor)}">${escaparHtml(valor)}</a>`;
6565
case 'boolean':
6666
return `<span class="campo-boolean ${valor ? 'activo' : 'inactivo'}">${valor ? 'SĂ­' : 'No'}</span>`;
6767
case 'date':
@@ -70,10 +70,10 @@ function renderizarValorCampo(valor, campo) {
7070
case 'last_modified':
7171
return formatearFecha(valor);
7272
case 'single_select':
73-
return `<span class="campo-chip">${escapeHtml(normalizarEtiqueta(valor))}</span>`;
73+
return `<span class="campo-chip">${escaparHtml(normalizarEtiqueta(valor))}</span>`;
7474
case 'multiple_select':
7575
return `<div class="campo-chips">${(valor || [])
76-
.map((item) => `<span class="campo-chip">${escapeHtml(normalizarEtiqueta(item))}</span>`)
76+
.map((item) => `<span class="campo-chip">${escaparHtml(normalizarEtiqueta(item))}</span>`)
7777
.join('')}</div>`;
7878
case 'file':
7979
case 'image':
@@ -84,17 +84,17 @@ function renderizarValorCampo(valor, campo) {
8484
.join('')}</div>`;
8585
case 'link_row':
8686
return (valor || [])
87-
.map((item) => escapeHtml(normalizarEtiqueta(item)))
87+
.map((item) => escaparHtml(normalizarEtiqueta(item)))
8888
.filter(Boolean)
8989
.join(', ');
9090
default:
9191
if (Array.isArray(valor)) {
92-
return valor.map((item) => escapeHtml(normalizarEtiqueta(item))).join(', ');
92+
return valor.map((item) => escaparHtml(normalizarEtiqueta(item))).join(', ');
9393
}
9494
if (typeof valor === 'object') {
95-
return escapeHtml(normalizarEtiqueta(valor) || JSON.stringify(valor));
95+
return escaparHtml(normalizarEtiqueta(valor) || JSON.stringify(valor));
9696
}
97-
return escapeHtml(valor);
97+
return escaparHtml(valor);
9898
}
9999
}
100100

@@ -110,7 +110,7 @@ function renderizarCamposAutomaticos(registro, campos, camposBase = []) {
110110
if (!contenido) return '';
111111
return `
112112
<div class="campo-item">
113-
<div class="campo-etiqueta">${escapeHtml(campo.name)}</div>
113+
<div class="campo-etiqueta">${escaparHtml(campo.name)}</div>
114114
<div class="campo-valor">${contenido}</div>
115115
</div>
116116
`;
@@ -156,7 +156,7 @@ export function crearTarjetaProyecto(datos) {
156156
html += `<h3 class="tarjeta-titulo">${datos.titulo}</h3>`;
157157

158158
if (datos.descripcion) {
159-
html += `<div class="tarjeta-descripcion contenido-markdown">${renderMarkdown(datos.descripcion)}</div>`;
159+
html += `<div class="tarjeta-descripcion contenido-markdown">${renderizarMarkdown(datos.descripcion)}</div>`;
160160
}
161161

162162
// Agregar enlace si existe
@@ -198,7 +198,7 @@ export function crearListaArticulos(articulos) {
198198
html += `<img src="${articulo.imagen}" alt="${articulo.titulo}" class="articulo-imagen">`;
199199
}
200200

201-
html += `<div class="articulo-contenido contenido-markdown">${renderMarkdown(articulo.contenido)}</div>`;
201+
html += `<div class="articulo-contenido contenido-markdown">${renderizarMarkdown(articulo.contenido)}</div>`;
202202
html += '</article>';
203203
});
204204

@@ -311,7 +311,7 @@ export function crearSeccionCMS(datos) {
311311
}
312312

313313
if (datos.contenido) {
314-
html += `<div class="seccion-contenido contenido-markdown">${renderMarkdown(datos.contenido)}</div>`;
314+
html += `<div class="seccion-contenido contenido-markdown">${renderizarMarkdown(datos.contenido)}</div>`;
315315
}
316316

317317
div.innerHTML = html;

‎src/config.js‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ export const SITIO = {
2323
// Tu nombre o nombre de la organizaciĂłn
2424
autor: 'Mi Nombre',
2525

26-
// El URL donde estarĂĄ tu sitio publicado
27-
// Si es en GitHub Pages: https://tuusuario.github.io/nombre-repositorio
28-
urlSitio: 'https://ejemplo.com',
26+
// El URL se obtiene automĂĄticamente desde vite.config.js
27+
// No necesitas cambiar esto aquĂ­
28+
urlSitio: __URL_SITIO__ || 'https://ejemplo.com',
2929

3030
// Idioma del sitio (ISO 639-1)
3131
idioma: 'es',

‎src/programa.js‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { obtenerCamposTabla, obtenerRegistrosTabla } from './baserow.js';
44
import { crearSeccionCMS, crearTarjetaProyecto } from './componentes.js';
55

66
let cargandoProyectos = false;
7-
let camposTablaCache = null;
7+
let camposTablaMemo = null;
88
let contenedorProyectos = null;
99

1010
// =====================================================
@@ -24,7 +24,7 @@ inicializarSitio();
2424
* Actualiza los metadatos del sitio (tĂ­tulo, descripciĂłn, etc.)
2525
* Esto es importante para SEO y redes sociales
2626
*/
27-
function actualizarMetadatos(datosSitio) {
27+
function actualizarMetadatosDelSitio(datosSitio) {
2828
const datos = datosSitio || SITIO;
2929
// Actualizar el título en la pestaña del navegador
3030
document.title = datos.titulo;
@@ -84,8 +84,8 @@ async function cargarYMostrarProyectos() {
8484

8585
try {
8686
const proyectos = AVANZADO.modoEstatico ? await obtenerProyectosEstaticos() : await obtenerProyectosConCache();
87-
if (!AVANZADO.modoEstatico && !camposTablaCache) {
88-
camposTablaCache = await obtenerCamposTabla(TABLA_PROYECTOS.id);
87+
if (!AVANZADO.modoEstatico && !camposTablaMemo) {
88+
camposTablaMemo = await obtenerCamposTabla(TABLA_PROYECTOS.id);
8989
}
9090

9191
// Remover el mensaje de carga
@@ -112,7 +112,7 @@ async function cargarYMostrarProyectos() {
112112
imagen: proyecto[TABLA_PROYECTOS.campos.imagen],
113113
enlace: proyecto[TABLA_PROYECTOS.campos.enlace],
114114
registro: proyecto,
115-
campos: camposTablaCache,
115+
campos: camposTablaMemo,
116116
camposBase: [
117117
TABLA_PROYECTOS.campos.titulo,
118118
TABLA_PROYECTOS.campos.descripcion,
@@ -147,7 +147,7 @@ async function cargarYMostrarProyectos() {
147147
async function inicializarSitio() {
148148
const datosSitio = await cargarDatosSitio();
149149
construirSecciones(datosSitio);
150-
actualizarMetadatos(datosSitio);
150+
actualizarMetadatosDelSitio(datosSitio);
151151
cargarYMostrarProyectos();
152152
}
153153

‎vite.config.js‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ import sitemap from 'vite-plugin-sitemap';
99
* - Si es en un repositorio: base: '/nombre-repositorio/'
1010
*/
1111

12-
// Detectar el entorno
13-
const isProd = process.env.NODE_ENV === 'production';
14-
15-
// URL del sitio (cambiar en config.js)
16-
const hostname = 'https://ejemplo.com';
12+
// ⭐ URL DEL SITIO - CAMBIAR AQUÍ
13+
const urlSitio = 'https://enflujo.github.io/enflujo-documento-al-dato';
1714

1815
export default defineConfig({
1916
// IMPORTANTE: Descomenta y ajusta segĂșn donde publiques en GitHub Pages
20-
// base: '/mi-proyecto/', // Para proyecto en repositorio
17+
base: '/enflujo-documento-al-dato/', // Para proyecto en repositorio
18+
19+
define: {
20+
__URL_SITIO__: JSON.stringify(urlSitio),
21+
},
2122

2223
server: {
2324
port: 3000,
@@ -40,7 +41,7 @@ export default defineConfig({
4041
},
4142
plugins: [
4243
sitemap({
43-
hostname,
44+
hostname: urlSitio,
4445
outDir: 'dist',
4546
robots: [
4647
{

0 commit comments

Comments
 (0)