Skip to content

feat(site): search#165

Merged
decepulis merged 5 commits intomainfrom
feat/site-search
Nov 5, 2025
Merged

feat(site): search#165
decepulis merged 5 commits intomainfrom
feat/site-search

Conversation

@decepulis
Copy link
Copy Markdown
Collaborator

what's new?

  1. implement pagefind search, following patterns from starlight and astro-pagefind
  2. store current framework and style preferences in nanostore context so search can access it
  3. add getSectionsForGuide so we can index a guide's section
  4. update mark styles (and b and strong while we're in the neighborhood)

future work

  • show a guide's section in search results
  • implement our own component, maybe with base ui autocomplete, for more control and better accessibility

@vercel
Copy link
Copy Markdown

vercel bot commented Nov 5, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
vjs-10-demo-html Ready Ready Preview Comment Nov 5, 2025 7:04pm
vjs-10-demo-next Ready Ready Preview Comment Nov 5, 2025 7:04pm
vjs-10-demo-react Ready Ready Preview Comment Nov 5, 2025 7:04pm
vjs-10-website Ready Ready Preview Comment Nov 5, 2025 7:04pm

@decepulis decepulis requested a review from Copilot November 5, 2025 17:59
@vercel vercel bot temporarily deployed to Preview – vjs-10-demo-html November 5, 2025 17:59 Inactive
@vercel vercel bot temporarily deployed to Preview – vjs-10-demo-react November 5, 2025 17:59 Inactive
@vercel vercel bot temporarily deployed to Preview – vjs-10-demo-next November 5, 2025 17:59 Inactive
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements client-side search functionality using Pagefind, following patterns from Starlight and astro-pagefind projects. The implementation enables framework-aware and style-aware search across documentation and blog content.

Key changes:

  • Integrated Pagefind search with custom UI component and Astro integration for indexing
  • Introduced nanostore-based preference management system with bidirectional cookie synchronization
  • Added getSectionsForGuide utility to retrieve hierarchical section labels for documentation structure

Reviewed Changes

Copilot reviewed 22 out of 24 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
site/integrations/pagefind.ts Custom Astro integration for running Pagefind indexer post-build and serving index in dev mode
site/src/components/Search/Search.tsx React component wrapping Pagefind UI with dialog, keyboard shortcuts, and framework/style filtering
site/src/components/Search/Search.astro Astro wrapper providing CSS customization and platform-specific keyboard shortcut detection
site/src/stores/preferences.ts Nanostore atoms for managing current framework and style preferences
site/src/components/docs/PreferenceSync.tsx Component synchronizing preference stores with cookies bidirectionally
site/src/components/docs/PreferenceUpdater.tsx Updated to set nanostore values instead of directly managing cookies
site/src/utils/docs/preferences.ts Added getPreferenceClient for reading preferences from client-side cookies
site/src/utils/docs/sidebar.ts Added getSectionsForGuide to extract hierarchical section labels for a guide
site/src/pages/docs/framework/[framework]/style/[style]/[...slug].astro Added Pagefind data attributes and section metadata to article elements
site/src/pages/blog/[...slug].astro Added Pagefind indexing attributes to blog posts with author metadata
site/src/components/docs/StyleCase.astro Added conditional Pagefind ignore attribute for hidden content
site/src/components/docs/FrameworkCase.astro Added conditional Pagefind ignore attribute for hidden content
site/src/utils/jsonLd/schemas.ts Added optional articleSection parameter to TechArticle schema
site/src/components/NavBar/NavBar.astro Integrated Search component in navigation bar
site/src/layouts/Base.astro Added PreferenceSync component to base layout
site/src/components/FormattedDate.astro Extended component to accept additional HTML attributes
site/src/styles/globals.css Added styles for mark, strong, and bold elements
site/package.json Added @pagefind/default-ui and sirv dependencies
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread site/src/pages/docs/framework/[framework]/style/[style]/[...slug].astro Outdated
Comment thread site/src/components/Search/Search.astro
@vercel vercel bot temporarily deployed to Preview – vjs-10-website November 5, 2025 18:00 Inactive
@vercel vercel bot temporarily deployed to Preview – vjs-10-demo-react November 5, 2025 18:02 Inactive
@vercel vercel bot temporarily deployed to Preview – vjs-10-demo-html November 5, 2025 18:02 Inactive
@vercel vercel bot temporarily deployed to Preview – vjs-10-demo-next November 5, 2025 18:02 Inactive
@vercel vercel bot temporarily deployed to Preview – vjs-10-website November 5, 2025 18:03 Inactive
@decepulis decepulis merged commit 8ba758a into main Nov 5, 2025
3 checks passed
@decepulis decepulis deleted the feat/site-search branch November 5, 2025 19:04
@vercel vercel bot temporarily deployed to Preview – vjs-10-demo-html November 5, 2025 19:04 Inactive
@vercel vercel bot temporarily deployed to Preview – vjs-10-website November 5, 2025 19:04 Inactive
@vercel vercel bot temporarily deployed to Preview – vjs-10-demo-react November 5, 2025 19:04 Inactive
@vercel vercel bot temporarily deployed to Preview – vjs-10-demo-next November 5, 2025 19:04 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants