Page MenuHomeFreeBSD

D57057.id178129.diff
No OneTemporary

D57057.id178129.diff

diff --git a/website/themes/beastie/assets/js/theme-chooser.js b/website/themes/beastie/assets/js/theme-chooser.js
new file mode 100644
--- /dev/null
+++ b/website/themes/beastie/assets/js/theme-chooser.js
@@ -0,0 +1,47 @@
+/*
+BSD 2-Clause License
+
+Copyright (c) 1994-2026, The FreeBSD Documentation Project
+Copyright (c) 2021-2026, Sergio Carlavilla, 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');
+ });
+})();
diff --git a/website/themes/beastie/layouts/_partials/site-head.html b/website/themes/beastie/layouts/_partials/site-head.html
--- a/website/themes/beastie/layouts/_partials/site-head.html
+++ b/website/themes/beastie/layouts/_partials/site-head.html
@@ -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 -}}
diff --git a/website/themes/beastie/layouts/baseof.html b/website/themes/beastie/layouts/baseof.html
--- a/website/themes/beastie/layouts/baseof.html
+++ b/website/themes/beastie/layouts/baseof.html
@@ -3,26 +3,6 @@
{{ partial "site-head.html" . }}
<body>
<input type="checkbox" class="theme-switch" id="theme-switch">
- <script>
- // FreeBSD 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');
- });
- })();
- </script>
<div id="page">
{{ block "header" . }}{{ partial "site-header.html" .}}{{ end }}
<main>

File Metadata

Mime Type
text/plain
Expires
Tue, Sep 15, 9:41 AM (18 h, 54 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38955481
Default Alt Text
D57057.id178129.diff (3 KB)

Event Timeline