Skip to content

PageFind search restage#1206

Closed
cbutcosk wants to merge 122 commits intomainfrom
fix/pagefind-search-restage
Closed

PageFind search restage#1206
cbutcosk wants to merge 122 commits intomainfrom
fix/pagefind-search-restage

Conversation

@cbutcosk
Copy link
Copy Markdown
Collaborator

This PR re-stages #1084 for review and QA against the rewound branch.

That PR's details:

  • Feature: Update search to use PageFind for indexing and retrieval.
  • Adds the pagefind library and removes lunr
  • Updates the search plugin to index HTML pages and figures using a new SearchIndex class
  • Output the search index to _search along with the frontend API files that PageFind builds
  • Adds pagefind data attributes as meta tags and on .quire-page to pass page metadata to the index
  • Updates the existing search UI to use the pagefind API
  • Adds the Sinon library for creating test mocks
  • Adds tests for SearchIndex using mocks for the pagefind methods
  • Bundles the pagefind search API and imports it when loadSearchData is called, so pagefind will load the index using wasm.

mphstudios and others added 30 commits December 22, 2025 10:02
- Add test command to the CLI package
- Filter specs when dynamically loading command modules
- Ensure Command constructor sets summary property
- Add specs for each cli command module
- Add unit tests for each cli build command
- Updates cli commands README
### Changed

- Add integration tests for CLI commands and command helpers
- Update Node version

@todo replace the console with a logger module that can be more easily mocked.
### Added

- Simple abstraction for console output for improved separation of concerns

### Changed

- Refactor commands to use the new logger module
- Remove test.serial for tests that can now be run in parallel
- Run command integration tests in parallel using mocked logger
- Update documentation for CLI command modules
Remove tarball after use in `quire new` command
remove "automatic assignee" when creating new issues
* Update to circleci/browser-tools@2.3.2
* Update PUPPETEER_EXECUTABLE_PATH
  Chrome for Testing installs to /opt/chrome-for-testing/chrome, which is symlinked to /usr/local/bin/chrome
* Update macos xcode to 26.2.0
* Fix PUPETTEER_EXECUTABLE_PATH on macos
Sharp, esbuild, puppeteer, node-sass, ... need postinstall scripts
to install native binaries and using the --ignore-scripts flag prevents
these while adding very limited security benefit since install already
uses a package-lock file.
* Feature: Update search to use PageFind for indexing and retrieval.
- Adds the `pagefind` library and `removes` lunr
- Updates the search plugin to index HTML pages and figures using a new `SearchIndex` class
- Output the search index to `_search` along with the frontend API files that PageFind builds
- Adds pagefind data attributes as meta tags and on `.quire-page` to pass page metadata to the index
- Updates the existing search UI to use the pagefind API
- Adds the Sinon library for creating test mocks
- Adds tests for SearchIndex using mocks for the pagefind methods
- Bundles the pagefind search API and imports it when `loadSearchData` is called, so  pagefind will load the index using wasm.
Fixes Issue#1069

Co-authored-by: Andy De Leon <66084673+andy-jdl@users.noreply.github.com>
Add specs for base Command class and cli program, 
these test what is not covered by the command tests:
* Add a spec for the base Command class
* Add tests for the cli program main module
Refine default choice annotation behavior
mphstudios and others added 27 commits January 26, 2026 15:05
* Refactor lib/conf module responsibilities
* Refactor command to properly delegate to lib/conf
* Format settings output for readability
* Add --json flag for settings output
* Update lib/conf documentation
* Adds a pdf command option to specify the output path
* Refactors lib/pdf error handling, use error classes
* Allows pdf --output option to override default path
* Refactors PDF generation to use progress reporter
* Updates lib/pdf documentation
* Adds an epub command option to specify the output path
* Updates which helper to use ToolNotFoundError class
* Adds a metadata module for the lib/epub engines
* Refactors epub command and lib/epub error handling
* Document lib/epub module and epub engines
* Improves Pandoc debugging using execa stderr/stdout
* Remove package-lock from individual workspaces

With npm workspaces the root package-lock file is the single source of truth for the entire dependency tree. Per-package lock files are not generated and shouldn't exist.

* Increment quire-cli release candidate version
* Fixes regression that removed the preview command --open option
* Fixes a rebase regression where build and preview commands were not following the established pattern to instrument the reporter: commands configure the reporter and lib modules call start/succeed/fail.
* Registers a call back when the dev server is ready
* Overrides debug formatArgs for less noisy output
* Add info command option for json output
* Add validate command option for json output
Accidentally committed in d73cbb0. Already ignored via .gitignore.
* Read NO_COLOR from the environment at startup
* Define shared command options for --color and --no-color
* Add shared color option flags to main program
* Update config and logger for color option precedence
* Document cli accessibility (cli/docs/accessibility.md)
* Implement helpers for fuzzy matching and suggestions
* Define custom errors for settings command
* Refactor config (settings) command to throw errors
* Define custom error for unknown help topics
* Instrument suggestions for help topics
* Add config setting for reduced motion
* Pass the reduced motion option to commands
* Refactor reporter to use reduced motion setting
* Update cli modes documentation
* Set eleventy quietMode from cli options
* Set QUIRE_LOG_LEVEL environment variable
* Refactor quire-11ty logger to read QUIRE_LOG_LEVEL
* Set QUIRE_LOG_* env vars to configure 11ty logger
* Upgrade to ora v9
* Set log level in vite options
* Update output modes documentation.
* Rename mise task to generate the cli man page
* Adds a man page for the quire-cli
* Document the steps to regenerate the man page
* Include man page in package config
* Feature: Update search to use PageFind for indexing and retrieval.
- Adds the `pagefind` library and `removes` lunr
- Updates the search plugin to index HTML pages and figures using a new `SearchIndex` class
- Output the search index to `_search` along with the frontend API files that PageFind builds
- Adds pagefind data attributes as meta tags and on `.quire-page` to pass page metadata to the index
- Updates the existing search UI to use the pagefind API
- Adds the Sinon library for creating test mocks
- Adds tests for SearchIndex using mocks for the pagefind methods
- Bundles the pagefind search API and imports it when `loadSearchData` is called, so  pagefind will load the index using wasm.
@cbutcosk
Copy link
Copy Markdown
Collaborator Author

Closing this in favor of #1210 , which targets the original commits on the rewound branch.

@cbutcosk cbutcosk closed this Mar 30, 2026
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.

4 participants