Help Widget + Wiki EN
Help Widget + Wiki EN
User value
Usuario de CreaRack Pro tiene ayuda contextual sin salir de la app. Desde las 8 páginas principales (Dashboard, Rack Editor, Observatory, Wireless, UPS, Signage, Terminal, Maps) abre panel lateral con 2 modos:
- Ask: pregunta en lenguaje natural → respuesta sintetizada por Gemini con fuentes.
- Browse: artículos de la wiki por categoría mediante popovers.
Panel redimensionable (ancho persistido en localStorage). Wiki completa en inglés: elimina barrera de idioma para usuarios no hispanohablantes.
Cómo usarla
Botones Guide y Help en el header persistente de cada módulo. Al pulsar Help se abre panel lateral desde la derecha. Pestaña Ask: pregunta, fuentes son enlaces que abren el artículo en el panel. Pestaña Browse: categorías; clic despliega popover con artículos. Ancho se ajusta arrastrando borde izquierdo.
Implementación
Widget como componente Alpine.js (helpWidget) en static/js/alpine-components.js. Toda interacción usa data-action y eventos custom (no expresiones Alpine inline) para cumplir política CSP del build production. toggleHelpPanel() en static/js/base.js expuesto en window.
Backend: 3 endpoints en core/api_help.py bajo /api/help/:
POST /api/help/ask— reenvía a toolbib_askdel workspace MCP.GET /api/help/wiki— listado de artículos por categoría.GET /api/help/article— contenido víaread_guideMCP + conversor Markdown→HTML ligero.
Wiki en inglés (wiki-en/): 52 artículos pre-traducidos por Gemini Flash mediante script de build translate-wiki.mjs. Mapeo de títulos desde GET /api/biblioteca/wiki-titles en workspace. Ruta wiki/ se sustituye por wiki-en/ en cliente. Acceso server-to-server vía CF Access bypass para prefijo /api/biblioteca/*.
Decisiones
- Traducción runtime descartada (commit
628365d) en favor de archivos pre-traducidos en build. Razón: latencia y coste; traducir on-the-fly era lento e impredecible. Archivos estáticoswiki-en/se generan una vez y se sirven directamente. - Expresiones Alpine inline eliminadas (
@click,x-html) tras detectar que build CSP las bloqueaba silenciosamente (2407efa,59b2ec3). Todo migró adata-action+ custom events, patrón ya establecido. - Conversor Markdown→HTML en servidor (no librería frontend) para mantener bundle pequeño.
Commits relacionados
| Hash | Descripción |
|---|---|
a2ae06f | feat: Help Widget — native help system with Gemini |
2407efa | fix: Help Widget fully CSP-safe |
76115f9 | fix: Help Wiki muestra contenido inline — /api/help/article |
628365d | feat: remove runtime Gemini translation — pre-translated |
5c10c8b | docs: v1.0.56 — Help Widget + Wiki EN (commit raíz) |
Véase también
- [[concept—biblioteca—supercontexto]]