diff --git a/content/redirector.md b/content/redirector.md
index a7cbcce896ff72471085322791e9ae28b4132d63..75fe28e69c42548791d62122e482bd8a8807a58c 100644
--- a/content/redirector.md
+++ b/content/redirector.md
@@ -2,75 +2,4 @@
title: "Redirector"
---
-{{`` | safeJS }}
+
diff --git a/static/js/docs-redirector.js b/static/js/docs-redirector.js
new file mode 100644
index 0000000000000000000000000000000000000000..27d0da9bbd5ac28e8d49a545582ab491c2dde75f
--- /dev/null
+++ b/static/js/docs-redirector.js
@@ -0,0 +1,69 @@
+// Redirector for hcc-docs links
+// Search for URL parameter 'q' and redirect to top match
+
+var lunrIndex;
+
+function getQueryVariable(variable) {
+ var query = window.location.search.substring(1);
+ var vars = query.split('&');
+
+ for (var i = 0; i < vars.length; i++) {
+ var pair = vars[i].split('=');
+
+ if (pair[0] === variable) {
+ return decodeURIComponent(pair[1].replace(/\+/g, '%20'));
+ }
+ }
+}
+
+// Initialize lunrjs using our generated index file
+function initLunr() {
+ // First retrieve the index file
+ return $.getJSON(baseurl + "/index.json")
+ .done(function(index) {
+ pagesIndex = index;
+ // Set up lunrjs by declaring the fields we use
+ // Also provide their boost level for the ranking
+ lunrIndex = new lunr.Index
+ lunrIndex.ref("uri");
+ lunrIndex.field('title', {
+ boost: 15
+ });
+ lunrIndex.field('tags', {
+ boost: 10
+ });
+ lunrIndex.field("content", {
+ boost: 5
+ });
+
+ // Feed lunr with each file and let lunr actually index them
+ pagesIndex.forEach(function(page) {
+ lunrIndex.add(page);
+ });
+ lunrIndex.pipeline.remove(lunrIndex.stemmer)
+ })
+ .fail(function(jqxhr, textStatus, error) {
+ var err = textStatus + ", " + error;
+ console.error("Error getting Hugo index file:", err);
+ });
+}
+
+function search(query) {
+ // Find the item in our index corresponding to the lunr one to have more info
+ return lunrIndex.search(query).map(function(result) {
+ return pagesIndex.filter(function(page) {
+ return page.uri === result.ref;
+ })[0];
+ });
+}
+
+initLunr().then(function() {
+ var searchTerm = getQueryVariable('q');
+ var results = search(searchTerm);
+
+ if (!results.length) {
+ window.location = baseurl;
+ } else {
+ window.location = results[0].uri;
+ }
+});