diff options
author | Jakob Stendahl <jakob.stendahl@outlook.com> | 2018-11-29 23:14:58 +0100 |
---|---|---|
committer | Jakob Stendahl <jakob.stendahl@outlook.com> | 2018-11-29 23:14:58 +0100 |
commit | 101745c6a4a2c6a186be48182d48814177840c65 (patch) | |
tree | ee7c7420291473033cf7cd9f921fe21958bf571f /docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js | |
parent | 2147880e40ee39ae07c8df9d3500080da467475d (diff) | |
download | Luxcena-Neo-101745c6a4a2c6a186be48182d48814177840c65.tar.gz Luxcena-Neo-101745c6a4a2c6a186be48182d48814177840c65.zip |
:construction: Chenged things, and written some docs
Diffstat (limited to 'docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js')
-rw-r--r-- | docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js | 59 |
1 files changed, 59 insertions, 0 deletions
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); + } + }); +}); |