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"
 ---
 
-{{`<script>
-
-// 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;
-    }
-});
-
-</script>` | safeJS }}
+<script>{{- readFile "static/js/docs-redirector.js" | safeJS -}}</script>
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;
+    }
+});