diff options
Diffstat (limited to 'assets')
-rw-r--r-- | assets/js/search.js | 53 |
1 files changed, 28 insertions, 25 deletions
diff --git a/assets/js/search.js b/assets/js/search.js index 8584810..68f56ff 100644 --- a/assets/js/search.js +++ b/assets/js/search.js @@ -1,31 +1,34 @@ --- --- -// 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 %} -]; +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 %} + ]; -// index -var idx = lunr(function () { - this.ref('url'); - this.field('title'); - this.field('content'); - pages.forEach(function (doc) { - this.add(doc); - }, this); -}); + // index + const idx = lunr(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)); + } -function do_search(queryterm) { - const result = idx.search(queryterm); - return result.map(r => pages.find((p) => p.id === r.ref)); -} + return do_search; +}(); |