diff options
author | Jakob Stendahl <jakob.stendahl@outlook.com> | 2019-09-22 13:12:44 +0200 |
---|---|---|
committer | Jakob Stendahl <jakob.stendahl@outlook.com> | 2019-09-22 13:12:44 +0200 |
commit | e6880cd8ccf82d993f222cb14b4860581654acb8 (patch) | |
tree | 45f318f4ece2f0d6ca73fc3f775b9ba277ccdb77 /docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js | |
parent | e911f8029ca612d3b17ced300cdf5b6f13e20972 (diff) | |
parent | 2e60b25ae368b8c19ce5e982aa2672a6c56edf90 (diff) | |
download | Luxcena-Neo-e6880cd8ccf82d993f222cb14b4860581654acb8.tar.gz Luxcena-Neo-e6880cd8ccf82d993f222cb14b4860581654acb8.zip |
Merge branch 'master' of https://github.com/JakobST1n/Luxcena-Neo
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); + } + }); +}); |