Skip to content

Enhance search #75

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 7 commits into from
Apr 28, 2023
Merged

Enhance search #75

merged 7 commits into from
Apr 28, 2023

Conversation

samlikins
Copy link
Member

Following PR #74, I've provided enhancements to the search functionality:

  • Modularized the search JavaScript
  • Added templating for easier future customization
  • Added fuzzy searching across all JSON feed fields
  • Added hotkeys for easier keyboard interactions

This code has been tested on both FireFox and Chrome (on Linux).

The search field is auto-focused upon the search page loading. Search is performed 1/4 second after query change (can be easily adjusted in source). Query allows for "advanced search" capabilities. Fuzzy search matches are highlighted in results. Keyboard shortcuts are provided for:

  • Search Field Focus — ctrl+s, control+s, s, or /
  • Next Result — down
  • Previous Result — up
  • Select Result — enter

Result navigation keybindings also work from within the search field.

- Moved JSON feed file to `packages.json`
- Added `json_path` to Jekyll configuration for new JSON feed
- Added `search_path` to Jekyll configuration for search page
- Updated JavaScript search to point to new JSON feed
- Updated default template to utilize configured variables for navigation links
- Modified JavaScript search into module
- Moved JavaScript to module directory
- Updated search page to import JavaScript module and provide configuration object
- Updated search JavaScript with templates for results, zero results, and no query
- Updated search page with templates configuration and templates
- Updated custom style sheet to modify search view
- Updated search JavaScript with Fuse fuzzy search module and associated code
- Updated search page results template to include additional details
- Updated custom style sheet to add highlight rules
- Updated JSON feed to simplify package URLs
- Updated search JavaScript with HotKeys keybindings module and associated code
- Updated search page keybinding configuration
- Updated custom style sheet to add selection rule
@samlikins samlikins requested review from Potherca and jwerle April 14, 2023 16:34
@samlikins samlikins self-assigned this Apr 14, 2023
Copy link
Member

@Potherca Potherca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Some minor code style comments, feel free to ignore if you disagree.

- Correcting strict-type comparison
- Moved ternary operators to beginning of lines
- Added braces to all if flow blocks
- Added `catch` in `_fetchFeed` function
@samlikins samlikins merged commit 3b68da6 into bpkg:master Apr 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

3 participants