Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bep/docuapi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-01-02 13:38:15 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-01-02 19:11:08 +0300
commit54be3ea1162306f86f1e2916e5e6babd58ea7382 (patch)
treef11b7c7bbafd7c15d7f64bd961788d73f89ed807
parent3c0ca916a78a6b207176e947563581c9e5f1ac44 (diff)
Update to lunr.js v2.3.8
-rw-r--r--assets/js/slate/app/_search.js103
-rw-r--r--config.toml5
-rw-r--r--exampleSite/go.mod1
-rw-r--r--exampleSite/go.sum2
4 files changed, 111 insertions, 0 deletions
diff --git a/assets/js/slate/app/_search.js b/assets/js/slate/app/_search.js
new file mode 100644
index 0000000..da51dbb
--- /dev/null
+++ b/assets/js/slate/app/_search.js
@@ -0,0 +1,103 @@
+//= require ../lib/_lunr
+//= require ../lib/_jquery
+//= require ../lib/_jquery.highlight
+; (function () {
+ 'use strict';
+
+ var content, searchResults;
+ var highlightOpts = { element: 'span', className: 'search-highlight' };
+ var searchDelay = 0;
+ var timeoutHandle = 0;
+ var index;
+
+ $(populate);
+ $(bind);
+
+ function populate() {
+ index = lunr(function () {
+ this.ref('id');
+ this.field('title', { boost: 10 });
+ this.field('body')
+ this.pipeline.add(lunr.trimmer, lunr.stopWordFilter);
+ var that = this;
+
+ $('h1, h2').each(function () {
+ var title = $(this);
+ var body = title.nextUntil('h1, h2');
+ that.add({
+ id: title.prop('id'),
+ title: title.text(),
+ body: body.text()
+ });
+ });
+
+ determineSearchDelay(this);
+
+ })
+ }
+
+
+ function determineSearchDelay(index) {
+ if (index._documents.length > 5000) {
+ searchDelay = 300;
+ }
+ }
+
+ function bind() {
+ content = $('.content');
+ searchResults = $('.search-results');
+
+ $('#input-search').on('keyup', function (e) {
+ var wait = function () {
+ return function (executingFunction, waitTime) {
+ clearTimeout(timeoutHandle);
+ timeoutHandle = setTimeout(executingFunction, waitTime);
+ };
+ }();
+ wait(function () {
+ search(e);
+ }, searchDelay);
+ });
+ }
+
+ function search(event) {
+
+ var searchInput = $('#input-search')[0];
+
+ unhighlight();
+ searchResults.addClass('visible');
+
+ // ESC clears the field
+ if (event.keyCode === 27) searchInput.value = '';
+
+ if (searchInput.value) {
+ var results = index.search(searchInput.value).filter(function (r) {
+ return r.score > 0.0001;
+ });
+
+ if (results.length) {
+ searchResults.empty();
+ $.each(results, function (index, result) {
+ var elem = document.getElementById(result.ref);
+ searchResults.append("<li><a href='#" + result.ref + "'>" + $(elem).text() + "</a></li>");
+ });
+ highlight.call(searchInput);
+ } else {
+ searchResults.html('<li></li>');
+ $('.search-results li').text('No Results Found for "' + searchInput.value + '"');
+ }
+ } else {
+ unhighlight();
+ searchResults.removeClass('visible');
+ }
+ }
+
+ function highlight() {
+ if (this.value) content.highlight(this.value, highlightOpts);
+ }
+
+ function unhighlight() {
+ content.unhighlight(highlightOpts);
+ }
+})();
+
diff --git a/config.toml b/config.toml
index ff306cf..41d3404 100644
--- a/config.toml
+++ b/config.toml
@@ -10,6 +10,11 @@ path="github.com/jquery/jquery-dist"
source="dist/jquery.js"
target="assets/js/slate/lib/_jquery.js"
[[module.imports]]
+path="github.com/olivernn/lunr.js"
+[[module.imports.mounts]]
+source="lunr.js"
+target="assets/js/slate/lib/_lunr.js"
+[[module.imports]]
path="github.com/slatedocs/slate"
[[module.imports.mounts]]
source="source/images"
diff --git a/exampleSite/go.mod b/exampleSite/go.mod
index 756ebf4..a39a043 100644
--- a/exampleSite/go.mod
+++ b/exampleSite/go.mod
@@ -5,5 +5,6 @@ go 1.12
require (
github.com/bep/empty-hugo-module v1.0.0 // indirect
github.com/jquery/jquery-dist v0.0.0-20191202185020-55b7d19f7bf1 // indirect
+ github.com/olivernn/lunr.js v2.3.8+incompatible // indirect
github.com/slatedocs/slate v2.3.1+incompatible // indirect
)
diff --git a/exampleSite/go.sum b/exampleSite/go.sum
index 04c35b2..43df89b 100644
--- a/exampleSite/go.sum
+++ b/exampleSite/go.sum
@@ -2,4 +2,6 @@ github.com/bep/empty-hugo-module v1.0.0 h1:aYc9RWea644CdYjg9zCy8nkVF4KjC3fwhUTvv
github.com/bep/empty-hugo-module v1.0.0/go.mod h1:whohinbSjMoFi/Skivj9kvdPs1tEgzYpZ4rXoQk/0/I=
github.com/jquery/jquery-dist v0.0.0-20191202185020-55b7d19f7bf1 h1:5J/Uu1ow4Ldq50ZaN8fq9qkqDq6UJdjSoHy6oVBBSR4=
github.com/jquery/jquery-dist v0.0.0-20191202185020-55b7d19f7bf1/go.mod h1:/lTfttEqFU0GWTaOOMIeNTzLGQ7yTIgyzjtkS/pYIoc=
+github.com/olivernn/lunr.js v2.3.8+incompatible h1:t9qfO9qpBCSEhjnvTHQtfOA8Ggwnvn5Y1JWFalyoPl0=
+github.com/olivernn/lunr.js v2.3.8+incompatible/go.mod h1:yEkQ1DUSMtNsn8n2CqvQXZd0ErWPEG8g9QRmblR+KS8=
github.com/slatedocs/slate v2.3.1+incompatible/go.mod h1:n698aXLkExWIlF7prJey0Kq6wlKIKvj/stVb5oouZDM=