Busca
Os sites construídos incluem uma página de busca funcional em /search/, gerada por idioma no momento do build, respaldada por um índice JSON estático e pesquisada inteiramente no navegador do visitante. Esta página cobre como funciona e como ela se mantém atualizada.
Como funciona
- O builder escreve um índice de busca:
<language>/search-index.json, contendo toda página e post publicado naquele idioma: o tipo da entrada, o título, a URL absoluta e um excerpt (o excerpt do autor quando fornecido; caso contrário, um resumo de 160 caracteres gerado a partir do corpo). - A página de busca (renderizada a partir de
search.tt, com o header e o footer do seu tema) carrega esse índice no cliente e casa a consultaq=do visitante localmente. Sem ida ao servidor, sem backend de busca, nada para configurar.
O que é pesquisável
- Páginas e posts publicados, por idioma. Cada entrada do índice carrega o título, a URL do resultado e o excerpt. Então o que corresponde é exatamente o que um visitante lê na listagem.
- Os índices são delimitados por idioma: uma busca sob o
/search/de um idioma nunca revela resultados em outro idioma (consistente com o modelo de saída por idioma). - Os excerpts vêm do próprio campo de excerpt do autor quando definido, senão do resumo gerado automaticamente. O mesmo texto usado em listagens e feeds, então as prévias da busca correspondem ao que um clique mostra.
Sempre atualizada
O índice é regenerado a cada build. Builds incrementais também. Então os resultados da busca refletem exatamente o conteúdo que foi promovido por último. Publique, reconstrua, e a busca o vê.
Detalhes da página utilitária
- As páginas
/search/são marcadas como noindex pelo builder, então nunca aparecem em sitemaps ou listagens de crawlers. - O service worker (PWA) também pré-cacheia a página de busca por idioma, então a busca renderiza do cache offline: casando consultas contra o índice incluído.
- O formulário de busca do header aponta para a mesma URL
/search/com um parâmetroq=, em todos os vhosts de idioma.
Buscas no lado do CMS (um sistema relacionado, mas separado)
A área administrativa tem suas próprias superfícies de busca. A busca de blocks da Library, a busca da listagem de documentos e o endpoint /api/search da API para scripts. Mas essas pesquisam o banco de dados e são administrativas. A página de busca pública é a construída descrita aqui.