diff --git a/assets/js/academic.js b/assets/js/academic.js index d90d7ba7..37c58df7 100644 --- a/assets/js/academic.js +++ b/assets/js/academic.js @@ -306,22 +306,24 @@ * Toggle day/night mode. * --------------------------------------------------------------------------- */ - function toggleDarkMode() { + function toggleDarkMode(codeHlEnabled, codeHlLight, codeHlDark) { if ($('body').hasClass('dark')) { $('body').css({opacity: 0, visibility: 'visible'}).animate({opacity: 1}, 500); $('body').removeClass('dark'); - $('link[title=hl-light]')[0].disabled = false; - $('link[title=hl-dark]')[0].disabled = true; - $('.js-dark-toggle i').removeClass('fa-sun'); - $('.js-dark-toggle i').addClass('fa-moon'); + if (codeHlEnabled) { + codeHlLight.disabled = false; + codeHlDark.disabled = true; + } + $('.js-dark-toggle i').removeClass('fa-sun').addClass('fa-moon'); localStorage.setItem('dark_mode', '0'); } else { $('body').css({opacity: 0, visibility: 'visible'}).animate({opacity: 1}, 500); $('body').addClass('dark'); - $('link[title=hl-light]')[0].disabled = true; - $('link[title=hl-dark]')[0].disabled = false; - $('.js-dark-toggle i').removeClass('fa-moon'); - $('.js-dark-toggle i').addClass('fa-sun'); + if (codeHlEnabled) { + codeHlLight.disabled = true; + codeHlDark.disabled = false; + } + $('.js-dark-toggle i').removeClass('fa-moon').addClass('fa-sun'); localStorage.setItem('dark_mode', '1'); } } @@ -337,19 +339,33 @@ default_mode = 1; } let dark_mode = parseInt(localStorage.getItem('dark_mode') || default_mode); + + // Is code highlighting enabled in site config? + const codeHlEnabled = $('link[title=hl-light]').length > 0; + const codeHlLight = $('link[title=hl-light]')[0]; + const codeHlDark = $('link[title=hl-dark]')[0]; + if (dark_mode) { $('body').addClass('dark'); - $('link[title=hl-light]')[0].disabled = true; - $('link[title=hl-dark]')[0].disabled = false; - $('.js-dark-toggle i').removeClass('fa-moon'); - $('.js-dark-toggle i').addClass('fa-sun'); + if (codeHlEnabled) { + codeHlLight.disabled = true; + codeHlDark.disabled = false; + } + $('.js-dark-toggle i').removeClass('fa-moon').addClass('fa-sun'); } else { $('body').removeClass('dark'); - $('link[title=hl-light]')[0].disabled = false; - $('link[title=hl-dark]')[0].disabled = true; - $('.js-dark-toggle i').removeClass('fa-sun'); - $('.js-dark-toggle i').addClass('fa-moon'); + if (codeHlEnabled) { + codeHlLight.disabled = false; + codeHlDark.disabled = true; + } + $('.js-dark-toggle i').removeClass('fa-sun').addClass('fa-moon'); } + + // Toggle day/night mode. + $('.js-dark-toggle').click(function(e) { + e.preventDefault(); + toggleDarkMode(codeHlEnabled, codeHlLight, codeHlDark); + }); }); /* --------------------------------------------------------------------------- @@ -491,12 +507,6 @@ } }); - // Toggle day/night mode. - $('.js-dark-toggle').click(function(e) { - e.preventDefault(); - toggleDarkMode(); - }); - }); })(jQuery); diff --git a/layouts/partials/header.html b/layouts/partials/header.html index f8a2e39f..e09737f1 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -73,7 +73,8 @@ {{ if ($scr.Get "highlight_enabled") }} {{ $v := $css.highlight.version }} {{ with .Site.Params.highlight_style }} - {{ printf "" (printf $css.highlight.url $css.highlight.version .) | safeHTML }} + {{ printf "" (printf $css.highlight.url $css.highlight.version .) | safeHTML }} + {{ printf "" (printf $css.highlight.url $css.highlight.version .) | safeHTML }} {{ else }} {{ if eq ($scr.Get "light") true }} {{ printf "" (printf $css.highlight.url $css.highlight.version "github") | safeHTML }}