mirror of
https://git.FreeBSD.org/doc.git
synced 2026-06-02 11:25:20 +00:00
website: fix light-dark themes switch
Reviewed by: carlavilla, ziaee Approved by: carlavilla Differential Revision: https://reviews.freebsd.org/D57057 PR: 295341
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
BSD 2-Clause License
|
||||
|
||||
Copyright (c) 1994-2026, The FreeBSD Documentation Project
|
||||
Copyright (c) 2026, Vladlen Popolitov
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
// FreeBSD light/dark theme persists
|
||||
;(function() {
|
||||
const toggle = document.getElementById('theme-switch');
|
||||
if (!toggle) return;
|
||||
|
||||
// restore saved state
|
||||
const saved = localStorage.getItem('theme-preference');
|
||||
if (saved === 'dark') {
|
||||
toggle.checked = true;
|
||||
} else if (saved === 'light') {
|
||||
toggle.checked = false;
|
||||
}
|
||||
// if state was no saved - use current state (CSS uses prefers-color-scheme)
|
||||
// save state, when theme switched to or from dark
|
||||
toggle.addEventListener('change', function() {
|
||||
localStorage.setItem('theme-preference', this.checked ? 'dark' : 'light');
|
||||
});
|
||||
})();
|
||||
@@ -44,6 +44,9 @@
|
||||
</script>
|
||||
<!-- END SEO -->
|
||||
|
||||
{{- $themeChooser := resources.Get "js/theme-chooser.js" | resources.Minify }}
|
||||
<script defer src="{{ $themeChooser.RelPermalink }}"></script>
|
||||
|
||||
{{- if hugo.IsServer -}}
|
||||
{{- printf "<!-- Dev mode: Not loading plausible script to avoid bloating stats -->" | safeHTML }}
|
||||
{{- else -}}
|
||||
|
||||
Reference in New Issue
Block a user