Search: Lunr.js

Table of Contents

Configure Lunr.js Search Client

Select Lunr.js as the search client in your config.toml file:

[params.search]
client = "lunr"

Generate Search Index for Lunr.js

Lunr.js will need a search index for searching across your site. So, you’ll need to generate that search index for Lunr.js before you deploy your site.

Minimo comes with a script for generating the search index for Lunr.js: /scripts/generate-search-index-lunr.js.

Install Dependencies

Node.js must be installed on your system for using the generator script.

It also need the following npm packages:

  • glob
  • lunr

For installing lunr and glob globally use the following command:

npm install -g lunr glob

Run the Script

After you’ve generated your site with Hugo, run generate-search-index-lunr.js with node.

If Minimo is installed under /themes/minimo directory, you’ll run it as:

node ./themes/minimo/scripts/generate-search-index-lunr.js

The generate-search-index-lunr.js script accepts an optional argument for Hugo’s publishDir (relative to your site’s root directory).

So, if you’ve got a different publishDir (say site), pass it as the first argument:

node ./themes/minimo/scripts/generate-search-index-lunr.js site

If the generation was successful, you’ll see output like this:

Lunr.js Index Generated for: /search/index.json

That’s all. Now you can deploy your site.