mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-12 06:18:51 +00:00
Fix JS error on index page and detect dark mode (#18191)
* Fix JS error on index page and detect dark mode The theindex.html page doesn't have a dark mode switch so the main function will error because `toggleSwitch` is not defined. Checks have been added to prevent this from happening. Also add automatic detection of system settings for dark-mode. This could also be done with pure css, but then the dark mode variable declarations would have to be duplicated to work with the switch so I went with this approach. * Fix nimdoc tests * Fix rst2html tests
This commit is contained in:
@@ -252,7 +252,6 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
function switchTheme(e) {
|
||||
if (e.target.checked) {
|
||||
document.documentElement.setAttribute('data-theme', 'dark');
|
||||
@@ -263,13 +262,19 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
if (toggleSwitch !== null) {
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
}
|
||||
|
||||
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
|
||||
var currentTheme = localStorage.getItem('theme');
|
||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
currentTheme = 'dark';
|
||||
}
|
||||
if (currentTheme) {
|
||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
||||
|
||||
if (currentTheme === 'dark') {
|
||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
||||
toggleSwitch.checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
function switchTheme(e) {
|
||||
if (e.target.checked) {
|
||||
document.documentElement.setAttribute('data-theme', 'dark');
|
||||
@@ -45,13 +44,19 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
if (toggleSwitch !== null) {
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
}
|
||||
|
||||
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
|
||||
var currentTheme = localStorage.getItem('theme');
|
||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
currentTheme = 'dark';
|
||||
}
|
||||
if (currentTheme) {
|
||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
||||
|
||||
if (currentTheme === 'dark') {
|
||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
||||
toggleSwitch.checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
function switchTheme(e) {
|
||||
if (e.target.checked) {
|
||||
document.documentElement.setAttribute('data-theme', 'dark');
|
||||
@@ -45,13 +44,19 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
if (toggleSwitch !== null) {
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
}
|
||||
|
||||
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
|
||||
var currentTheme = localStorage.getItem('theme');
|
||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
currentTheme = 'dark';
|
||||
}
|
||||
if (currentTheme) {
|
||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
||||
|
||||
if (currentTheme === 'dark') {
|
||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
||||
toggleSwitch.checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
function switchTheme(e) {
|
||||
if (e.target.checked) {
|
||||
document.documentElement.setAttribute('data-theme', 'dark');
|
||||
@@ -45,13 +44,19 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
if (toggleSwitch !== null) {
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
}
|
||||
|
||||
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
|
||||
var currentTheme = localStorage.getItem('theme');
|
||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
currentTheme = 'dark';
|
||||
}
|
||||
if (currentTheme) {
|
||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
||||
|
||||
if (currentTheme === 'dark') {
|
||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
||||
toggleSwitch.checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
function switchTheme(e) {
|
||||
if (e.target.checked) {
|
||||
document.documentElement.setAttribute('data-theme', 'dark');
|
||||
@@ -45,13 +44,19 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
if (toggleSwitch !== null) {
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
}
|
||||
|
||||
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
|
||||
var currentTheme = localStorage.getItem('theme');
|
||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
currentTheme = 'dark';
|
||||
}
|
||||
if (currentTheme) {
|
||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
||||
|
||||
if (currentTheme === 'dark') {
|
||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
||||
toggleSwitch.checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
function switchTheme(e) {
|
||||
if (e.target.checked) {
|
||||
document.documentElement.setAttribute('data-theme', 'dark');
|
||||
@@ -45,13 +44,19 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
if (toggleSwitch !== null) {
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
}
|
||||
|
||||
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
|
||||
var currentTheme = localStorage.getItem('theme');
|
||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
currentTheme = 'dark';
|
||||
}
|
||||
if (currentTheme) {
|
||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
||||
|
||||
if (currentTheme === 'dark') {
|
||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
||||
toggleSwitch.checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
function switchTheme(e) {
|
||||
if (e.target.checked) {
|
||||
document.documentElement.setAttribute('data-theme', 'dark');
|
||||
@@ -45,13 +44,19 @@ function main() {
|
||||
}
|
||||
}
|
||||
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
if (toggleSwitch !== null) {
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
}
|
||||
|
||||
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
|
||||
var currentTheme = localStorage.getItem('theme');
|
||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
currentTheme = 'dark';
|
||||
}
|
||||
if (currentTheme) {
|
||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
||||
|
||||
if (currentTheme === 'dark') {
|
||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
||||
toggleSwitch.checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user