Feito com Chinaski

search.tt

search.tt é a página de busca pública de um site Chinaski : uma busca tematizada e autocontida construída por idioma, com a busca executando inteiramente no navegador do visitante. Nenhum processamento de servidor, nenhum serviço externo: a página busca um índice JSON gerado e o filtra localmente.

O que renderiza

  • Um formulário de busca (autofocado, role="search"), com o parâmetro lido/escrito q.
  • Uma região de resultados com atualização ao vivo (aria-live="polite" anunciada aos usuários de leitores de tela), com contagem de resultados e entradas de título-link/excerto, cada uma estilizada pelo CSS de busca inline do tema padrão.
  • O chrome padrão do site : partials de header e rodapé : incluídos como usual, com a página explicitamente marcada como noindex no seu <head> (uma página de utilidade: páginas de busca nunca aparecem em sitemaps ou resultados de busca).

Como a busca se comporta

  • Fonte de dados: <url_base>/search-index.json, gerado por idioma em tempo de build (uma entrada por página/post publicado daquele idioma : título, URL, excerpt). A página busca este arquivo na primeira vez em que uma query executa e o reutiliza na memória depois.
  • Correspondência: correspondência de substring em títulos e excertos (insensibilidade a caixa aplicada localmente) : a lista de resultados aponta através dos itens de resultado do tema com um excerto sob cada acerto.
  • Estados vazios: texto “No results for …” para zero correspondências; “Search index unavailable.” quando a busca do índice falha inteiramente.
  • Compartilhamento de queries : submeter uma busca reescreve a URL para incluir ?q=<query>, de modo que colar uma URL de busca reproduz os resultados no load (o q inicial é honrado quando a página renderiza).
  • Falha graciosamente: a linha de contagem (“N result(s) for …”) mais as mensagens de sem-acertos/sem-índice renderizam dentro da região de resultados; o resto da página (header/rodapé, navegação) fica inafetado.

Comportamento por idioma

Páginas de busca constroem por idioma: cada idioma tem sua própria página /search/ e seu próprio <url_base>/search-index.json, de modo que a busca de um idioma nunca expõe o conteúdo de outro. A política de resultados carrega as mesmas implicações de cache (um build fresco regenera o índice; a cópia cacheada mostra até a próxima busca).

Personalização de tema

O estilo inline da página de busca embarca no template. Temas que querem visuais diferentes sobrescrevem o próprio arquivo search.tt : o INCLUDE do header/rodapé padrão e de _head permanece justificável sob a mesma estrutura de arquivo de template; com as mudanças de stylesheet de busca embarcadas no seu tema enquanto o formato do índice é fixo.

Leia este site em