aboutsummaryrefslogtreecommitdiff
path: root/docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js
diff options
context:
space:
mode:
authorJakob Stendahl <jakob.stendahl@outlook.com>2019-09-22 13:12:44 +0200
committerJakob Stendahl <jakob.stendahl@outlook.com>2019-09-22 13:12:44 +0200
commite6880cd8ccf82d993f222cb14b4860581654acb8 (patch)
tree45f318f4ece2f0d6ca73fc3f775b9ba277ccdb77 /docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js
parente911f8029ca612d3b17ced300cdf5b6f13e20972 (diff)
parent2e60b25ae368b8c19ce5e982aa2672a6c56edf90 (diff)
downloadLuxcena-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.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);
+ }
+ });
+});