Skip to content

Commit

Permalink
Activate tabs based on browser's operating system (#1216)
Browse files Browse the repository at this point in the history
  • Loading branch information
hugovk authored Nov 14, 2023
1 parent e95f908 commit 01cb216
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 0 deletions.
42 changes: 42 additions & 0 deletions _static/activate_tab.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// Based on https://stackoverflow.com/a/38241481/724176
function getOS() {
const userAgent = window.navigator.userAgent,
platform =
window.navigator?.userAgentData?.platform || window.navigator.platform,
macosPlatforms = ["macOS", "Macintosh", "MacIntel", "MacPPC", "Mac68K"],
windowsPlatforms = ["Win32", "Win64", "Windows", "WinCE"],
iosPlatforms = ["iPhone", "iPad", "iPod"];

if (macosPlatforms.includes(platform)) {
return "macOS";
} else if (iosPlatforms.includes(platform)) {
return "iOS";
} else if (windowsPlatforms.includes(platform)) {
return "Windows";
} else if (/Android/.test(userAgent)) {
return "Android";
} else if (/Linux/.test(platform)) {
return "Unix";
}

return "unknown";
}

function activateTab(tabName) {
// Find all label elements containing the specified tab name
const labels = document.querySelectorAll(".tab-label");

labels.forEach((label) => {
if (label.textContent.includes(tabName)) {
// Find the associated input element using the 'for' attribute
const tabInputId = label.getAttribute("for");
const tabInput = document.getElementById(tabInputId);

// Check if the input element exists before attempting to set the "checked" attribute
if (tabInput) {
// Activate the tab by setting its "checked" attribute to true
tabInput.checked = true;
}
}
});
}
3 changes: 3 additions & 0 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@
html_css_files = [
'devguide_overrides.css',
]
html_js_files = [
"activate_tab.js",
]
html_logo = "_static/python-logo.svg"
html_favicon = "_static/favicon.png"

Expand Down
8 changes: 8 additions & 0 deletions index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@
Python Developer's Guide
========================

.. raw:: html

<script>
document.addEventListener('DOMContentLoaded', function() {
activateTab(getOS());
});
</script>

.. highlight:: bash

This guide is a comprehensive resource for :ref:`contributing <contributing>`
Expand Down
8 changes: 8 additions & 0 deletions testing/run-write-tests.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@
Running and writing tests
=========================

.. raw:: html

<script>
document.addEventListener('DOMContentLoaded', function() {
activateTab(getOS());
});
</script>

.. note::

This document assumes you are working from an
Expand Down

0 comments on commit 01cb216

Please sign in to comment.