aboutsummaryrefslogtreecommitdiff
path: root/docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js
diff options
context:
space:
mode:
authorJakob Stendahl <jakob.stendahl@outlook.com>2018-11-29 23:14:58 +0100
committerJakob Stendahl <jakob.stendahl@outlook.com>2018-11-29 23:14:58 +0100
commit101745c6a4a2c6a186be48182d48814177840c65 (patch)
treeee7c7420291473033cf7cd9f921fe21958bf571f /docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js
parent2147880e40ee39ae07c8df9d3500080da467475d (diff)
downloadLuxcena-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.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);
+ }
+ });
+});