P PasteCode
Playbook

Prompt-to-PR: Adicionar Pesquisa Pagefind a um Site Astro

O SOP completo para adicionar pesquisa estática, sem backend, a um site Astro com Pagefind — do primeiro prompt à descrição do PR.

CursorClaude Code AstroTypeScript
.md .json Dificuldade: Fácil Atualizado 8 de jun. de 2026

Um playbook completo: requisito, primeiro prompt, mudanças esperadas, revisão, testes, falhas prováveis, prompt de correção e a descrição do PR.

1. Requisito

Adicionar pesquisa de texto completo a um site Astro estático sem servidor e sem banco de dados.

2. Primeiro Prompt

First Prompt
Add Pagefind search to this Astro static site.
- Add `pagefind` as a devDependency.
- Update the build script to run `astro build && pagefind --site dist`.
- Create a `/search` page that mounts Pagefind UI from `/pagefind/pagefind-ui.js`.
- Mark the main article body with `data-pagefind-body` and add
`data-pagefind-ignore` to nav/footer.
- Do not introduce a server adapter; this stays fully static.

3. Mudanças Esperadas nos Arquivos

package.json (build script)
src/pages/search.astro (new)
src/layouts/BaseLayout.astro (data-pagefind-ignore on chrome)

4. Lista de Verificação de Revisão

  • O script de compilação executa Pagefind após astro build.
  • A página de pesquisa degrada-se graciosamente em astro dev (índice só existe pós-compilação).
  • Nav/rodapé são excluídos do índice.

5. Comandos de Teste

Terminal window
bun run build
bun run preview
# open /search and query a known term

6. Falhas Comuns

  • Montar a UI do Pagefind antes do carregamento do script → PagefindUI is not defined.
  • Executar Pagefind antes da compilação, então ele não indexa nada.

7. Prompt de Correção

Fix Prompt
Pagefind indexed an empty site. Ensure the build runs `astro build` first,
then `pagefind --site dist`, and that the UI script loads before init.

8. Descrição do PR

PR description
Add static full-text search via Pagefind. Indexes `dist` at build time;
no backend. New `/search` page; nav/footer excluded from the index.