Added invisible element to hack theme initialization.

This commit is contained in:
donfiguerres 2021-05-26 01:41:34 +08:00
parent 4254d03876
commit b754a9ce85
5 changed files with 18 additions and 5 deletions

View file

@ -15,6 +15,12 @@
</head>
<body data-spy="scroll" data-target="#TableOfContents" data-offset="80">
<!-- INITIALIZE DARK THEME -->
{{ if site.Params.darkTheme.enable }}
{{ partial "helpers/darkmode.html" . }}
{{ end }}
<div class="container-fluid bg-dimmed wrapper">
<!----- ADD NAVBAR --------------->
{{ block "navbar" . }} {{ end }}

View file

@ -32,6 +32,11 @@
</head>
<body data-spy="scroll" data-target="#top-navbar" data-offset="100">
<!-- INITIALIZE DARK THEME -->
{{ if site.Params.darkTheme.enable }}
{{ partial "helpers/darkmode.html" . }}
{{ end }}
<!--- NAVBAR ------------------------->
{{- partial "navigators/navbar.html" . -}}

View file

@ -0,0 +1,3 @@
<!-- This is a 'hack' for initializing the color scheme selection. See /js/darkmode.js -->
<div id="themeInitialization" style="display: none;"
default-theme=" {{ site.Params.darkTheme.default }} "></div>

View file

@ -1,6 +1,5 @@
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="themeSelector"
default-theme=" {{ site.Params.darkTheme.default }} " role="button"
<a class="nav-link dropdown-toggle" href="#" id="themeSelector" role="button"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Theme</a>
<div class="dropdown-menu" aria-labelledby="themeSelector">
<a class="dropdown-item nav-link" href="#" onclick="enableLightTheme()">Light</a>

View file

@ -22,11 +22,11 @@ function useSystemTheme() {
}
function initializeColorScheme() {
// We're using the themeSelector attributes as a 'hack' for setting up the
// We're using the themeInitialization attributes as a 'hack' for setting up the
// default color scheme becauase we don't want to complicate this further by
// creating custom javascript output in Hugo.
themeSelector = document.getElementById("themeSelector");
defaultColorScheme = themeSelector.getAttribute('default-theme');
themeInitialization = document.getElementById("themeInitialization");
defaultColorScheme = themeInitialization.getAttribute('default-theme');
// If the user has already selected a preferred theme then use that instead
// of the default theme. Also, the default theme gets loaded to localStorage
// on the first visit.