I had to change some methods to static to be able to tests them without instantiating a new DocSearch. I also used better `restore` methods of sinon.js. I did not manage to correctly test the promise returned by the method returned by getAutocompleteSource. I would have like to test that when resolved it correctly call reformatHits on the data as well as call the callback on the reformated hits but got confused in spying/stubbing/mocking the promise. |
||
|---|---|---|
| dev | ||
| docs | ||
| scripts | ||
| src | ||
| test | ||
| .babelrc | ||
| .eslintignore | ||
| .eslintrc | ||
| .gitignore | ||
| .npmignore | ||
| .travis.yml | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| index.js | ||
| npm-shrinkwrap.json | ||
| package.json | ||
| README.md | ||
| webpack.config.jsdelivr.babel.js | ||
| webpack.dev.config.babel.js | ||
Table of Contents generated with DocToc
- docsearch
- Usage
- Examples
- How do I get an
apiKeyandindexName? - How does it work?
- Development workflow
docsearch
Add a search autocomplete to any documentation.
Currently on-demand, send an email to docsearch@algolia.com if you want documentation search on your website.
Usage
<link rel="stylesheet" href="//cdn.jsdelivr.net/docsearch.js/0/docsearch.min.css" />
<script src="//cdn.jsdelivr.net/docsearch.js/0/docsearch.min.js"></script>
documentationSearch({
apiKey: apiKey, // Mandatory
indexName: indexName, // Mandatory
inputSelector: '#search-input' // Mandatory
});
Examples
- http://eslint.org/
- https://bootstrap.algolia.com/
- https://reactjs.algolia.com/
- https://babeljs.algolia.com/
How do I get an apiKey and indexName?
Send us an email with the url of the documentation website you would like to add search to.
How does it work?
The JavaScript library is a wrapper on top of our autocomplete.js library, along with default CSS styling of the dropdown.
The indexing of the website data itself is currently done by an internal tool (to be released).
Indexing of websites using docsearch takes places every day.
Development workflow
Local example
We use a simple documentation example website as a way to develop the docsearch.js library.
Requirements:
- Node.js
- npm@2
npm run dev
# open http://localhost:8080
Documentation website
This is the Jekyll instance running at https://community.algolia.com/docsearch.
Requirements:
npm run dev:docs
# open http://localhost:4000/docsearch/
MacOS
If you are using brew and you had brew install openssl, you may need to configure the build path of eventmachine with
bundle config build.eventmachine --with-cppflags=-I$(brew --prefix openssl)/include