From 101745c6a4a2c6a186be48182d48814177840c65 Mon Sep 17 00:00:00 2001 From: Jakob Stendahl Date: Thu, 29 Nov 2018 23:14:58 +0100 Subject: :construction: Chenged things, and written some docs --- .../gitbook/gitbook-plugin-lunr/search-lunr.js | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js (limited to 'docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js') diff --git a/docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js b/docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js new file mode 100644 index 0000000..d6ec76f --- /dev/null +++ b/docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js @@ -0,0 +1,59 @@ +require([ + 'gitbook', + 'jquery' +], function(gitbook, $) { + // Define global search engine + function LunrSearchEngine() { + this.index = null; + this.store = {}; + this.name = 'LunrSearchEngine'; + } + + // Initialize lunr by fetching the search index + LunrSearchEngine.prototype.init = function() { + var that = this; + var d = $.Deferred(); + + $.getJSON(gitbook.state.basePath+'/search_index.json') + .then(function(data) { + // eslint-disable-next-line no-undef + that.index = lunr.Index.load(data.index); + that.store = data.store; + d.resolve(); + }); + + return d.promise(); + }; + + // Search for a term and return results + LunrSearchEngine.prototype.search = function(q, offset, length) { + var that = this; + var results = []; + + if (this.index) { + results = $.map(this.index.search(q), function(result) { + var doc = that.store[result.ref]; + + return { + title: doc.title, + url: doc.url, + body: doc.summary || doc.body + }; + }); + } + + return $.Deferred().resolve({ + query: q, + results: results.slice(0, length), + count: results.length + }).promise(); + }; + + // Set gitbook research + gitbook.events.bind('start', function(e, config) { + var engine = gitbook.search.getEngine(); + if (!engine) { + gitbook.search.setEngine(LunrSearchEngine, config); + } + }); +}); -- cgit v1.2.3