¿Cómo puedo agregar una función de búsqueda en el sitio a un blog de Jekyll?

4 minutos de lectura

Estoy buscando migrar mi sitio de WordPress a Jekyll y me gustaría mantener la capacidad de tener búsqueda de texto completo para el sitio. La búsqueda de WordPress fue rápida, confiable y bien formateada para coincidir con el tema, y ​​no he encontrado un reemplazo decente.

Hay una solución de complemento que usa indextankpero no estoy interesado en vincular mi búsqueda a través de una API comercial con usuarios que clasifiquen los elementos de búsqueda, solo quiero algo comparable a la búsqueda de WordPress.

También he mirado en el api de google ajaxpero no quiero un cuadro de búsqueda flotante de ajax en el sitio.

Siempre existe la búsqueda de Google para el sitio web, pero no he encontrado que esto sea tan confiable. (No he probado esto desde que me mudé a wordpress hace unos años, así que tal vez me equivoque).

Dado que todas las publicaciones están disponibles en texto sin formato, parece que no debería ser difícil crear un índice para buscarlas cuando se crea el sitio, pero no he encontrado una buena solución. ¿Alguna sugerencia o ejemplo?

  • ¿Está ejecutando esto en su propio servidor web? (es decir, ¿puede ejecutar scripts del lado del servidor?)

    – huon

    13 de abril de 2012 a las 13:58

  • Lo estoy, aunque me interesaría saber si también hubo soluciones que funcionaran para los sitios alojados en github.

    – cboettig

    13 de abril de 2012 a las 18:53

  • Me temo que en GitHub tu mejor opción es una búsqueda de JavaScript, como Tipue Buscar.

    – hombre trabajando

    14 de abril de 2012 a las 13:43

  • @mantawork — Buena sugerencia. No me queda claro cómo Tipue Search genera los datos en tipuesearch_data.js. ¿Se debe ingresar esto manualmente?

    – cboettig

    17 de abril de 2012 a las 1:57

  • Respondiendo a @manatwork: no, no es necesario ingresar los datos manualmente. Alex Pearce tiene un gran publicación de blog aquí que incluye un ejemplo de cómo se pueden crear dinámicamente los datos de su sitio (sugiero reemplazar ‘null’ con ‘false’). El ejemplo crea un archivo .json que se usa para crear una página de etiquetas, pero el código también puede crear un archivo .js que ayuda a devolver los resultados de búsqueda ingresados ​​por el usuario en Tipue.

    – kaidez

    23 mayo 2013 a las 12:50


Jekyll + lunr.js = poderosa búsqueda de texto completo, usando JavaScript en su navegador, para su sitio web estático Jekyll

  • ¡Gracias! ¿Esto carga todo el texto del sitio en la memoria del navegador entonces? Parece que esa solución podría no escalar bien, aunque obviamente se necesita mucho texto para ocupar mucho espacio. Actualmente estoy usando una versión modificada de la búsqueda derivada de Marran: marran.com/tech/jquery-full-text-indexing-on-jekyll

    – cboettig

    6 de marzo de 2013 a las 15:54

  • @cboettig sí, cargará todo el índice en la memoria para realizar búsquedas. Dependería del tamaño de su sitio Jekyll, algo a considerar para sitios grandes. No estoy seguro de cuán “grande” tendría que ser para causar un problema.

    – Ben Smith

    7 de marzo de 2013 a las 9:35

  • Iron.io se está mudando a Lunr.js. ¿Hay buenos ejemplos de sitios que ejecutan bien la experiencia del usuario?

    – Stephen Nguyen

    29/09/2014 a las 18:22


  • @BenSmith ¿Puede funcionar en el servidor? Yo siguiendo tu paso. Funciona cuando uso el servidor jekyll. Pero lo subo al servidor. no funciona

    – Samuel

    15 de febrero de 2015 a las 5:08


  • Lunr.js es un motor de búsqueda estático de texto completo en javascript, no necesita backend ni servidor.

    – Milos Miljković

    9 oct 2016 a las 21:01

Una opción para investigar Búsqueda personalizada de Google.

Mencionaste intentar usar Google en el pasado, pero no estoy seguro si te refieres al cuadro de búsqueda personalizado como descrito aquí. Publicando esto en caso de que ayude.

  • Entiendo que la búsqueda personalizada de Google es solo una envoltura alrededor de la búsqueda del sitio que le permite incrustar los resultados (con anuncios en la versión gratuita) en el cuerpo de su sitio web. Parece que te permiten personalizar un poco el css para que coincida. Esto es útil, pero no es exactamente lo que estoy buscando.

    – cboettig

    18 de abril de 2012 a las 17:26

  • Estoy trabajando para poner en marcha mi sitio jekyll también. Si descubro algo más, volveré a publicar aquí.

    – Alan W. Smith

    18 de abril de 2012 a las 22:09

  • Después de probar tanto la solución lunr.js de Ben (arriba) como la solución menos intensiva en memoria de Marran búsqueda de derivación rápida Me he decidido a retroceder a esta simple búsqueda en Google. Cuando necesito algo diferente, solo hago grep contra mi copia de repositorio 😉

    – cboettig

    3 de enero de 2014 a las 6:44

https://github.com/flaptor/indextank-jquery

  • Además, debe tener una cuenta en Search SaaS. A indexden.com Puedes conseguirlo gratis.

    – Iaroslav Vorozhko

    16 de junio de 2012 a las 9:52

https://github.com/chinchang/super-search/

Esto no requiere ninguna configuración adicional. Simplemente conecte y reproduzca la biblioteca que funciona en las fuentes RSS de su blog jekyll con una interfaz de usuario de búsqueda ordenada en la página.

¿Ha sido útil esta solución?