--- --- const do_search = function() { // data var pages = [ {% for post in site.posts %} { "id": "{{ post.url | slufigy }}", "title": {{ post.title | jsonify }}, "content": {{ post.content | strip_html | jsonify }}, "url": "{{ post.url | xml_escape }}" } {% unless forloop.last %},{% endunless %} {% endfor %} ]; var mylunr = function (config) { var builder = new lunr.Builder builder.pipeline.add( lunr.trimmer ); config.call(builder, builder); return builder.build(); } // index const idx = mylunr(function () { this.ref('url'); this.field('title'); this.field('content'); pages.forEach(function (doc) { this.add(doc); }, this); }); function do_search(queryterm) { const result = idx.search(queryterm); return result.map(r => pages.find((p) => p.id === r.ref)); } return do_search; }();