Hudocs incluye un motor de búsqueda del lado del cliente basado en FlexSearch. No requiere servicios externos, cuentas ni claves de API, y permite buscar en el contenido de la documentación desde el navegador.
Funcionamiento #
Generación del índice: durante
hugo build, Hugo genera un archivo JSON minificado con el índice de búsqueda para cada idioma y versión de documentación configurada bajojson/<idioma>.<sección>.<versión>.index.json(ojson/<idioma>.<sección>.index.jsonen modo monoversión).Carga bajo demanda: el índice se descarga cuando el usuario abre el modal de búsqueda, por lo que no se carga durante la carga inicial del sitio.
Búsqueda en memoria: FlexSearch carga el índice en la memoria del navegador y lo utiliza para consultar títulos, resúmenes, secciones padre y URLs.
Uso del buscador #
Los lectores pueden interactuar con el buscador mediante los siguientes controles:
- Botón o atajo de búsqueda: abre el modal de búsqueda haciendo clic en el botón de la cabecera, pulsando Ctrl K (Cmd K en macOS), o pulsando / cuando no se esté escribiendo en un campo de formulario.
- Navegación por teclado:
- ↑ o ↓ cambia la selección entre los resultados.
- Enter abre el artículo seleccionado.
- Esc cierra el modal de búsqueda.
Estructura del índice de búsqueda #
El índice se genera a partir de la plantilla assets/json/index.json como un array compacto de tuplas:
[
[
0,
"/es/docs/latest/getting-started/installation/",
"Instalación",
"Primeros Pasos",
"Cómo instalar y configurar Hudocs.",
"Contenido del artículo..."
]
]
Metadatos de los resultados #
Cada elemento de la tupla representa:
- Índice 0 (
id): identificador numérico del documento. - Índice 1 (
url): URL relativa del artículo. - Índice 2 (
title): título del documento. - Índice 3 (
parent): título de la sección padre. - Índice 4 (
summary): extracto del contenido utilizado para mostrar coincidencias. - Índice 5 (
content): texto limpio del cuerpo utilizado para la indexación de texto completo.
Soporte multilingüe #
Hudocs genera un índice independiente para cada idioma y versión configurada. Las búsquedas realizadas desde una versión localizada utilizan el índice correspondiente a ese idioma y versión. Por ejemplo:
/json/en.docs.latest.index.<hash>.json
/json/es.docs.latest.index.<hash>.json
Por lo tanto, una búsqueda realizada en español devuelve documentos incluidos en el índice español.