diff options
author | Jakob Stendahl <14180120+JakobST1n@users.noreply.github.com> | 2018-12-01 00:28:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-01 00:28:28 +0100 |
commit | 19df9946b438b38b9a4f3f57ad002981a1ae1eaf (patch) | |
tree | e8eb839a305502584e31e1b1a96c70406b9b6255 /docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js | |
parent | fd7a1b51126f8b8f889807cb7d56bb3626a0e0b5 (diff) | |
parent | 7ec685de6e441af1f614bb9d18e25c047d21466b (diff) | |
download | Luxcena-Neo-19df9946b438b38b9a4f3f57ad002981a1ae1eaf.tar.gz Luxcena-Neo-19df9946b438b38b9a4f3f57ad002981a1ae1eaf.zip |
Merge pull request #6 from JakobST1n/dev
Written docs, finished CLI
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); + } + }); +}); |