-
Notifications
You must be signed in to change notification settings - Fork 16.3k
Add fast client-side search to Airflow documentation #59658
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
14d4e2e to
eac9892
Compare
Member
Collaborator
|
Great work, Kaxil! |
Member
|
NICE! |
potiuk
approved these changes
Dec 20, 2025
potiuk
reviewed
Dec 20, 2025
phanikumv
approved these changes
Dec 20, 2025
I have been frustrated by Sphinx search for a long-long time. So after adding dark-mode, this was next in my list! This PR/commit introduces a fast, fully client-side search experience for the Apache Airflow documentation, powered by [Pagefind](https://pagefind.app/). The new search is keyboard-accessible (Cmd+K / Ctrl+K), works offline, and requires no external services. Search indexes are generated automatically at documentation build time and loaded entirely in the browser, enabling sub-50 ms queries even on large docs. I have kept the Sphinx search too as a backup and it will keep functioning. ---- Add keyboard-accessible search (Cmd+K) to Apache Airflow documentation with automatic indexing and offline support. New Sphinx extension: `pagefind_search` Located in `devel-common/src/sphinx_exts/pagefind_search/`: - __init__.py: Extension setup with configuration values and event handlers - builder.py: Automatic index building with graceful fallback - static/css/pagefind.css: Search modal and button styling with dark mode support - static/js/search.js: Search functionality with keyboard shortcuts - templates/search-modal.html: Search modal HTML template - Keyboard shortcut (Cmd+K/Ctrl+K) opens search modal - Arrow key navigation through results - Works offline (no external services) - Automatic indexing during documentation build - Dark mode support - Sub-50ms search performance - Configurable content indexing via conf.py Users can now: - Press Cmd+K from any documentation page to search - Navigate results with arrow keys, Enter to select, Esc to close - Search works immediately without network requests - Results show page title, breadcrumb, and excerpt Available in conf.py: - pagefind_enabled: Toggle search indexing - pagefind_verbose: Enable build logging - pagefind_root_selector: Define searchable content area - pagefind_exclude_selectors: Exclude navigation, headers, footers - pagefind_custom_records: Index non-HTML content (PDFs, etc.)
eac9892 to
609494f
Compare
potiuk
reviewed
Dec 20, 2025
Member
Author
7c15e3a to
eca9d4a
Compare
kaxil
added a commit
to apache/airflow-site-archive
that referenced
this pull request
Dec 20, 2025
kaxil
added a commit
to astronomer/airflow
that referenced
this pull request
Dec 20, 2025
I have been frustrated by Sphinx search for a long-long time. So after adding dark-mode, this was next in my list! This PR/commit introduces a fast, fully client-side search experience for the Apache Airflow documentation, powered by [Pagefind](https://pagefind.app/). The new search is keyboard-accessible (Cmd+K / Ctrl+K), works offline, and requires no external services. Search indexes are generated automatically at documentation build time and loaded entirely in the browser, enabling sub-50 ms queries even on large docs. I have kept the Sphinx search too as a backup and it will keep functioning. ---- Add keyboard-accessible search (Cmd+K) to Apache Airflow documentation with automatic indexing and offline support. New Sphinx extension: `pagefind_search` Located in `devel-common/src/sphinx_exts/pagefind_search/`: - __init__.py: Extension setup with configuration values and event handlers - builder.py: Automatic index building with graceful fallback - static/css/pagefind.css: Search modal and button styling with dark mode support - static/js/search.js: Search functionality with keyboard shortcuts - templates/search-modal.html: Search modal HTML template - Keyboard shortcut (Cmd+K/Ctrl+K) opens search modal - Arrow key navigation through results - Works offline (no external services) - Automatic indexing during documentation build - Dark mode support - Sub-50ms search performance - Configurable content indexing via conf.py Users can now: - Press Cmd+K from any documentation page to search - Navigate results with arrow keys, Enter to select, Esc to close - Search works immediately without network requests - Results show page title, breadcrumb, and excerpt Available in conf.py: - pagefind_enabled: Toggle search indexing - pagefind_verbose: Enable build logging - pagefind_root_selector: Define searchable content area - pagefind_exclude_selectors: Exclude navigation, headers, footers - pagefind_custom_records: Index non-HTML content (PDFs, etc.) (cherry picked from commit d0bd2df)
kaxil
added a commit
to apache/airflow-site-archive
that referenced
this pull request
Dec 20, 2025
kaxil
added a commit
to apache/airflow-site-archive
that referenced
this pull request
Dec 20, 2025
potiuk
pushed a commit
to potiuk/airflow
that referenced
this pull request
Dec 20, 2025
…che#59658) I have been frustrated by Sphinx search for a long-long time. So after adding dark-mode, this was next in my list! This PR/commit introduces a fast, fully client-side search experience for the Apache Airflow documentation, powered by [Pagefind](https://pagefind.app/). The new search is keyboard-accessible (Cmd+K / Ctrl+K), works offline, and requires no external services. Search indexes are generated automatically at documentation build time and loaded entirely in the browser, enabling sub-50 ms queries even on large docs. I have kept the Sphinx search too as a backup and it will keep functioning. ---- Add keyboard-accessible search (Cmd+K) to Apache Airflow documentation with automatic indexing and offline support. New Sphinx extension: `pagefind_search` Located in `devel-common/src/sphinx_exts/pagefind_search/`: - __init__.py: Extension setup with configuration values and event handlers - builder.py: Automatic index building with graceful fallback - static/css/pagefind.css: Search modal and button styling with dark mode support - static/js/search.js: Search functionality with keyboard shortcuts - templates/search-modal.html: Search modal HTML template - Keyboard shortcut (Cmd+K/Ctrl+K) opens search modal - Arrow key navigation through results - Works offline (no external services) - Automatic indexing during documentation build - Dark mode support - Sub-50ms search performance - Configurable content indexing via conf.py Users can now: - Press Cmd+K from any documentation page to search - Navigate results with arrow keys, Enter to select, Esc to close - Search works immediately without network requests - Results show page title, breadcrumb, and excerpt Available in conf.py: - pagefind_enabled: Toggle search indexing - pagefind_verbose: Enable build logging - pagefind_root_selector: Define searchable content area - pagefind_exclude_selectors: Exclude navigation, headers, footers - pagefind_custom_records: Index non-HTML content (PDFs, etc.) (cherry picked from commit d0bd2df) Co-authored-by: Kaxil Naik <kaxilnaik@gmail.com>
Member
|
Backport in #59669 |
potiuk
added a commit
to potiuk/airflow
that referenced
this pull request
Dec 20, 2025
Follow up after apache#59658 - there are few more places where canary builds used `pip check` and until the `pip` inconsistent behaviour is fixed (pypa/pip#13709) we should use `uv pip check` instead.
kaxil
added a commit
that referenced
this pull request
Dec 20, 2025
I have been frustrated by Sphinx search for a long-long time. So after adding dark-mode, this was next in my list! This PR/commit introduces a fast, fully client-side search experience for the Apache Airflow documentation, powered by [Pagefind](https://pagefind.app/). The new search is keyboard-accessible (Cmd+K / Ctrl+K), works offline, and requires no external services. Search indexes are generated automatically at documentation build time and loaded entirely in the browser, enabling sub-50 ms queries even on large docs. I have kept the Sphinx search too as a backup and it will keep functioning. ---- Add keyboard-accessible search (Cmd+K) to Apache Airflow documentation with automatic indexing and offline support. New Sphinx extension: `pagefind_search` Located in `devel-common/src/sphinx_exts/pagefind_search/`: - __init__.py: Extension setup with configuration values and event handlers - builder.py: Automatic index building with graceful fallback - static/css/pagefind.css: Search modal and button styling with dark mode support - static/js/search.js: Search functionality with keyboard shortcuts - templates/search-modal.html: Search modal HTML template - Keyboard shortcut (Cmd+K/Ctrl+K) opens search modal - Arrow key navigation through results - Works offline (no external services) - Automatic indexing during documentation build - Dark mode support - Sub-50ms search performance - Configurable content indexing via conf.py Users can now: - Press Cmd+K from any documentation page to search - Navigate results with arrow keys, Enter to select, Esc to close - Search works immediately without network requests - Results show page title, breadcrumb, and excerpt Available in conf.py: - pagefind_enabled: Toggle search indexing - pagefind_verbose: Enable build logging - pagefind_root_selector: Define searchable content area - pagefind_exclude_selectors: Exclude navigation, headers, footers - pagefind_custom_records: Index non-HTML content (PDFs, etc.) (cherry picked from commit d0bd2df)
kaxil
pushed a commit
that referenced
this pull request
Dec 20, 2025
Follow up after #59658 - there are few more places where canary builds used `pip check` and until the `pip` inconsistent behaviour is fixed (pypa/pip#13709) we should use `uv pip check` instead.
kaxil
pushed a commit
to astronomer/airflow
that referenced
this pull request
Dec 20, 2025
Follow up after apache#59658 - there are few more places where canary builds used `pip check` and until the `pip` inconsistent behaviour is fixed (pypa/pip#13709) we should use `uv pip check` instead. (cherry picked from commit 33e6d3e)
Contributor
|
Looks really cool! |
potiuk
pushed a commit
that referenced
this pull request
Dec 28, 2025
I have been frustrated by Sphinx search for a long-long time. So after adding dark-mode, this was next in my list! This PR/commit introduces a fast, fully client-side search experience for the Apache Airflow documentation, powered by [Pagefind](https://pagefind.app/). The new search is keyboard-accessible (Cmd+K / Ctrl+K), works offline, and requires no external services. Search indexes are generated automatically at documentation build time and loaded entirely in the browser, enabling sub-50 ms queries even on large docs. I have kept the Sphinx search too as a backup and it will keep functioning. ---- Add keyboard-accessible search (Cmd+K) to Apache Airflow documentation with automatic indexing and offline support. New Sphinx extension: `pagefind_search` Located in `devel-common/src/sphinx_exts/pagefind_search/`: - __init__.py: Extension setup with configuration values and event handlers - builder.py: Automatic index building with graceful fallback - static/css/pagefind.css: Search modal and button styling with dark mode support - static/js/search.js: Search functionality with keyboard shortcuts - templates/search-modal.html: Search modal HTML template - Keyboard shortcut (Cmd+K/Ctrl+K) opens search modal - Arrow key navigation through results - Works offline (no external services) - Automatic indexing during documentation build - Dark mode support - Sub-50ms search performance - Configurable content indexing via conf.py Users can now: - Press Cmd+K from any documentation page to search - Navigate results with arrow keys, Enter to select, Esc to close - Search works immediately without network requests - Results show page title, breadcrumb, and excerpt Available in conf.py: - pagefind_enabled: Toggle search indexing - pagefind_verbose: Enable build logging - pagefind_root_selector: Define searchable content area - pagefind_exclude_selectors: Exclude navigation, headers, footers - pagefind_custom_records: Index non-HTML content (PDFs, etc.) (cherry picked from commit d0bd2df)
potiuk
pushed a commit
that referenced
this pull request
Dec 28, 2025
I have been frustrated by Sphinx search for a long-long time. So after adding dark-mode, this was next in my list! This PR/commit introduces a fast, fully client-side search experience for the Apache Airflow documentation, powered by [Pagefind](https://pagefind.app/). The new search is keyboard-accessible (Cmd+K / Ctrl+K), works offline, and requires no external services. Search indexes are generated automatically at documentation build time and loaded entirely in the browser, enabling sub-50 ms queries even on large docs. I have kept the Sphinx search too as a backup and it will keep functioning. ---- Add keyboard-accessible search (Cmd+K) to Apache Airflow documentation with automatic indexing and offline support. New Sphinx extension: `pagefind_search` Located in `devel-common/src/sphinx_exts/pagefind_search/`: - __init__.py: Extension setup with configuration values and event handlers - builder.py: Automatic index building with graceful fallback - static/css/pagefind.css: Search modal and button styling with dark mode support - static/js/search.js: Search functionality with keyboard shortcuts - templates/search-modal.html: Search modal HTML template - Keyboard shortcut (Cmd+K/Ctrl+K) opens search modal - Arrow key navigation through results - Works offline (no external services) - Automatic indexing during documentation build - Dark mode support - Sub-50ms search performance - Configurable content indexing via conf.py Users can now: - Press Cmd+K from any documentation page to search - Navigate results with arrow keys, Enter to select, Esc to close - Search works immediately without network requests - Results show page title, breadcrumb, and excerpt Available in conf.py: - pagefind_enabled: Toggle search indexing - pagefind_verbose: Enable build logging - pagefind_root_selector: Define searchable content area - pagefind_exclude_selectors: Exclude navigation, headers, footers - pagefind_custom_records: Index non-HTML content (PDFs, etc.) (cherry picked from commit d0bd2df)
Subham-KRLX
pushed a commit
to Subham-KRLX/airflow
that referenced
this pull request
Jan 2, 2026
Follow up after apache#59658 - there are few more places where canary builds used `pip check` and until the `pip` inconsistent behaviour is fixed (pypa/pip#13709) we should use `uv pip check` instead.
ephraimbuddy
pushed a commit
that referenced
this pull request
Jan 6, 2026
I have been frustrated by Sphinx search for a long-long time. So after adding dark-mode, this was next in my list! This PR/commit introduces a fast, fully client-side search experience for the Apache Airflow documentation, powered by [Pagefind](https://pagefind.app/). The new search is keyboard-accessible (Cmd+K / Ctrl+K), works offline, and requires no external services. Search indexes are generated automatically at documentation build time and loaded entirely in the browser, enabling sub-50 ms queries even on large docs. I have kept the Sphinx search too as a backup and it will keep functioning. ---- Add keyboard-accessible search (Cmd+K) to Apache Airflow documentation with automatic indexing and offline support. New Sphinx extension: `pagefind_search` Located in `devel-common/src/sphinx_exts/pagefind_search/`: - __init__.py: Extension setup with configuration values and event handlers - builder.py: Automatic index building with graceful fallback - static/css/pagefind.css: Search modal and button styling with dark mode support - static/js/search.js: Search functionality with keyboard shortcuts - templates/search-modal.html: Search modal HTML template - Keyboard shortcut (Cmd+K/Ctrl+K) opens search modal - Arrow key navigation through results - Works offline (no external services) - Automatic indexing during documentation build - Dark mode support - Sub-50ms search performance - Configurable content indexing via conf.py Users can now: - Press Cmd+K from any documentation page to search - Navigate results with arrow keys, Enter to select, Esc to close - Search works immediately without network requests - Results show page title, breadcrumb, and excerpt Available in conf.py: - pagefind_enabled: Toggle search indexing - pagefind_verbose: Enable build logging - pagefind_root_selector: Define searchable content area - pagefind_exclude_selectors: Exclude navigation, headers, footers - pagefind_custom_records: Index non-HTML content (PDFs, etc.) (cherry picked from commit d0bd2df)
ephraimbuddy
pushed a commit
that referenced
this pull request
Jan 6, 2026
Follow up after #59658 - there are few more places where canary builds used `pip check` and until the `pip` inconsistent behaviour is fixed (pypa/pip#13709) we should use `uv pip check` instead. (cherry picked from commit 33e6d3e)
61 tasks
stegololz
pushed a commit
to stegololz/airflow
that referenced
this pull request
Jan 9, 2026
I have been frustrated by Sphinx search for a long-long time. So after adding dark-mode, this was next in my list! This PR/commit introduces a fast, fully client-side search experience for the Apache Airflow documentation, powered by [Pagefind](https://pagefind.app/). The new search is keyboard-accessible (Cmd+K / Ctrl+K), works offline, and requires no external services. Search indexes are generated automatically at documentation build time and loaded entirely in the browser, enabling sub-50 ms queries even on large docs. I have kept the Sphinx search too as a backup and it will keep functioning. ---- Add keyboard-accessible search (Cmd+K) to Apache Airflow documentation with automatic indexing and offline support. New Sphinx extension: `pagefind_search` Located in `devel-common/src/sphinx_exts/pagefind_search/`: - __init__.py: Extension setup with configuration values and event handlers - builder.py: Automatic index building with graceful fallback - static/css/pagefind.css: Search modal and button styling with dark mode support - static/js/search.js: Search functionality with keyboard shortcuts - templates/search-modal.html: Search modal HTML template - Keyboard shortcut (Cmd+K/Ctrl+K) opens search modal - Arrow key navigation through results - Works offline (no external services) - Automatic indexing during documentation build - Dark mode support - Sub-50ms search performance - Configurable content indexing via conf.py Users can now: - Press Cmd+K from any documentation page to search - Navigate results with arrow keys, Enter to select, Esc to close - Search works immediately without network requests - Results show page title, breadcrumb, and excerpt Available in conf.py: - pagefind_enabled: Toggle search indexing - pagefind_verbose: Enable build logging - pagefind_root_selector: Define searchable content area - pagefind_exclude_selectors: Exclude navigation, headers, footers - pagefind_custom_records: Index non-HTML content (PDFs, etc.)
stegololz
pushed a commit
to stegololz/airflow
that referenced
this pull request
Jan 9, 2026
Follow up after apache#59658 - there are few more places where canary builds used `pip check` and until the `pip` inconsistent behaviour is fixed (pypa/pip#13709) we should use `uv pip check` instead.
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.





Preview: https://airflow.staged.apache.org/docs/apache-airflow/3.1.5/
I have been frustrated by Sphinx search for a long-long time. So after adding dark-mode (and other related changes in https://github.com/apache/airflow-site), this was next in my list!
This PR/commit introduces a fast, fully client-side search experience for the Apache Airflow documentation, powered by Pagefind. The new search is keyboard-accessible (Cmd+K / Ctrl+K), works offline, and requires no external services.
Search indexes are generated automatically at documentation build time and loaded entirely in the browser, enabling sub-50 ms queries even on large docs.
I have kept the Sphinx search too as a backup and it will keep functioning.Completely replaced Sphinx search now.What’s included
New Sphinx extension:
pagefind_searchLocated in
devel-common/src/sphinx_exts/pagefind_search/:Features
User Experience
Users can now:
Configuration
Available in
conf.py:Ranking Optimization
I have also spent a lot of time tuning the search the below knows.. Now, the extension uses optimized ranking parameters in
search.jswhich in my testing has produced better results:closes apache/airflow-site#666