Repository navigation
feat(website): add local blog search - #6073
Merged
Paul Yu (pauldotyu) merged 1 commit intoNov 6, 2026
Merged
Conversation
- Added `@cmfcmf/docusaurus-search-local` dependency for local search capabilities. - Created a new `ThemeIcon` component to standardize icon rendering. - Implemented Dark Mode, Light Mode, and System Color Mode icons using FontAwesome. - Customized the SearchBar component to integrate the new search icon. - Enhanced CSS for the navbar search button and search results. - Added tests for the search functionality to ensure index size and content accuracy.
Paul Yu (pauldotyu)
requested review from
a team and
RishiMody7
and
a balanced review from Copilot
November 5, 2026 19:49
Paul Yu (pauldotyu)
requested review from
a team and
Jorge Palma (palma21)
as code owners
November 5, 2026 19:49
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are identified for the browser-side search changes.
No open issues 🎉
1 file not reviewed
website/package-lock.json: Generated file
What changed in this PR
Adds browser-side, full-content search to the AKS blog while retaining its static deployment without a search backend or API keys.
Changes:
- Indexes blog content during production builds and integrates the plugin-owned search panel.
- Customizes search and color-mode icons, distinguishes article and section results, and hides in-article search highlights.
- Adds search-index validation to CI and documents local preview commands.
| File | Description |
|---|---|
website/tests/search.test.cjs |
Checks search results, page links, section anchors, and index-size limits. |
website/src/theme/SearchBar/index.tsx |
Supplies the Font Awesome search-trigger icon. |
website/src/theme/Icon/SystemColorMode/index.tsx |
Customizes the system color-mode icon. |
website/src/theme/Icon/LightMode/index.tsx |
Customizes the light-mode icon. |
website/src/theme/Icon/DarkMode/index.tsx |
Customizes the dark-mode icon. |
website/src/css/custom.css |
Styles the search trigger, result icons, focus states, and navbar spacing. |
website/src/components/ThemeIcon.tsx |
Provides a shared SVG renderer for theme icons. |
website/README.md |
Documents production-build search previews and validation. |
website/package.json |
Adds the search plugin and validation command. |
website/package-lock.json |
Records the search plugin and dependency updates. |
website/docusaurus.config.ts |
Enables blog-only local search indexing. |
.gitignore |
Excludes the local Impeccable hook cache. |
.github/workflows/website-publish.yml |
Validates the search index before publishing. |
.github/workflows/website-check.yml |
Validates the search index during PR checks. |
Review effort: Balanced
Simon Waight (sjwaight)
approved these changes
Nov 6, 2026
Simon Waight (sjwaight)
left a comment
Contributor
There was a problem hiding this comment.
Search looks good.
Jorge Palma (palma21)
approved these changes
Nov 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Readers need a way to find relevant posts without scanning the full blog listing. The current corpus is small enough for a browser-side index, so search can stay within the existing static deployment without a backend, API keys, or an external crawler.
Approach
@cmfcmf/docusaurus-search-local.The generated default index is approximately 1.76 MiB uncompressed or 460 KiB gzipped. The search panel remains plugin-owned; small theme overrides customize only the icons. Search is available in production builds, not through the development server.
Validation
npm run buildnpm run typechecknpm run test:search(3 passing tests)Release notes
Adds local full-content blog search with article and section results.