aboutsummaryrefslogtreecommitdiff
path: root/docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js
diff options
context:
space:
mode:
authorJakob Stendahl <14180120+JakobST1n@users.noreply.github.com>2018-12-01 00:28:28 +0100
committerGitHub <noreply@github.com>2018-12-01 00:28:28 +0100
commit19df9946b438b38b9a4f3f57ad002981a1ae1eaf (patch)
treee8eb839a305502584e31e1b1a96c70406b9b6255 /docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js
parentfd7a1b51126f8b8f889807cb7d56bb3626a0e0b5 (diff)
parent7ec685de6e441af1f614bb9d18e25c047d21466b (diff)
downloadLuxcena-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.js59
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);
+ }
+ });
+});