A simple way to add site search to your static Hugo site using Lunr.js.
Install the hugo-lunr utility via npm:
$ npm install hugo-lunr
By default hugo-lunr will read the content
directory of you and output the lunr index to public/lunr.json
. If you are using the command line implementation you can pass an input directory -i
and and output path/file -o
.
The easiest way to use hugo-lunr is via npm scripts:
"scripts": {
"index": "hugo-lunr"
},
or to pass arguments for input and output:
"scripts": {
"index": "hugo-lunr -i \"content/subdir/**\" -o public/my-index.json"
},
Which can be executed from a terminal prompt
$ npm run index
var hugolunr = require('hugo-lunr');
new hugolunr().index();
or to set input/output paths
var hugolunr = require('hugo-lunr');
var h = new hugolunr();
h.setInput('content/faq/**');
h.setOutput('public/faq.json');
h.index();