plasmoid
ES

Búsqueda

plasmoid incluye búsqueda de texto completo sin servidor y sin framework: un índice estático precompilado más un diminuto cliente de JavaScript puro.

Cómo funciona

En tiempo de compilación, cada página renderizada aporta su título y su texto a un índice estático fragmentado que se escribe en /search/:

search/
  manifest.json     # shard map + metadata
  docs.json         # per-document titles and URLs
  a.json  b.json …  # postings sharded by first character of the term

Cuando un lector abre la búsqueda, el cliente carga de forma diferida el manifiesto y la lista de documentos, y luego obtiene solo los fragmentos correspondientes a los términos que se están escribiendo. Las cargas normales de página nunca descargan el índice, así que la búsqueda no añade ningún peso a la lectura.

Por qué fragmentado

Un índice monolítico único es justamente lo que termina volviéndose lento de descargar a medida que un sitio crece. Fragmentar por el primer carácter de cada término significa que una consulta trae una pequeña porción del índice en lugar de todo entero: la búsqueda se mantiene rápida a medida que crece la documentación.

El tokenizador

La indexación y la consulta deben coincidir en cómo el texto se convierte en tokens, así que las reglas del tokenizador son intencionadamente simples y se reflejan exactamente entre el indexador en Rust y el cliente en JS: secuencias alfanuméricas ASCII, en minúsculas, de longitud ≥ 2, fragmentadas por el primer carácter.

Teclado y accesibilidad

El cuadro de búsqueda es un combobox en regla: las teclas de flecha recorren los resultados, Enter abre el resaltado y Escape cierra la lista. Es usable desde el teclado y se anuncia correctamente a las tecnologías de asistencia.

¿Sin JavaScript?

La búsqueda es la única función que necesita JavaScript. Todo lo demás —la lectura, la navegación, la tabla de contenidos, la preferencia de tema— funciona con los scripts desactivados.

Última actualización: 2026-06-23