Fait avec Chinaski

search.tt

search.tt est la page de recherche publique d'un site Chinaski, une recherche thémée et autonome construite par langue, avec la recherche s'exécutant entièrement dans le navigateur du visiteur. Aucun traitement serveur, aucun service externe : la page récupère un index JSON généré et le filtre localement.

Ce qu'elle rend

  • Un formulaire de recherche (autofocus, role="search") : le paramètre q lu/écrit.
  • Une région de résultats mise à jour en direct (aria-live="polite" annoncée aux utilisateurs de lecteurs d'écran), avec le nombre de résultats et des entrées lien-titre/extrait, chacune stylée par le CSS de recherche inline du thème par défaut.
  • Le chrome standard du site (partials d'en-tête et de pied de page) inclus comme d'habitude, avec la page explicitement marquée noindex dans son <head> (une page utilitaire : les pages de recherche n'apparaissent jamais dans les sitemaps ni dans les résultats de recherche).

Comportement de la recherche

  • Source de données : <url_base>/search-index.json, généré par langue au moment du build (une entrée par page/post publié de cette langue, titre, URL, extrait). La page récupère ce fichier la première fois qu'une requête s'exécute et le réutilise en mémoire ensuite.
  • Correspondance : correspondance de sous-chaînes sur les titres et les extraits (insensibilité à la casse appliquée localement) ; la liste de résultats établit des liens à travers les éléments de résultat du thème avec un extrait sous chaque correspondance.
  • États vides : texte « No results for … » pour zéro correspondance ; « Search index unavailable. » quand la récupération de l'index échoue entièrement.
  • Partage des requêtes: soumettre une recherche réécrit l'URL pour inclure ?q=<query>, de sorte que coller une URL de recherche reproduit les résultats au chargement (le q initial est honoré quand la page se rend).
  • Échec en douceur : la ligne de comptage (« N result(s) for … ») plus les messages sans correspondance/sans index se rendent à l'intérieur de la région de résultats ; le reste de la page (en-tête/pied de page, navigation) n'est pas affecté.

Comportement par langue

Les pages de recherche se construisent par langue : chaque langue a sa propre page /search/ et son propre <url_base>/search-index.json, de sorte que la recherche d'une langue ne fait jamais remonter le contenu d'une autre. La politique des résultats porte les mêmes implications de cache (un build frais régénère l'index ; la copie en cache s'affiche jusqu'à la prochaine récupération).

Personnalisation du thème

Le style inline de la page de recherche est livré dans le template. Les thèmes qui veulent des visuels différents remplacent le fichier search.tt lui-même ; l'INCLUDE de l'en-tête/pied de page standard et de _<head> reste justifiable sous la même structure de fichiers de template ; avec les changements de feuille de style de recherche livrés dans votre thème tandis que le format de l'index est figé.

Lisez ce site en