From 2f13db475e04e471e6eb6264ab54f2f1f28a699c Mon Sep 17 00:00:00 2001 From: Dima Demakov Date: Mon, 27 Nov 2023 10:03:27 +0100 Subject: [PATCH] doc: make theme consistent across api and other docs Since website based on 2 different repos, there was an inconsistency in theme selection, so we had 2 independant theme props. Now only one stored in local storage is a single source of truth PR-URL: https://github.com/nodejs/node/pull/50877 Reviewed-By: Claudio Wunder Reviewed-By: Yagiz Nizipli --- BUILDING.md | 6 ++++++ doc/api_assets/api.js | 14 +++++++------- doc/contributing/collaborator-guide.md | 7 ++++--- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 46827af7c40cbf..4249f45abbfe06 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -462,6 +462,12 @@ make docopen This will open a file URL to a one-page version of all the browsable HTML documents using the default browser. +```bash +make docclean +``` + +This will clean previously built doc. + To test if Node.js was built correctly: ```bash diff --git a/doc/api_assets/api.js b/doc/api_assets/api.js index c7568206e29f19..8b40042f85cbae 100644 --- a/doc/api_assets/api.js +++ b/doc/api_assets/api.js @@ -2,11 +2,11 @@ { function setupTheme() { - const kCustomPreference = 'customDarkTheme'; - const userSettings = sessionStorage.getItem(kCustomPreference); + const storedTheme = localStorage.getItem('theme'); const themeToggleButton = document.getElementById('theme-toggle-btn'); - if (userSettings === null && window.matchMedia) { + // Follow operating system theme preference + if (storedTheme === null && window.matchMedia) { const mq = window.matchMedia('(prefers-color-scheme: dark)'); if ('onchange' in mq) { @@ -28,16 +28,16 @@ if (mq.matches) { document.documentElement.classList.add('dark-mode'); } - } else if (userSettings === 'true') { + } else if (storedTheme === 'dark') { document.documentElement.classList.add('dark-mode'); } if (themeToggleButton) { themeToggleButton.hidden = false; themeToggleButton.addEventListener('click', function() { - sessionStorage.setItem( - kCustomPreference, - document.documentElement.classList.toggle('dark-mode'), + localStorage.setItem( + 'theme', + document.documentElement.classList.toggle('dark-mode') ? 'dark' : 'light', ); }); } diff --git a/doc/contributing/collaborator-guide.md b/doc/contributing/collaborator-guide.md index 2ecf14a082dc3b..2bf751b7076139 100644 --- a/doc/contributing/collaborator-guide.md +++ b/doc/contributing/collaborator-guide.md @@ -532,9 +532,10 @@ The TSC serves as the final arbiter where required. [build](https://github.com/nodejs/build/issues) repositories, open new issues. Run a new CI any time someone pushes new code to the pull request. 4. Check that the commit message adheres to [commit message guidelines][]. -5. Add all necessary [metadata](#metadata) to commit messages before landing. If - you are unsure exactly how to format the commit messages, use the commit log - as a reference. See [this commit][commit-example] as an example. +5. Add all necessary [metadata][git-node-metadata] to commit messages before + landing. If you are unsure exactly how to format the commit messages, use + the commit log as a reference. See [this commit][commit-example] as an + example. For pull requests from first-time contributors, be [welcoming](#welcoming-first-time-contributors). Also, verify that their git