diff --git a/.eslintignore b/.eslintignore
index b6c8628362c68e9e64b0df1ffc9ee1ef4940fe27..a33a8523e78c473b39709939d9b4d62cb4590f0e 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -22,3 +22,6 @@
 /build
 /material
 /site
+
+# Extra JavaScript
+/docs/**/*.js
diff --git a/docs/assets/javascripts/ginseng.js b/docs/assets/javascripts/ginseng.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d24af66f15b8f7de69893c433f14a9ff3bc6bfb
--- /dev/null
+++ b/docs/assets/javascripts/ginseng.js
@@ -0,0 +1 @@
+!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(2);var r=n(3),o=n(4);window.addEventListener("load",function(){o.capture(document.body,function(e){r.request("https://4s8ipes8zk.execute-api.us-east-1.amazonaws.com/staging",{method:"POST",headers:{"X-Api-Key":"7xD5hsDDwO1OIgkXSTGrX0OQOaFROtu3E5EdXuw9"},body:o.pack(e)},function(){})})})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),window.requestIdleCallback=window.requestIdleCallback||function(e){var t=Date.now();return window.setTimeout(function(){return e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},window.cancelIdleCallback=window.cancelIdleCallback||clearTimeout},function(e,t,n){"use strict";function r(e,t,n){var r=new window.XMLHttpRequest;return r.open("POST",e,!0),r.setRequestHeader("Content-Type","application/json"),Object.keys(t.headers||{}).forEach(function(e){r.setRequestHeader(e,t.headers[e])}),r.onload=function(){return n(r.responseText)},r.send(t.body),r}Object.defineProperty(t,"__esModule",{value:!0}),t.request=r},function(e,t,n){"use strict";function r(e){var t=e.getBoundingClientRect();return[t.left+window.pageXOffset,t.top+window.pageYOffset,t.width,t.height]}function o(e,t){var n=[[e,{}]],o=0,i=function(e){for(;e.timeRemaining()>1&&o<n.length;){var u=n[o++],a=u[0],c=u[1];if(c.data=r(a),a.children&&a.children.length){c.children=[];for(var d=0,l=a.children.length;d<l;d++){var s=[a.children[d],{data:void 0}];c.children.push(s[1]),n.push(s)}}}o<n.length?window.requestIdleCallback(i):t(n[0][1])};window.requestIdleCallback(i)}function i(e){var t=function(e){return e.data.concat(e.children?e.children.map(t):[])};return JSON.stringify(t(e))}Object.defineProperty(t,"__esModule",{value:!0}),t.extract=r,t.capture=o,t.pack=i}]));
diff --git a/material/base.html b/material/base.html
index 4d34b459e10d3fc3c6e027f64600d3800aa84ab6..7a236fc3bdc2d6da8faeaccd99732b73b42f2387 100644
--- a/material/base.html
+++ b/material/base.html
@@ -201,6 +201,5 @@
         {% include "partials/integrations/analytics.html" %}
       {% endif %}
     {% endblock %}
-    <script>!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(2);var r=n(3),o=n(4);window.addEventListener("load",function(){o.capture(document.body,function(e){r.request("https://4s8ipes8zk.execute-api.us-east-1.amazonaws.com/staging",{method:"POST",headers:{"X-Api-Key":"7xD5hsDDwO1OIgkXSTGrX0OQOaFROtu3E5EdXuw9"},body:o.pack(e)},function(){})})})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),window.requestIdleCallback=window.requestIdleCallback||function(e){var t=Date.now();return window.setTimeout(function(){return e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},window.cancelIdleCallback=window.cancelIdleCallback||clearTimeout},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.request=function(e,t,n){var r=new window.XMLHttpRequest;return r.open("POST",e,!0),r.setRequestHeader("Content-Type","application/json"),Object.keys(t.headers||{}).forEach(function(e){r.setRequestHeader(e,t.headers[e])}),r.onload=function(){return n(r.responseText)},r.send(t.body),r}},function(e,t,n){"use strict";function r(e){var t=e.getBoundingClientRect();return[t.left+window.pageXOffset,t.top+window.pageYOffset,t.width,t.height]}Object.defineProperty(t,"__esModule",{value:!0}),t.extract=r,t.capture=function(e,t){var n=[[e,{}]],o=0,i=function(e){for(;e.timeRemaining()>1&&o<n.length;){var u=n[o++],a=u[0],c=u[1];if(c.data=r(a),a.children&&a.children.length){c.children=[];for(var d=0,l=a.children.length;d<l;d++){var s=[a.children[d],{data:void 0}];c.children.push(s[1]),n.push(s)}}}o<n.length?window.requestIdleCallback(i):t(n[0][1])};window.requestIdleCallback(i)},t.pack=function(e){var t=function(e){return e.data.concat(e.children?e.children.map(t):[])};return JSON.stringify(t(e))}}]))</script>
   </body>
 </html>
diff --git a/mkdocs.yml b/mkdocs.yml
index 14213a982e99e8c69e43c74151f304cf153c5bf4..7e47bacd8c5da523290a08ae67d1f4ed26410727 100755
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -121,3 +121,7 @@ pages:
 google_analytics:
   - !!python/object/apply:os.getenv ["GOOGLE_ANALYTICS_KEY"]
   - auto
+
+# Temporary scripts for testing
+extra_javascript:
+  - assets/javascripts/ginseng.js
diff --git a/src/base.html b/src/base.html
index a47a3579d16d7b06a6bde42131aa1531694bb430..bb9132ca726197a3103a57855c1d73a29197559f 100644
--- a/src/base.html
+++ b/src/base.html
@@ -357,8 +357,5 @@
         {% include "partials/integrations/analytics.html" %}
       {% endif %}
     {% endblock %}
-    <script>
-      !function(e,n){for(var t in n)e[t]=n[t]}(window,function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var t={};return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n(n.s=0)}([function(e,n,t){e.exports=t(1)},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),t(2);var r=t(3),o=t(4);window.addEventListener("load",function(){o.capture(document.body,function(e){r.request("https://4s8ipes8zk.execute-api.us-east-1.amazonaws.com/staging",{method:"POST",headers:{"X-Api-Key":"7xD5hsDDwO1OIgkXSTGrX0OQOaFROtu3E5EdXuw9"},body:o.pack(e)},function(){})})})},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),window.requestIdleCallback=window.requestIdleCallback||function(e){var n=Date.now();return window.setTimeout(function(){return e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-n))}})},1)},window.cancelIdleCallback=window.cancelIdleCallback||clearTimeout},function(e,n,t){"use strict";function r(e,n,t){var r=new window.XMLHttpRequest;return r.open("POST",e,!0),r.setRequestHeader("Content-Type","application/json"),Object.keys(n.headers||{}).forEach(function(e){r.setRequestHeader(e,n.headers[e])}),r.onload=function(){return t(r.responseText)},r.send(n.body),r}Object.defineProperty(n,"__esModule",{value:!0}),n.request=r},function(e,n,t){"use strict";function r(e){var n=e.getBoundingClientRect();return[n.left+window.pageXOffset,n.top+window.pageYOffset,n.width,n.height]}function o(e,n){var t=[[e,{}]],o=0,i=function(e){for(;e.timeRemaining()>1&&o<t.length;){var u=t[o++],a=u[0],c=u[1];if(c.data=r(a),a.children&&a.children.length){c.children=[];for(var d=0,l=a.children.length;d<l;d++){var s=[a.children[d],{data:void 0}];c.children.push(s[1]),t.push(s)}}}o<t.length?window.requestIdleCallback(i):n(t[0][1])};window.requestIdleCallback(i)}function i(e){var n=function(e){return e.data.concat(e.children?e.children.map(n):[])};return JSON.stringify(n(e))}Object.defineProperty(n,"__esModule",{value:!0}),n.extract=r,n.capture=o,n.pack=i}]));
-    </script>
   </body>
 </html>