Skip to content

Unify search across sub-sites - #1093

Open
ctrueden wants to merge 2 commits into
napari:mainfrom
ctrueden:unified-search
Open

Unify search across sub-sites#1093
ctrueden wants to merge 2 commits into
napari:mainfrom
ctrueden:unified-search

Conversation

@ctrueden

@ctrueden ctrueden commented Jul 30, 2026

Copy link
Copy Markdown
Member

This PR is in response to an issue discussed on the napari Zulip. For convenience, here is the relevant summary:

We noticed two different napari workshop pages:

Only the latter seems to have an obvious link to the Express workshops. The other one ends at 2024, and seems to be all external links—e.g. searching for "express" on this external-links-oriented page does not match anything. (And actually, searching for "express workshop" in the napari.org search bar turns up nothing either.)

This PR addresses the issue by switching to Pagefind, a static client-side search capable of aggregating across multiple indices. It's the perfect (and only, as far as I am aware 😅) solution to the fragmentation of search between sub-sites of documentation.

This is a first cut that works in my local testing (on macOS) between docs and workshops. For it to fully work, the companion PR for napari/workshops#69 must also be merged.

Here is a screenshot of the docs search seeing content from workshops:

search-workshops-from-docs

When the page is wider, the search bar moves to the right instead of centered, along with the search results. A remaining issue is that the new Pagefind-based search results panel is not centered and enlarged like the current docs search—hopefully some additional styling can fix that.

ctrueden added 2 commits July 30, 2026 16:27
Otherwise, this happens:

$ pixi install
Error:   × Failed to update PyPI packages for environment 'default'
  ├─▶ Failed to prepare distributions
  ├─▶ Failed to build `pyproj==3.7.2`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)

      [stderr]
      proj executable not found. Please set the PROJ_DIR variable. For more
      information see: https://pyproj4.github.io/pyproj/stable/installation.html

      hint: This usually indicates a problem with the package or the build
      environment.

The pixi.lock pins the macOS baseline for osx-arm64 to __osx=13.0
(line 12). pyproj 3.7.2 only ships an arm64 macOS wheel tagged
macosx_14_0_arm64 — no wheel exists for anything below macOS 14.0.
Since the locked environment's floor (13.0) is below what that wheel
declares as its minimum, uv/pixi considers it incompatible and falls
back to the sdist, which then needs the system PROJ library to compile
against — hence "proj executable not found." rasterio 1.5.0 (also
flagged as "installing from remote, not cached" in the verbose log) is
very likely hitting the identical issue for the same reason. Both are
transitive deps of geopandas/contextily, which the docs deps pull in.
Sphinx's built-in search only covers this site's own pages, so
napari.org/workshops (a separately-built mystmd site) was invisible
to search here and vice versa. Build a Pagefind index alongside the
existing Sphinx build and mount a small widget that merges in the
workshops site's Pagefind index at query time, since both are served
under the same napari.org origin.
@github-actions github-actions Bot added documentation Improvements or additions to documentation maintenance CI, dependencies, and other maintenance labels Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation maintenance CI, dependencies, and other maintenance

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant