# Actualizar Nexo Educa & Digital

Haz una copia de la carpeta antes de editar. Usa el Bloc de notas de Windows o un editor de texto y guarda con codificación UTF-8. Conserva las comillas, comas y corchetes de los archivos.

## Cambiar el número, los horarios o la portada
Abre `js/config.js`.

- `whatsapp`: código de país y número, únicamente dígitos. Ejemplo actual: `50250505252`.
- `telefono`: número de llamadas con signo +. Ejemplo: `+50250505252`.
- `telefonoVisible`: el número con espacios para que se lea fácilmente.
- `nombre`, `eslogan`, `tituloPortada` y `textoPortada`: información principal.
- `horarios`: una lista vacía `[]` oculta la tabla de horas. Se muestra un enlace de consulta. Cuando los horarios estén confirmados, utiliza el ejemplo comentado dentro del archivo.
- `modalidad`: déjala vacía hasta confirmar cómo se presta la atención.
- `redes`: agrega solamente direcciones reales y completas que empiecen por `https://`.

Al recargar, el sitio interactivo usa los nuevos datos. El contenido HTML inicial y sus metadatos se pueden sincronizar con la herramienta opcional descrita más adelante. Si cambias la marca, revisa también los títulos y descripciones en los archivos HTML.

## Modificar textos y talleres
Abre `js/contenido.js`. El archivo separa categorías, servicios, talleres y preguntas frecuentes. Cambia nombres y descripciones sin alterar los `id` existentes; así conservas los enlaces.

Para agregar un servicio nuevo:
1. Copia un objeto de servicio dentro de la lista `services`, asigna un `id` nuevo y la categoría correspondiente.
2. Agrega su imagen local y coloca la ruta en `image`.
3. Duplica un HTML de la carpeta `servicios`, renómbralo igual que el `id`, cambia `data-id` en la etiqueta `<body>` y actualiza título y descripción.
4. Comprueba el enlace y la imagen antes de publicar. La categoría lo mostrará automáticamente desde los datos.

## Reemplazar muestras
Abre `js/muestras.js`. Para cada muestra puedes cambiar `titulo`, `tipo`, `grupo`, `imagen` y `etiqueta`.

Copia tus nuevas imágenes a `assets/muestras/` y coloca su nombre en el archivo. Recomendación: WebP o JPG de unos 1200 px de ancho, optimizado para web. Mantén el texto «Muestra ilustrativa» si el ejemplo es demostrativo. Para trabajos reales, utiliza imágenes y datos de clientes solamente con autorización.

Los grupos de filtros actuales son `academico`, `docentes`, `digital` y `aprendizaje`.

## Ilustraciones de las cuatro áreas
Cada área tiene tres tamaños WebP, identificados como 640, 960 y 1254. La portada usa 720, 1200 y 1536. Si sustituyes estos recursos, conserva los nombres de las tres versiones para que la selección adaptable siga funcionando. Las ilustraciones de servicios son SVG originales y se pueden ampliar sin pixelarse.

## Configurar la URL pública y actualizar el HTML inicial
**Esta sección es opcional para visualizar o usar el sitio.** Ayuda a mantener el HTML inicial, la vista previa al compartir y los buscadores.

1. Después de publicar, copia tu dirección real HTTPS de Cloudflare en `urlPublica`, dentro de `js/config.js`.
2. Si tienes Node.js instalado, abre una terminal en esta carpeta y ejecuta:

   `node herramientas/actualizar-html.cjs`

3. La herramienta actualiza el HTML inicial de todas las páginas, convierte `og:image` en una dirección absoluta y crea `sitemap.xml`, canonical y `og:url` usando esa URL real. No necesita instalar paquetes y no sube nada a Internet.
4. Vuelve a subir el sitio completo a Cloudflare.

Alternativa manual sin Node.js: en los HTML, cambia la etiqueta `og:image` para que apunte a la dirección pública real de `assets/compartir-menu.jpg`. Por ejemplo, une TU dirección real, una barra y `assets/compartir-menu.jpg`. No uses un dominio ficticio. La actualización JavaScript del metadato no sustituye su valor estático para los rastreadores de WhatsApp.

Para cambios importantes de nombre comercial, revisa manualmente `<title>`, descripción y etiquetas `og:title`/`og:description`, además de `config.js`.

## Publicar una actualización
Sube otra vez el sitio completo al mismo proyecto de Cloudflare mediante «Crear un nuevo despliegue», producción. No borres la carpeta `assets`. Después de publicar, actualiza el navegador y verifica el cambio. Si una imagen conserva la versión anterior, cámbiale el nombre y actualiza su ruta o espera a que venza su caché.

## Movimiento
El botón «Pausar movimiento» detiene las animaciones. Se recuerda solamente esa preferencia en el navegador. El sitio también respeta la opción del sistema para reducir movimiento; no guarda consultas ni datos personales localmente.

## Formularios por servicio
Los 18 servicios tienen un formulario propio en su página. «Consultar este servicio», «Pedir cotización» y los accesos de WhatsApp de esa página llevan al formulario. El cliente completa sus datos y las preguntas del servicio; después revisa el mensaje antes de continuar a WhatsApp. Puede volver a corregir sin perder lo que escribió.

En la página general de contacto, el formulario cambia sus preguntas al seleccionar un servicio. Para editar las preguntas y opciones, abre `js/formularios.js` y busca el identificador del servicio dentro de `schemas`. Cada campo tiene `label` (título), `options` (opciones si es una lista), `type` y `required`. Conserva los identificadores de campos para mantener la preparación del mensaje. Los datos comunes son nombre, descripción de la necesidad, fecha deseada opcional, teléfono opcional y preferencia de respuesta. Si se elige llamada, el teléfono es obligatorio.

La fecha y la modalidad indicadas por el cliente expresan una preferencia; se confirman al conversar. Los formularios no almacenan datos ni envían el mensaje automáticamente.
