OpenSearch en tu blog

En pocas palabras, OpenSearch es el estándar que utilizan tanto Firefox como MSIE para agregar motores de búsqueda (“proveedores de búsqueda” según Microsoft)… sí, esos que aparecen arriba a la derecha, justamente de esos estamos hablando.

La versión larga… bueno, la pueden [ver en la Wikipedia->OpenSearch@wiki] (donde más bien encontrarán una versión “media”) o en el sitio oficial de esta especificación (ahí sí está la versión larga).

OpenSearch Autodiscovery Como todos saben (¿qué, acaso tú no?), una de las gracias de OpenSearch es que permite agregar motores de búsqueda de forma rematadamente fácil, de hecho, en este mismo momento…

  • si estás ocupando Firefox (versión 2 o mejor), deberías notar que el cuadro alrededor del ícono del motor de búsqueda que tengas seleccionado actualmente tiene un tenue borde celeste
  • si estás ocupando Internet Explorer (versión 7, o mejor ocupa Firefox), deberías notar que el fondo de la flecha que aparece al lado de la lupa está naranjo

Y si haces click allí, debería aparecerte la opción de agregar la búsqueda en yukei.net

Lógicamente, ahora surge la pregunta: ooooh… pero ¿cómo lo hace?

El documento de descripción OpenSearch

El primer paso es crear un archivo que contendrá la información necesaria para agregar tu sitio a los motores de búsqueda del navegador —se trata de un documento XML bastante sencillo, para el cual no necesitarás mucho más que recordar la URL de tu blog.

Pongo mi propio archivo como ejemplo:

<?xml version="1.0" encoding="UTF-8"?>
 <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
   <ShortName>yukei.net</ShortName>
   <Description>Tecnologias de internet y herramientas para weblogs</Description>
   <Tags>internet weblogs wordpress software tecnologia</Tags>
   <Url type="text/html" method="get" 
        template="http://www.yukei.net/search/{searchTerms}"/>
   <Image width="16" height="16">http://www.yukei.net/favicon.ico</Image>
   <Image width="64" height="64">http://www.yukei.net/yukei-favicon.png</Image>
 </OpenSearchDescription>

Ahora, a explicar algunas cosas:

  • Las dos primeras líneas son necesarias y deben figurar tal cual… “a menos que sepas muy bien lo que estás haciendo”
  • En ShortName va el nombre que se mostrará en el listado de motores de búsqueda del navegador… generalmente es buena idea poner nada más que el nombre del sitio
  • Description debe aparecer, puede tener hasta 1024 caracteres. Tags, por otra parte, no es necesaria; puede tener hasta 256 caracteres, las tags se separan con espacios.
  • Url es la parte interesante, es absolutamente necesaria puesto que indica cómo utilizar el motor de búsqueda. En este caso la estructura ha resultado bastante sencilla, pero es necesario poner atención a los atributos de este elemento.
    • En primer lugar, el type es requerido y debe estar bien, indicando el MIME type correcto para cada caso. En el nuestro es text/html porque entregaremos los resultados a través de una página web que es servida como HTML (a pesar de que valide [¿?] como XHTML), si estás sirviendo XHTML entonces type="application/xhtml+xml". Otra posibilidad es entregar los resultados a través de RSS o Atom, lo que tiene su gracia, pero WordPress (hasta donde yo sé) no entrega resultados de búsqueda en RSS ni Atom. De todos modos, si tu intención es un plugin de búsqueda para Firefox o Explorer, entonces debes servir los resultados como HTML o XHTML.
    • El method sirve para indicar si se debe indicar una petición get o post para obtener los resultados. MSIE no soporta peticiones post; si usas WordPress, debes especificar get
    • Finalmente, el atributo template indica la forma en que se construirá la URL de la consulta. En el caso de WordPress, puede ser de la forma http://www.tublog.com/search/{searchTerms} o http://www.tublog.com/index.php?s={searchTerms}, que en el fondo es lo mismo —la única diferencia es la forma en que se le presentará la URL de la consulta al usuario

    Un par de cosas más sobre Url: si deseas servir resultados en más de un tipo (por ejemplo, HTML, RSS y Atom), la puedes especificar todas las veces que sea necesario. Además, si quieres entregar sugerencias de búsqueda (como Google), puedes especificar la URL junto con el type="application/x-suggestions-json"

  • La Image corresponde a tu favicon. Es opcional, al igual que sus atributos.

¿Listo? ¿Muy difícil? También puedes utilizar alguno de estos generadores automáticos.

¿Ahora sí? Bien. ¿Y ahora qué? Ahora…

Autodiscovery

No, no tiene nada que ver con los programas de autos del Discovery Channel, es para que Firefox/MSIE detecte automáticamente el plugin (o complemento) de búsqueda y lo muestre como señalé antes. ¿Cómo? Fácil, agregando esta línea al <head /> de tus páginas:

<link rel="search" type="application/opensearchdescription+xml" 
title="yukei.net" href="http://www.yukei.net/opensearch.xml">

Y cambiando el title y href por lo que corresponda… y el title debe ser igual al ShortName del plugin.