Skip to content

Add site-wide search - #271

Open
Zethson wants to merge 3 commits into
mainfrom
global-search
Open

Add site-wide search#271
Zethson wants to merge 3 commits into
mainfrom
global-search

Conversation

@Zethson

@Zethson Zethson commented Aug 23, 2026

Copy link
Copy Markdown
Member

Closes #269.

Adds Pagefind-backed search over the built HTML, opened from the nav, / or ctrl+k, with arrow-key and enter navigation. Package and people names are pinned above the page results and link to the package docs or the person's profile.

Pagefind indexes the built HTML after hugo runs, which matters here because the
ecosystem grid and the tutorial cards are rendered by layouts from remote JSON
rather than living in content files, so anything reading the markdown would miss
the 120 packages and 23 tutorials that people most want to find.

The dialog opens from the nav, from / and from ctrl+k, and is driven with the
arrow keys and enter. Results are filtered before display: Pagefind matches when
an indexed word is a prefix of the search term, so "xylophone" otherwise came
back matching "x" on seventeen pages.

Closes #269

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
@netlify

netlify Bot commented Aug 23, 2026

Copy link
Copy Markdown

Deploy Preview for jade-cajeta-1bcca0 ready!

Name Link
🔨 Latest commit 0dd9c85
🔍 Latest deploy log https://app.netlify.com/projects/jade-cajeta-1bcca0/deploys/6a8b646682ff9500085feb2a
😎 Deploy Preview https://deploy-preview-271--jade-cajeta-1bcca0.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

#packages carried margin-top: 15% where every other section has 5%, which read as
deliberate while it sat directly under the hero demo. Adding a section above it
moved that gap into the middle of the page.

The wide gap now belongs to the demo, so it stays under the hero wherever the next
section happens to be. It has to be set in the nested block: the flat
#interactive-demo-section rule is outranked by section { margin: 0 auto }, which is
why its margin-bottom never did anything.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
Searching for pertpy returned a blog post that mentions it; the package itself was
not in the results at all, because scverse.org has no page per package or per person
and Pagefind only knows about pages.

layouts/index.entities.json collects the 12 core packages, the 120 registry entries
and everyone on the people page into a name index. A name match is pinned above the
page results and links to the thing itself: the package's documentation, or the
person's GitHub profile.

Also fixes the relevance filter, which stripped punctuation from the word Pagefind
matched but not from the word that was typed, so "rapids-singlecell" found
"rapids-singlecell" and then discarded it.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
@Zethson

Zethson commented Aug 23, 2026

Copy link
Copy Markdown
Member Author

@muskanhashim could you please test the search functionality in any way you can think of? Thanks

@Zethson
Zethson requested a review from muskanhashim August 23, 2026 21:33
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.

Global search

1 participant