diff --git a/assets/js/dark-mode-preview.js b/assets/js/dark-mode-preview.js new file mode 100644 index 0000000000000000000000000000000000000000..addfb27ccf9c02b52934d24d2f6ea8a8180eda53 --- /dev/null +++ b/assets/js/dark-mode-preview.js @@ -0,0 +1,23 @@ +document.addEventListener("DOMContentLoaded", function(){ + + const toggleDarkMode = document.querySelector('.js-toggle-dark-mode') + const cssFile = document.querySelector('[rel="stylesheet"]') + const originalCssRef = cssFile.getAttribute('href') + const darkModeCssRef = originalCssRef.replace('just-the-docs.css', 'dark-mode-preview.css') + const buttonCopy = ['Return to the light side', 'Preview dark color scheme'] + const updateButtonText = function(toggleDarkMode) { + toggleDarkMode.textContent === buttonCopy[0] ? + toggleDarkMode.textContent = buttonCopy[1] : + toggleDarkMode.textContent = buttonCopy[0] + } + + addEvent(toggleDarkMode, 'click', function(){ + if (cssFile.getAttribute('href') === originalCssRef) { + cssFile.setAttribute('href', darkModeCssRef) + updateButtonText(toggleDarkMode) + } else { + cssFile.setAttribute('href', originalCssRef) + updateButtonText(toggleDarkMode) + } + }) +}) \ No newline at end of file diff --git a/docs/configuration.md b/docs/configuration.md index 4a4caef025dfac5750556ac448e791922c71a5ad..cc4b92a609476ae443bb6ec704801bf055870fbc 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -46,20 +46,7 @@ color_scheme: "dark" ``` <button class="btn js-toggle-dark-mode">Preview dark color scheme</button> -<script> -const toggleDarkMode = document.querySelector('.js-toggle-dark-mode') -const cssFile = document.querySelector('[rel="stylesheet"]') -const originalCssRef = cssFile.getAttribute('href') -const darkModeCssRef = originalCssRef.replace('just-the-docs.css', 'dark-mode-preview.css') - -addEvent(toggleDarkMode, 'click', function(){ - if (cssFile.getAttribute('href') === originalCssRef) { - cssFile.setAttribute('href', darkModeCssRef) - } else { - cssFile.setAttribute('href', originalCssRef) - } -}) -</script> +<script type="text/javascript" src="{{ "/assets/js/dark-mode-preview.js" | absolute_url }}"></script> See [Customization]({{ site.baseurl }}{% link docs/customization.md %}) for more information. diff --git a/docs/customization.md b/docs/customization.md index f3fe1c036d6bb549638f369c48e911b152444c16..af9d29e33046fae083c02c5444675b986d7b66db 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -34,20 +34,7 @@ color_scheme: "dark" ``` <button class="btn js-toggle-dark-mode">Preview dark color scheme</button> -<script> -const toggleDarkMode = document.querySelector('.js-toggle-dark-mode') -const cssFile = document.querySelector('[rel="stylesheet"]') -const originalCssRef = cssFile.getAttribute('href') -const darkModeCssRef = originalCssRef.replace('just-the-docs.css', 'dark-mode-preview.css') - -addEvent(toggleDarkMode, 'click', function(){ - if (cssFile.getAttribute('href') === originalCssRef) { - cssFile.setAttribute('href', darkModeCssRef) - } else { - cssFile.setAttribute('href', originalCssRef) - } -}) -</script> +<script type="text/javascript" src="{{ "/assets/js/dark-mode-preview.js" | absolute_url }}"></script> ## Specific visual customization