mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Squashed commit of the following: (#14401)
commit 6f38009a31b2ff5d6f53de7b74469f495fe04092
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 10 15:36:03 2023 -0700
remove default sphinx footer
commit 0d842749566f40fa8c2dd434fa67bcc5e9df3aa0
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 10 15:21:26 2023 -0700
linting
commit c8484ac7c1f54067b0d3c4aa4aa81de7d36df71d
Merge: 8339800d0 b583e9e64
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 10 14:15:03 2023 -0700
Merge branch 'develop' into docs-rebrand
commit 8339800d0fdd197f589337e1198867d4198a3850
Merge: 633c673c5 88d5e06d4
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 10 14:11:58 2023 -0700
Merge branch 'rebrand' into docs-rebrand
commit 88d5e06d4ce79696b9451991b33834ecc55bf66d
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 10 14:11:52 2023 -0700
remove dev code
commit 633c673c5e227009917d888e1f0991f33aa75f44
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 10 14:02:25 2023 -0700
update home url poitner to production domain
commit b3689cb7c230e1fb3a97400e5412ec14c34fc586
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 10 13:59:34 2023 -0700
fix external link arrow to match core site
commit b7a28a5dfe7517a88870afe67783e9e300b85af4
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 10 13:59:19 2023 -0700
swap in cdnfonts for overpass fonts
commit e979ad5c9f69c9c7ee369a0700a64ea6d9061c2b
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 10 08:30:48 2023 -0700
fix external link arrow spacing/underline
commit b90077863cfff5d8776f5dc74f82f061e0162d37
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Thu Jul 6 16:26:28 2023 -0700
update foot note
commit ed9ddfd327cd0e382286abf0c8896c7c879512b2
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Thu Jul 6 13:12:14 2023 -0700
update nav link hover color
commit 077d3a0c9333c96cbabc3ce2bccf00afac19a312
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Tue Jul 4 20:27:05 2023 -0700
bug fixed for header/nav-link styling
commit 2584dd2e419255ec93430446bd049ff90155987e
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Tue Jul 4 12:15:09 2023 -0700
fix link shift bug
commit 885d2bc52ca3ed9e4727d7f0eaed0e312fedaaaa
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Tue Jul 4 12:13:03 2023 -0700
update nav link hover styling
commit d06c81592ad88ad2e81701cec9e85b6a3cee86ee
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 3 18:25:37 2023 -0700
extract event listener functions
commit 414e444ee67fe937d1295b14ac8591a710bfbdff
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jul 3 18:22:08 2023 -0700
a11y: skip to content link
commit 6c628ea73995dad9b9a6fb502bb216d88f0e9602
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 21:57:24 2023 -0700
fine-tuning more styling
commit 71b617abaf27c34fcecaf6e30795687abf9885f7
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 21:37:02 2023 -0700
fix primary link color
commit d90627418c605bff4398a9e24ae0c5c685f73992
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 21:21:30 2023 -0700
fix mobile versions expansion
commit f0f0fbbcb74ea35efa6e4cf87ab1d855f1ae2bd2
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 21:21:16 2023 -0700
update code styling
commit 727c7ee9b69427eddd73012a89e6ee9ae1ccec8d
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 21:20:38 2023 -0700
remix link styling
commit 4059c00e3d704002ef34f85fd86495f2a4ac9e57
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 21:19:49 2023 -0700
fix whitespace styling
commit 631e2910a53484b97770cad1b3439d412a0ab6d0
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 20:33:54 2023 -0700
fix search input styling
commit 5e06b22a7200b0774bd135c666b4e3437d342350
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 19:37:19 2023 -0700
css adjustments
commit 637d5122038fd6075cd53d57537d728b730acbcf
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 19:15:05 2023 -0700
selector adjustments, linting
commit 781dc7c3009dc406b36cd2bdcb2d02c3c34fafa6
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 18:26:09 2023 -0700
top version/search layout adjustments
commit 7341e17003700133659e5f64ee2d1369ac50e434
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jul 2 18:18:21 2023 -0700
update version div styling
commit 3a4b3feb581b1799e48d395b73aca05760dc5658
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sat Jul 1 21:18:12 2023 -0700
restyle external link arrow for forum link
commit e6cef6312ca73c125c01b78573f21c75fcbbfc87
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sat Jul 1 20:50:31 2023 -0700
add woff2 fonts, use absolute font urls
commit 3bc401b1dbe971501826011a692c38ee9ce4b992
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sat Jul 1 15:15:26 2023 -0700
fix nav button alignment
commit b7d607b7090e1ac6ded55ac6e534549609226236
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Fri Jun 30 19:02:24 2023 -0700
rename pcm param to color
commit d67e23539f720250bb298c11fd2b1b6d7dbb0815
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Fri Jun 30 17:34:56 2023 -0700
center align footer buttons, fix bug on pre text
commit 34a665038dc27e2b8874b3e16ffc581c33f31bc5
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Thu Jun 29 16:40:26 2023 -0700
preload fonts
commit 5b987c31455ffe02135e357ea560bbad8a9c6745
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Thu Jun 29 15:31:41 2023 -0700
antialiased font smoothing
commit 9585fb5bb73f67e37a4f9f1da83e7b133f0b4446
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Thu Jun 29 13:44:51 2023 -0700
search results styling
commit 224ed028b181b3944d2f2e33f4122b15f38f7608
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Thu Jun 29 13:29:09 2023 -0700
restore search functionality
commit ec5782a01cd0f1c1808b353560c39911c9fdc645
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Wed Jun 28 21:55:11 2023 -0700
more mobile menu and styling fixes
commit c033f05e2ab839309e7d3864ae66c465d801e806
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Wed Jun 28 13:14:22 2023 -0700
patch location cleaner
commit 6cae3b5ad67e38f6decfa18eeacce973783a2fc1
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Tue Jun 27 17:49:28 2023 -0700
patch location cleaner
commit e86e6a11189ed57f122382c901fe7a0f49518e83
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Tue Jun 27 17:40:11 2023 -0700
color mode continuity
commit c3ba4ee6c614fa637a34eacbae60c5e88cd018c5
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Tue Jun 27 15:32:11 2023 -0700
refactor layout
commit ac3bae8f34ccbd08f68cb784b3ec00bad70a9281
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jun 26 14:35:00 2023 -0700
color and styling updates
commit 42e301818d3d11152c5ce630c8085db1c1664a13
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jun 26 13:23:03 2023 -0700
highlight active nav link
commit fb72573c01494486ab9b0942c3f67c372af0d5e6
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jun 26 12:34:25 2023 -0700
patch mobile menu bottom scroll stop
commit 2dcef754301d35143ea24ca197906c974e128a25
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Mon Jun 26 12:32:38 2023 -0700
adjust header icon sizes
commit dc75b636b7f442dfe7aaa80ad82470be0f3d4f19
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jun 25 21:41:18 2023 -0700
fix header icon sizes
commit de70f1a56eba85c89c1f01f37770b1d6bd91d5db
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sun Jun 25 19:58:18 2023 -0700
mobile meun debugging
commit 1fe20565a838c2f2212cd95045cd309b076c8b2b
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sat Jun 24 13:21:23 2023 -0700
icon color mode improvements
commit fcb134a4209371277693e919fb06eaeb53e36cb6
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sat Jun 24 11:51:24 2023 -0700
initialize with menu closed
commit defa7c78e981037409ec9d2b9ab871910023f5b0
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Sat Jun 24 11:37:47 2023 -0700
color toggle and mobile menu
commit 695d719612be0ed9cac0f246f0eaf91f3fdb2e75
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Fri Jun 23 16:39:32 2023 -0700
forum url as external link
commit ad182602095909d84331339993b31f2a37bf1cd7
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Fri Jun 23 16:28:14 2023 -0700
patch contributing path
commit fbfeaa7a12a1b9bc86b766a0e490b85d2ded8849
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Fri Jun 23 16:20:57 2023 -0700
update contribute path
commit f7dbf1f2e0a3e31d164d6cc67c952f89c3f8f49e
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Fri Jun 23 16:05:22 2023 -0700
dev: point to vercel build for new solidity site
commit c344c1df86e78ad6ab9bc066ac75659180d068cf
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Fri Jun 23 14:30:40 2023 -0700
update stylesheets, constants, logos
commit c15135378c8568ed93bf685552940cdbe1c07b70
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Fri Jun 23 10:25:05 2023 -0700
bg color cleanup
commit c049df77d9d55adc796bc2f8cd7c186d833aca69
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Thu Jun 22 19:02:49 2023 -0700
clean up initialize and toggle scripts
deprecate dark.css in lieu of a dark more html attribute indicator and css selectors for this attribute. Avoids needing to enable/disable dark stylesheet
commit 881c9cce66e18d30b50c467a22d98836698f5b58
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Thu Jun 22 18:59:24 2023 -0700
import type faces
commit e9b26157aabf4374754cf14d9a4a980c92bd139c
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date: Thu Jun 22 15:39:00 2023 -0700
implement initial styling adjustments
This commit is contained in:
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
// Color mode constants
|
||||
const [DARK, LIGHT] = ["dark", "light"];
|
||||
const LIGHT_LOGO_PATH = "_static/img/logo.svg";
|
||||
const DARK_LOGO_PATH = "_static/img/logo-dark.svg";
|
||||
const SUN_ICON_PATH = "_static/img/sun.svg";
|
||||
const MOON_ICON_PATH = "_static/img/moon.svg";
|
||||
const LIGHT_HAMBURGER_PATH = "_static/img/hamburger-light.svg";
|
||||
const DARK_HAMBURGER_PATH = "_static/img/hamburger-dark.svg";
|
||||
const COLOR_TOGGLE_ICON_CLASS = "color-toggle-icon";
|
||||
const SOLIDITY_LOGO_CLASS = "solidity-logo";
|
||||
const LS_COLOR_SCHEME = "color-scheme";
|
||||
|
||||
// Solidity navigation constants
|
||||
const SOLIDITY_HOME_URL = "https://soliditylang.org";
|
||||
const BLOG_URL = `${SOLIDITY_HOME_URL}/blog`;
|
||||
const DOCS_URL = "/";
|
||||
const USE_CASES_PATH = `${SOLIDITY_HOME_URL}/use-cases`;
|
||||
const CONTRIBUTE_PATH = `/en/latest/contributing.html`;
|
||||
const ABOUT_PATH = `${SOLIDITY_HOME_URL}/about`;
|
||||
const FORUM_URL = "https://forum.soliditylang.org/";
|
||||
const NAV_LINKS = [
|
||||
{ name: "Blog", href: BLOG_URL },
|
||||
{ name: "Documentation", href: DOCS_URL },
|
||||
{ name: "Use cases", href: USE_CASES_PATH },
|
||||
{ name: "Contribute", href: CONTRIBUTE_PATH },
|
||||
{ name: "About", href: ABOUT_PATH },
|
||||
{ name: "Forum", href: FORUM_URL },
|
||||
];
|
||||
|
||||
const MOBILE_MENU_TOGGLE_CLASS = "shift";
|
||||
const WRAPPER_CLASS = "unified-wrapper";
|
||||
Vendored
+250
@@ -0,0 +1,250 @@
|
||||
const getLogoSrc = (isDark) => (isDark ? DARK_LOGO_PATH : LIGHT_LOGO_PATH);
|
||||
|
||||
const getModeIconSrc = (isDark) => (isDark ? SUN_ICON_PATH : MOON_ICON_PATH);
|
||||
|
||||
const getMenuIconSrc = (isDark) =>
|
||||
isDark ? DARK_HAMBURGER_PATH : LIGHT_HAMBURGER_PATH;
|
||||
|
||||
function addFooterNote() {
|
||||
const contentInfo = document.querySelector("div[role=contentinfo]");
|
||||
const footerNote = document.createElement("p");
|
||||
footerNote.classList.add("footer-note");
|
||||
footerNote.innerHTML =
|
||||
'Customized with ❤️ by the <a href="https://ethereum.org/" target="_blank">ethereum.org</a> team.';
|
||||
contentInfo.parentNode.insertBefore(footerNote, contentInfo.nextSibling);
|
||||
}
|
||||
|
||||
function rearrangeDom() {
|
||||
const bodyDivs = document.querySelectorAll("body>div");
|
||||
bodyDivs.forEach((div) => div.remove());
|
||||
const wrapperDiv = document.createElement("div");
|
||||
wrapperDiv.classList.add(WRAPPER_CLASS);
|
||||
bodyDivs.forEach((div) => wrapperDiv.appendChild(div));
|
||||
document.body.prepend(wrapperDiv);
|
||||
|
||||
const rstVersions = document.querySelector(".rst-versions");
|
||||
rstVersions.remove();
|
||||
const wyNavSide = document.querySelector("nav.wy-nav-side");
|
||||
wyNavSide.appendChild(rstVersions);
|
||||
const backdrop = document.createElement("div");
|
||||
backdrop.classList.add("backdrop");
|
||||
wrapperDiv.appendChild(backdrop);
|
||||
|
||||
const content = document.querySelector(".wy-nav-content");
|
||||
content.id = "content";
|
||||
const oldWrap = document.querySelector("section.wy-nav-content-wrap");
|
||||
oldWrap.remove();
|
||||
document.querySelector(".wy-grid-for-nav").appendChild(content);
|
||||
}
|
||||
|
||||
function buildHeader() {
|
||||
const isDarkMode = localStorage.getItem(LS_COLOR_SCHEME) == DARK;
|
||||
|
||||
const header = document.createElement("div");
|
||||
header.classList.add("unified-header");
|
||||
document.querySelector(`.${WRAPPER_CLASS}`).prepend(header);
|
||||
|
||||
const innerHeader = document.createElement("div");
|
||||
innerHeader.classList.add("inner-header");
|
||||
header.appendChild(innerHeader);
|
||||
|
||||
const homeLink = document.createElement("a");
|
||||
homeLink.classList.add("home-link");
|
||||
homeLink.href = SOLIDITY_HOME_URL;
|
||||
homeLink.ariaLabel = "Solidity home";
|
||||
innerHeader.appendChild(homeLink);
|
||||
|
||||
const logo = document.createElement("img");
|
||||
logo.classList.add(SOLIDITY_LOGO_CLASS);
|
||||
logo.src = getLogoSrc(isDarkMode);
|
||||
logo.alt = "Solidity logo";
|
||||
homeLink.appendChild(logo);
|
||||
|
||||
const skipToContent = document.createElement("a");
|
||||
skipToContent.classList.add("skip-to-content");
|
||||
skipToContent.href = "#content";
|
||||
skipToContent.innerText = "{ skip to content }";
|
||||
innerHeader.appendChild(skipToContent);
|
||||
|
||||
const navBar = document.createElement("nav");
|
||||
navBar.classList.add("nav-bar");
|
||||
innerHeader.appendChild(navBar);
|
||||
|
||||
const linkElements = NAV_LINKS.map(({ name, href }) => {
|
||||
const link = document.createElement("a");
|
||||
link.classList.add("nav-link");
|
||||
link.setAttribute("key", name);
|
||||
link.setAttribute("href", href);
|
||||
link.setAttribute("aria-label", name);
|
||||
if (href === FORUM_URL) {
|
||||
link.classList.add("forum-link");
|
||||
link.setAttribute("target", "_blank");
|
||||
link.setAttribute("rel", "noopener noreferrer");
|
||||
}
|
||||
link.innerText = name;
|
||||
return link;
|
||||
});
|
||||
linkElements.forEach((link) => navBar.appendChild(link));
|
||||
|
||||
// Flex wrapper for color mode and mobile menu buttons
|
||||
const navButtonContainer = document.createElement("div");
|
||||
navButtonContainer.classList.add("nav-button-container");
|
||||
navBar.appendChild(navButtonContainer);
|
||||
|
||||
// Build color toggle
|
||||
const toggleIcon = document.createElement("img");
|
||||
toggleIcon.classList.add(COLOR_TOGGLE_ICON_CLASS);
|
||||
toggleIcon.src = getModeIconSrc(isDarkMode);
|
||||
toggleIcon.alt = "Color mode toggle icon";
|
||||
toggleIcon.setAttribute("aria-hidden", "true");
|
||||
toggleIcon.setAttribute("key", "toggle icon");
|
||||
const colorModeButton = document.createElement("button");
|
||||
colorModeButton.classList.add("color-toggle");
|
||||
colorModeButton.setAttribute("type", "button");
|
||||
colorModeButton.setAttribute("aria-label", "Toggle light dark mode");
|
||||
colorModeButton.setAttribute("key", "color mode button");
|
||||
colorModeButton.addEventListener("click", toggleColorMode);
|
||||
colorModeButton.appendChild(toggleIcon);
|
||||
navButtonContainer.appendChild(colorModeButton);
|
||||
|
||||
// Build mobile hamburger menu
|
||||
const menuIcon = document.createElement("img");
|
||||
menuIcon.classList.add(COLOR_TOGGLE_ICON_CLASS);
|
||||
menuIcon.src = getMenuIconSrc(isDarkMode);
|
||||
menuIcon.alt = "Toggle menu";
|
||||
menuIcon.setAttribute("aria-hidden", "true");
|
||||
menuIcon.setAttribute("key", "menu icon");
|
||||
const menuButton = document.createElement("button");
|
||||
menuButton.classList.add("color-toggle");
|
||||
menuButton.classList.add("mobile-menu-button");
|
||||
menuButton.setAttribute("type", "button");
|
||||
menuButton.setAttribute("aria-label", "Toggle menu");
|
||||
menuButton.setAttribute("key", "menu button");
|
||||
menuButton.addEventListener("click", toggleMenu);
|
||||
menuButton.appendChild(menuIcon);
|
||||
navButtonContainer.appendChild(menuButton);
|
||||
}
|
||||
|
||||
const updateActiveNavLink = () => {
|
||||
const navLinks = document.querySelectorAll(".unified-header .nav-link");
|
||||
navLinks.forEach((link) => {
|
||||
const href = link.getAttribute("href");
|
||||
if (document.documentURI.includes("contributing.html")) {
|
||||
link.classList[href.includes("contributing.html") ? "add" : "remove"](
|
||||
"active"
|
||||
);
|
||||
} else {
|
||||
link.classList[document.documentURI.includes(href) ? "add" : "remove"](
|
||||
"active"
|
||||
);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
document.addEventListener("locationchange", updateActiveNavLink);
|
||||
|
||||
function initialize() {
|
||||
// Preload fonts
|
||||
const fonts = [
|
||||
"overpass-regular.otf",
|
||||
"overpass-bold.otf",
|
||||
"overpass-mono-regular.otf",
|
||||
"overpass-mono-bold.otf",
|
||||
];
|
||||
fonts.forEach((filename) => {
|
||||
const link = document.createElement("link");
|
||||
link.rel = "preload";
|
||||
link.as = "font";
|
||||
link.href = `https://solidity-docs-dev.readthedocs.io/en/latest/_static/fonts/${filename}`;
|
||||
link.crossOrigin = "";
|
||||
document.head.appendChild(link);
|
||||
});
|
||||
|
||||
// Rearrange DOM elements for styling
|
||||
rearrangeDom();
|
||||
|
||||
// Check localStorage for existing color scheme preference
|
||||
var prefersDark = localStorage.getItem(LS_COLOR_SCHEME) == DARK;
|
||||
// Check link for search param "color"... it may be "light" or "dark"
|
||||
var urlParams = new URLSearchParams(window.location.search);
|
||||
if (urlParams.size > 0) {
|
||||
// This is used for color mode continuity between the main Solidity Lang site and the docs
|
||||
var colorSchemeParam = urlParams.get("color");
|
||||
// If present, overwrite prefersDark accordingly
|
||||
if (colorSchemeParam) {
|
||||
prefersDark = colorSchemeParam == DARK;
|
||||
}
|
||||
|
||||
// Remove "color" search param from URL
|
||||
const { location, title } = document;
|
||||
const { pathname, origin, search, hash } = location;
|
||||
const newSearchParams = new URLSearchParams(search);
|
||||
newSearchParams.delete("color");
|
||||
const sanitizedSearch =
|
||||
newSearchParams.size < 1 ? "" : "?" + newSearchParams.toString();
|
||||
window.history.replaceState(
|
||||
origin,
|
||||
title,
|
||||
pathname + sanitizedSearch + hash
|
||||
);
|
||||
}
|
||||
|
||||
// In case none existed, establish localStorage color scheme preference
|
||||
var mode = prefersDark ? DARK : LIGHT;
|
||||
localStorage.setItem(LS_COLOR_SCHEME, mode);
|
||||
|
||||
// Select the root element and set the style attribute to denote color-scheme attribute
|
||||
document
|
||||
.querySelector(":root")
|
||||
.setAttribute("style", `--color-scheme: ${mode}`);
|
||||
|
||||
// Remove old input and RTD logo anchor element
|
||||
document.querySelector("input[name=mode]").remove();
|
||||
document.querySelector("label[for=switch]").remove();
|
||||
document.querySelector(".wy-side-nav-search > a").remove();
|
||||
|
||||
// Add footer note
|
||||
addFooterNote();
|
||||
|
||||
// Build header
|
||||
buildHeader();
|
||||
|
||||
// Close menu
|
||||
toggleMenu({ force: false });
|
||||
|
||||
// Update active nav link
|
||||
updateActiveNavLink();
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", initialize);
|
||||
|
||||
const handleClick = (e) => {
|
||||
if (e.target.closest(".backdrop")) {
|
||||
toggleMenu({ force: false });
|
||||
}
|
||||
|
||||
if (e.target.closest("a")) {
|
||||
const target = e.target.closest("a");
|
||||
const href = target.getAttribute("href");
|
||||
if (href.includes(SOLIDITY_HOME_URL)) {
|
||||
const url = new URL(href);
|
||||
const params = new URLSearchParams(url.search);
|
||||
params.set("color", localStorage.getItem(LS_COLOR_SCHEME));
|
||||
url.search = params.toString();
|
||||
target.setAttribute("href", url.toString());
|
||||
}
|
||||
}
|
||||
};
|
||||
document.addEventListener("click", handleClick);
|
||||
|
||||
const handleKeyDown = (e) => {
|
||||
if (e.metaKey && e.key === "k") {
|
||||
document.querySelector("#rtd-search-form input").focus();
|
||||
} else if (e.key === "Escape") {
|
||||
toggleMenu({ force: false });
|
||||
}
|
||||
if (e.metaKey && e.code === "Backslash") {
|
||||
toggleColorMode();
|
||||
}
|
||||
};
|
||||
document.addEventListener("keydown", handleKeyDown);
|
||||
Vendored
+43
-35
@@ -1,39 +1,47 @@
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
function toggleColorMode() {
|
||||
// Check localStorage for previous color scheme preference, assign the opposite
|
||||
var newMode = localStorage.getItem(LS_COLOR_SCHEME) == DARK ? LIGHT : DARK;
|
||||
|
||||
function toggleCssMode(isDay) {
|
||||
var mode = (isDay ? "Day" : "Night");
|
||||
localStorage.setItem("css-mode", mode);
|
||||
// Update localStorage with new color scheme preference
|
||||
localStorage.setItem(LS_COLOR_SCHEME, newMode);
|
||||
|
||||
var url_root = DOCUMENTATION_OPTIONS.URL_ROOT == "./" ? "" : DOCUMENTATION_OPTIONS.URL_ROOT;
|
||||
var daysheet = $(`link[href="${url_root}_static/pygments.css"]`)[0].sheet;
|
||||
daysheet.disabled = !isDay;
|
||||
// Update the root element with the new color scheme preference
|
||||
document
|
||||
.querySelector(":root")
|
||||
.setAttribute("style", `--color-scheme: ${newMode}`);
|
||||
|
||||
var nightsheet = $(`link[href="${url_root}_static/css/dark.css"]`)[0];
|
||||
if (!isDay && nightsheet === undefined) {
|
||||
var element = document.createElement("link");
|
||||
element.setAttribute("rel", "stylesheet");
|
||||
element.setAttribute("type", "text/css");
|
||||
element.setAttribute("href", `${url_root}_static/css/dark.css`);
|
||||
document.getElementsByTagName("head")[0].appendChild(element);
|
||||
return;
|
||||
}
|
||||
if (nightsheet !== undefined) {
|
||||
nightsheet.sheet.disabled = isDay;
|
||||
}
|
||||
// Update logo
|
||||
document
|
||||
.querySelector(`img.${SOLIDITY_LOGO_CLASS}`)
|
||||
.setAttribute("src", newMode === LIGHT ? LIGHT_LOGO_PATH : DARK_LOGO_PATH);
|
||||
|
||||
// Update color mode toggle icon
|
||||
document
|
||||
.querySelector(`img.${COLOR_TOGGLE_ICON_CLASS}`)
|
||||
.setAttribute("src", newMode === LIGHT ? MOON_ICON_PATH : SUN_ICON_PATH);
|
||||
|
||||
// Update hamburger menu icon color
|
||||
document
|
||||
.querySelector("button.mobile-menu-button img")
|
||||
.setAttribute(
|
||||
"src",
|
||||
newMode === LIGHT ? LIGHT_HAMBURGER_PATH : DARK_HAMBURGER_PATH
|
||||
);
|
||||
}
|
||||
|
||||
function toggleMenu(options = {}) {
|
||||
const handleClassToggle = ({ classList }, className) => {
|
||||
if (typeof options.force !== "undefined") {
|
||||
classList.toggle(className, options.force);
|
||||
} else {
|
||||
classList.toggle(className);
|
||||
}
|
||||
|
||||
var initial = localStorage.getItem("css-mode") != "Night";
|
||||
var checkbox = document.querySelector('input[name=mode]');
|
||||
|
||||
toggleCssMode(initial);
|
||||
checkbox.checked = initial;
|
||||
|
||||
checkbox.addEventListener('change', function() {
|
||||
document.documentElement.classList.add('transition');
|
||||
window.setTimeout(() => {
|
||||
document.documentElement.classList.remove('transition');
|
||||
}, 1000)
|
||||
toggleCssMode(this.checked);
|
||||
})
|
||||
|
||||
});
|
||||
};
|
||||
document
|
||||
.querySelectorAll('[data-toggle="rst-versions"]')
|
||||
.forEach((e) => handleClassToggle(e, MOBILE_MENU_TOGGLE_CLASS));
|
||||
document
|
||||
.querySelectorAll('[data-toggle="wy-nav-shift"]')
|
||||
.forEach((e) => handleClassToggle(e, MOBILE_MENU_TOGGLE_CLASS));
|
||||
handleClassToggle(document.querySelector(`.${WRAPPER_CLASS}`), "menu-open");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user