Skip to content

Stop patching Docusaurus SearchComponent #931

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

Open
pokey opened this issue Sep 6, 2022 · 0 comments
Open

Stop patching Docusaurus SearchComponent #931

pokey opened this issue Sep 6, 2022 · 0 comments
Labels
code quality Improvements to code quality documentation Improvements or additions to documentation

Comments

@pokey
Copy link
Member

pokey commented Sep 6, 2022

We patch the Docusaurus SearchComponent so that we can implement custom contextual optional facet filters in order to prefer user docs or contributor docs, depending whether the user is currently looking at user or contributor docs. This change was originally performed in #915 by using Docusaurus swizzle, but as of #1281 now we use a pnpm patch applied to
the @docusaurus/theme-search-algolia package (see bottom of root-level package.json)

Unfortunately, this means that it is more challenging for us to upgrade Docusaurus.

Once Docusaurus supports custom contextual optional facet filters, we should stop patching. This page tracks the progress of that feature request.

Update:

On Docusaurus Discord, I got the following response

Hey, do you mean results would be preferred or restricted to the current context?

If restricted, you are on the right path as you can only retrieve results for the current lvl0 with filters

If preferred/re-ranked, we have some documentation about the custom ranking criteria here: https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/ otherwise you can apply some frontend sorting and re-order the results, you can do so by using the transformItems method: https://docsearch.algolia.com/docs/api#transformitems

Seems promising; will need to see if the items returned have enough info for us to do the re-ranking we want

@pokey pokey added documentation Improvements or additions to documentation code quality Improvements to code quality labels Sep 6, 2022
@pokey pokey mentioned this issue Sep 6, 2022
1 task
@pokey pokey mentioned this issue Mar 10, 2023
55 tasks
@pokey pokey changed the title Unswizzle Docusaurus SearchComponent Stop patching Docusaurus SearchComponent Mar 13, 2023
pokey added a commit that referenced this issue Mar 21, 2023
- closes #945
- closes #1044
- depends on #1322
- depends on #1327

## Checklist

- [x] Split into smaller PRs for ease of review
- [x] Try DX tests again
#1289
- [x] I have updated the
[docs](https://github.com/cursorless-dev/cursorless/tree/main/docs) and
[cheatsheet](https://github.com/cursorless-dev/cursorless/tree/main/cursorless-talon/src/cheatsheet)
- [x] File issue for speeding up cheatsheet / making it not optional
locally #1307
- [x] Set package manager in package.json
https://nodejs.org/api/packages.html#packagemanager
- [x] Re-add lint rule to prevent api types from importing anything
- [x] Try local install
  - [x] Make sure cheatsheet works
- [x] Make sure local extension build depends on building cheatsheet, or
allows no cheatsheet
- [x] Figure out why we're getting so many extra `internal` modules
- [x] Update #931 to
indicate we're now patching instead of swizzling
- [x] Make sure lint rules are actually running in CI
- [x] Check that we've addressed everything in
#945
- [x] Incorporate changes from
#1166
- [x] ~~Make sure this PR doesn't break doc links; see
#942 (comment)
There's no way to avoid these links getting broken if we upgrade
typedoc; filed #1304
to track
- [x] Revert #1284
- [x] I have added
[tests](https://www.cursorless.org/docs/contributing/test-case-recorder/)
- [x] I have not broken the cheatsheet
- [x] Generate cursorless-vscode package.json automatically, and change
the name we use to `@cursorless/cursorless-vscode` in the `package.json`
checked into source control
- [x] Be sure to update meta-updater to check for that instead of name
`cursorless` (see fixme in its `index.ts`)

## Desiderata

- From #1289

### Correctly flagging errors

- [x] `D1`: It is a compile error to import external packages that are
not listed in `package.json`
   - [x] `D1.1`: `vscode` (for some reason this one behaves strangely)
   - [x] `D1.2`: Other packages
- [x] `D2`: It is **not** a compile error to import from local packages
that you depend on, using our preferred syntax (eg `@cursorless/foo`)
- [x] `D3`: It is a compile error to import from local packages that you
depend on, **not** using our preferred syntax (eg `../foo`)
- [x] `D4`: It is a compile error to import from local packages that you
do **not** depend on, either
- [x] `D4.1`: using our non-preferred syntax (eg `../packages/foo`), or
  - [x] `D4.2`: using preferred syntax (eg `@cursorless/foo`)
- [ ] `D5`: It is a compile error to import from anything other than
`index.ts` in another module
  - [x] `D5.1`: **no** `@cursorless/foo/bar`
  - [x] `D5.2`: **no** `../foo/bar`
  - [x] `a`: Even if you depend on the module
- [ ] `b`: Even if `bar` was re-exported in `foo/index.ts`. In that case
it should be required to import `@cursorless/foo`. Untested, but
probably works, and I ran out of steam 😅
- [x] `D6`: It is **not** a compile error to import external packages
listed in `package.json`
   - [x] `D6.1`: `vscode` (for some reason this one behaves strangely)
   - [x] `D6.2`: Other packages

### Auto-import
- [x] `D7`: Auto-import doesn't import from external packages not listed
in `package.json`
   - [x] `D7.1`: `vscode` (for some reason this one behaves strangely)
   - [x] `D7.2`: Other packages
- [x] `D8`: Auto-import imports from external packages listed in
`package.json`
   - [x] `D8.1`: `vscode` (for some reason this one behaves strangely)
   - [x] `D8.2`: Other packages
- [x] `D9`: Auto-import imports from local packages that you depend on,
using our preferred syntax (eg `@cursorless/foo`)
- [x] `D10`: Auto-import doesn't import from local packages that you
don't depend on
- [x] `D11`: Auto-import doesn't import from anything other than
`index.ts` in another package (eg **no** `@cursorless/foo/bar`)
   - [x] `D11.1`: When you depend on the package
   - [x] `D11.2`: When you don't depend on the package

### Other DX
- [x] `D12`: Find references across projects when no file from the
referencing project is open
- [x] `D13`: Rename across projects when no file from the referencing
project is open
- [x] `D14`: Jump to definition across projects
- [ ] `D15`: It is easy to move a file from one package to another
- [ ] `D16`: It is easy to create a new package
- [ ] `D17`: Breakpoints work in Cursorless extension
- [x] `D18`: Breakpoints work on Cursorless root website
- [ ] `D19`: Breakpoints work on Cursorless docs website
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code quality Improvements to code quality documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant