From 282b77ee9c9fd382d5ed576ad5bf7a41d97ca2a5 Mon Sep 17 00:00:00 2001
From: XhmikosR <xhmikosr@gmail.com>
Date: Fri, 19 Oct 2018 19:43:12 +0300
Subject: [PATCH] docs search: take into account the current URL.

---
 site/_includes/docs-sidebar.html      |  2 +-
 site/docs/4.1/assets/js/src/search.js | 19 ++++++++++++++++---
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/site/_includes/docs-sidebar.html b/site/_includes/docs-sidebar.html
index 61edd8ec11..cd6b5f8d2f 100644
--- a/site/_includes/docs-sidebar.html
+++ b/site/_includes/docs-sidebar.html
@@ -1,5 +1,5 @@
 <form class="bd-search d-flex align-items-center">
-  <input type="search" class="form-control" id="search-input" placeholder="Search..." aria-label="Search for..." autocomplete="off" data-siteurl="{{ site.url }}" data-docs-version="{{ site.docs_version }}">
+  <input type="search" class="form-control" id="search-input" placeholder="Search..." aria-label="Search for..." autocomplete="off" data-docs-version="{{ site.docs_version }}">
   <button class="btn btn-link bd-search-docs-toggle d-md-none p-0 ml-3" type="button" data-toggle="collapse" data-target="#bd-docs-nav" aria-controls="bd-docs-nav" aria-expanded="false" aria-label="Toggle docs navigation">
     {%- include icons/menu.svg width="30" height="30" -%}
   </button>
diff --git a/site/docs/4.1/assets/js/src/search.js b/site/docs/4.1/assets/js/src/search.js
index 2e91fcf21e..546cca5c7e 100644
--- a/site/docs/4.1/assets/js/src/search.js
+++ b/site/docs/4.1/assets/js/src/search.js
@@ -12,6 +12,19 @@
   var inputElement = document.getElementById('search-input')
   var siteDocsVersion = inputElement.getAttribute('data-docs-version')
 
+  function getOrigin() {
+    var location = window.location
+    var origin = location.origin
+
+    if (!origin) {
+      var port = location.port ? ':' + location.port : ''
+
+      origin = location.protocol + '//' + location.hostname + port
+    }
+
+    return origin
+  }
+
   window.docsearch({
     apiKey: '5990ad008512000bba2cf951ccf0332f',
     indexName: 'bootstrap',
@@ -27,11 +40,11 @@
     },
     transformData: function (hits) {
       return hits.map(function (hit) {
-        // When in production, return the result as is,
-        // otherwise remove our url from it.
-        var siteurl = inputElement.getAttribute('data-siteurl')
+        var siteurl = getOrigin()
         var urlRE = /^https?:\/\/getbootstrap\.com/
 
+        // When in production, return the result as is,
+        // otherwise remove our url from it.
         hit.url = siteurl.match(urlRE) ? hit.url : hit.url.replace(urlRE, '')
 
         return hit
-- 
GitLab