From 94956403786552fcd383f32be366ab02015e9141 Mon Sep 17 00:00:00 2001
From: Silvio Giebl <silvio.giebl@dc-square.de>
Date: Sun, 19 May 2019 17:21:20 +0200
Subject: [PATCH] Improved search preview

---
 _sass/search.scss          | 2 ++
 assets/js/just-the-docs.js | 5 +++--
 assets/js/search-data.json | 2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/_sass/search.scss b/_sass/search.scss
index c740ad94..a8b6a8e1 100644
--- a/_sass/search.scss
+++ b/_sass/search.scss
@@ -129,6 +129,7 @@
       display: inline-block;
       width: 40%;
       vertical-align: top;
+      word-wrap: break-word;
     }
   }
 
@@ -145,6 +146,7 @@
     @include mq(sm) {
       display: inline-block;
       width: 60%;
+      vertical-align: top;
     }
   }
 
diff --git a/assets/js/just-the-docs.js b/assets/js/just-the-docs.js
index e5a44496..ff9b0413 100644
--- a/assets/js/just-the-docs.js
+++ b/assets/js/just-the-docs.js
@@ -42,6 +42,7 @@ function initSearch() {
       // Success!
       var data = JSON.parse(request.responseText);
 
+      lunr.tokenizer.separator = /[\s\-/]+/
       var index = lunr(function () {
         this.ref('id');
         this.field('title', { boost: 200 });
@@ -220,7 +221,7 @@ function initSearch() {
                 var nextSpace = doc.content.indexOf(' ', previewEnd + 1);
                 var nextDot = doc.content.indexOf('.', previewEnd + 1);
                 if ((nextDot > 0) && (nextDot < nextSpace)) {
-                  previewEnd = nextDot + 1;
+                  previewEnd = nextDot;
                   ellipsesAfter = false;
                   break;
                 }
@@ -238,7 +239,7 @@ function initSearch() {
               preview += '<span class="search-result-highlight">' + doc.content.substring(start, end) + '</span>';
               preview += doc.content.substring(end, previewEnd);
               if (ellipsesAfter) {
-                preview += '...';
+                preview += ' ...';
               }
 
               var resultPreview = document.createElement('div');
diff --git a/assets/js/search-data.json b/assets/js/search-data.json
index 49cbc9dc..f0ec51f2 100644
--- a/assets/js/search-data.json
+++ b/assets/js/search-data.json
@@ -4,7 +4,7 @@
   {% for page in site.html_pages %}{% if page.search_exclude != true %}"{{ forloop.index0 }}": {
     "id": "{{ forloop.index0 }}",
     "title": "{{ page.title | replace: '&amp;', '&' }}",
-    "content": "{{ page.content | markdownify | strip_html | escape_once | remove: 'Table of contents' | remove: '```'  | remove: '---' | replace: '\', ' ' | normalize_whitespace }}",
+    "content": "{{ page.content | markdownify | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '</ul', ' . </ul' | replace: '</tr', ' . </tr' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | strip_html | escape_once | remove: 'Table of contents' | remove: '```'  | remove: '---' | replace: '\', ' ' | replace: ' .  .  . ', ' . ' | replace: ' .  . ', ' . ' | normalize_whitespace }}",
     "url": "{{ page.url | absolute_url }}",
     "relUrl": "{{ page.url }}"
   }{% unless forloop.last %},{% endunless %}
-- 
GitLab