meilisearch-docsearch
Version:
A quick search component for meilisearch, inspired by algolia/docsearch.
142 lines (106 loc) • 4 kB
Markdown
A quick search component for meilisearch, inspired by [`algolia/docsearch`](https://github.com/algolia/docsearch/).
| light | dark |
| -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
|  |  |
```sh
yarn add meilisearch-docsearch
npm install meilisearch-docsearch
pnpm add meilisearch-docsearch
```
To get started, you need a container for your `DocSearch` component to go in. If you don’t have one already, you can insert one into your markup:
```html
<div id="docsearch"></div>
```
Then, insert `DocSearch` into it by calling the `docsearch` function and providing the container. It can be a [CSS selector](https://developer.mozilla.org/en-US/docs/web/css/css_selectors) or an [Element](https://developer.mozilla.org/en-us/docs/web/api/htmlelement).
Make sure to provide a `container` (for example, a `div`), not an `input`. `DocSearch` generates a fully accessible search box for you.
```js
import { docsearch } from "meilisearch-docsearch";
import "meilisearch-docsearch/css";
docsearch({
container: "#docsearch",
host: "YOUR_HOST_URL",
apiKey: "YOUR_SEARCH_API_KEY",
indexUid: "YOUR_INDEX_UID",
});
```
All styles are included in the package as:
- One big file:
- ```js
import "meilisearch-docsearch/css";
```
- Individual small files:
- ```js
import "meilisearch-docsearch/css/variables";
```
- ```js
import "meilisearch-docsearch/css/button";
```
- ```js
import "meilisearch-docsearch/css/modal";
```
If you are using `solid-js`, you can import `DocSearch` component directely which generates a fully accessible search box for you.
```js
import { DocSearch } from "meilisearch-docsearch/solid";
import "meilisearch-docsearch/css";
function App() {
return (
<DocSearch
host="YOUR_HOST_URL"
apiKey="YOUR_SEARCH_API_KEY"
indexUid="YOUR_INDEX_UID"
/>
);
}
export default App;
```
The package also contains a browser bundle and the necessary styles that could be pulled through a CDN like unpkg.com:
1. add a container
```html
<div id="docsearch"></div>
```
2. import the js borwser bundle and initialize the component
```html
<script src="https://unpkg.com/meilisearch-docsearch@latest/dist/index.global.js"></script>
<script>
const { docsearch } = window.__docsearch_meilisearch__;
docsearch({
container: "#docsearch",
host: "YOUR_HOST_URL",
apiKey: "YOUR_SEARCH_API_KEY",
indexUid: "YOUR_INDEX_UID",
});
</script>
```
alternatively you can import the ESM module when using `<script type="module">`
```html
<script type="module" async>
import { docsearch } from "https://unpkg.com/meilisearch-docsearch@latest/dist/index.bundled.esm.js";
docsearch({
container: "#docsearch",
host: "YOUR_HOST_URL",
apiKey: "YOUR_SEARCH_API_KEY",
indexUid: "YOUR_INDEX_UID",
});
</script>
```
3. import styles
```html
<link
rel="stylesheet"
href="https://unpkg.com/meilisearch-docsearch@latest/dist/index.css"
/>
```
This project is inspired by [`algolia/docsearch`](https://github.com/algolia/docsearch/) and [`meilisearch/docs-searchbar.js`](https://github.com/meilisearch/docs-searchbar.js/)
MIT or MIT/Apache 2.0 where applicable.