Depending on the Bootstrap version used for your pkgdown website,
search will be either built-in (Bootstrap 5 and up) or will need some
more configuration of an external service (Bootstrap 3). We’d recommend
switching to Bootstrap 5, see vignette("customise")
.
With BS5, search is built-in so building your pkgdown website will automatically build a search index that’s available in navbar (using fuse.js). Currently the only available customisation is excluding some paths from the search index:
search:
exclude: ['news/index.html']
Note that search requires a “real” server, not a local
file://
based preview, so search won’t work with the
default preview. To test search with a local preview, you’ll need to use
servr::httw("docs")
or similar.
pkgdown websites can integrate search capability using DocSearch from Algolia. DocSearch is a powerful search engine that is free for documentation websites. There are only two steps needed to enable DocSearch on a pkgdown website.
Once you have published your pkgdown website, submit the pkgdown site URL to Docsearch. Docsearch will contact you via e-mail to confirm you are the website owner.
Docsearch will set up a crawler configuration that indexes your site
every 24 hours. pkgdown builds a suggested Docsearch crawler
configuration in docsearch.json
and you should point the
Docsearch team to this configuration as a starting point. If you want to
optimize your search, Docsearch will accept pull requests to the
configuration that incorporate additional
options to fine tune the scraping.
The Docsearch team will e-mail you some JavaScript to integrate into your website.
<script type="text/javascript">
docsearch({
apiKey: 'API_KEY', // a long hex string
indexName: 'INDEX_NAME',
inputSelector: '### REPLACE ME ####',
debug: false // Set debug to true if you want to inspect the dropdown
; })
Put the value of the apiKey
and indexName
parameters into your site _pkgdown.yml
under
template: params
:
template:
params:
docsearch:
api_key: API_KEY
index_name: INDEX_NAME
You also need to add a url:
field to
_pkgdown.yml
that specifies the location of your
documentation on the web. For pkgdown, the URL field is:
url: https://pkgdown.r-lib.org
If you are building your own custom Docsearch index, you can also
include your Docsearch app_id
in
_pkgdown.yml
.
See the pkgdown configuration for a functional search configuration.
Once this configuration is complete, you should find a search bar
after re-building your site. After search is enabled, pressing
shift
+ /
(i.e., “?”) will move the focus to
the search bar.