https://github.com/python/cpython/commit/c2f0fb964441b6ae67af6a88cd15dcb0a0f2c89e
commit: c2f0fb964441b6ae67af6a88cd15dcb0a0f2c89e
branch: 3.12
author: Hugo van Kemenade <[email protected]>
committer: hugovk <[email protected]>
date: 2024-06-16T09:14:22-06:00
summary:
[3.12] Docs: remove temporary hardcoded links and move inline JS to own file
(GH-120348) (#120589)
[3.12] Docs: remove temporary hardcoded links (GH-120348)
(cherry picked from commit b8484c6ad7fd14ca464e584b79821b4b906dd77a)
files:
A Doc/tools/static/rtd_switcher.js
M Doc/tools/templates/layout.html
diff --git a/Doc/tools/static/rtd_switcher.js b/Doc/tools/static/rtd_switcher.js
new file mode 100644
index 00000000000000..f5dc7045a0dbc4
--- /dev/null
+++ b/Doc/tools/static/rtd_switcher.js
@@ -0,0 +1,55 @@
+ function onSwitch(event) {
+ const option = event.target.selectedIndex;
+ const item = event.target.options[option];
+ window.location.href = item.dataset.url;
+ }
+
+ document.addEventListener("readthedocs-addons-data-ready", function(event) {
+ const config = event.detail.data()
+ const versionSelect = `
+ <select id="version_select">
+ ${ config.versions.active.map(
+ (version) => `
+ <option
+ value="${ version.slug }"
+ ${ config.versions.current.slug === version.slug ?
'selected="selected"' : '' }
+ data-url="${ version.urls.documentation }">
+ ${ version.slug }
+ </option>`
+ ).join("\n") }
+ </select>
+ `;
+
+ // Prepend the current language to the options on the selector
+ let languages =
config.projects.translations.concat(config.projects.current);
+ languages = languages.sort((a, b) =>
a.language.name.localeCompare(b.language.name));
+
+ const languageSelect = `
+ <select id="language_select">
+ ${ languages.map(
+ (translation) => `
+ <option
+ value="${ translation.slug }"
+ ${ config.projects.current.slug === translation.slug ?
'selected="selected"' : '' }
+ data-url="${ translation.urls.documentation }">
+ ${ translation.language.name }
+ </option>`
+ ).join("\n") }
+ </select>
+ `;
+
+ // Query all the placeholders because there are different ones for
Desktop/Mobile
+ const versionPlaceholders =
document.querySelectorAll(".version_switcher_placeholder");
+ for (placeholder of versionPlaceholders) {
+ placeholder.innerHTML = versionSelect;
+ let selectElement = placeholder.querySelector("select");
+ selectElement.addEventListener("change", onSwitch);
+ }
+
+ const languagePlaceholders =
document.querySelectorAll(".language_switcher_placeholder");
+ for (placeholder of languagePlaceholders) {
+ placeholder.innerHTML = languageSelect;
+ let selectElement = placeholder.querySelector("select");
+ selectElement.addEventListener("change", onSwitch);
+ }
+ });
diff --git a/Doc/tools/templates/layout.html b/Doc/tools/templates/layout.html
index 394ebee5f9e139..b09fd21a8ddcc9 100644
--- a/Doc/tools/templates/layout.html
+++ b/Doc/tools/templates/layout.html
@@ -46,90 +46,7 @@
{{ super() }}
{%- if not embedded %}
-<meta name="readthedocs-addons-api-version" content="1">
-<script type="text/javascript">
- function onSwitch(event) {
- const option = event.target.selectedIndex;
- const item = event.target.options[option];
- window.location.href = item.dataset.url;
- }
-
- document.addEventListener("readthedocs-addons-data-ready", function(event) {
- const config = event.detail.data()
-
- // Add some mocked hardcoded versions pointing to the official
- // documentation while migrating to Read the Docs.
- // These are only for testing purposes.
- // TODO: remove them when managing all the versions on Read the Docs,
- // since all the "active, built and not hidden" versions will be shown
automatically.
- let versions = config.versions.active.concat([
- {
- slug: "dev (3.13)",
- urls: {
- documentation: "https://docs.python.org/3.13/",
- }
- },
- {
- slug: "3.12",
- urls: {
- documentation: "https://docs.python.org/3.12/",
- }
- },
- {
- slug: "3.11",
- urls: {
- documentation: "https://docs.python.org/3.11/",
- }
- },
- ]);
-
- const versionSelect = `
- <select id="version_select">
- ${ versions.map(
- (version) => `
- <option
- value="${ version.slug }"
- ${ config.versions.current.slug === version.slug ?
'selected="selected"' : '' }
- data-url="${ version.urls.documentation }">
- ${ version.slug }
- </option>`
- ).join("\n") }
- </select>
- `;
-
- // Prepend the current language to the options on the selector
- let languages =
config.projects.translations.concat(config.projects.current);
- languages = languages.sort((a, b) =>
a.language.name.localeCompare(b.language.name));
-
- const languageSelect = `
- <select id="language_select">
- ${ languages.map(
- (translation) => `
- <option
- value="${ translation.slug }"
- ${ config.projects.current.slug === translation.slug ?
'selected="selected"' : '' }
- data-url="${ translation.urls.documentation }">
- ${ translation.language.name }
- </option>`
- ).join("\n") }
- </select>
- `;
-
- // Query all the placeholders because there are different ones for
Desktop/Mobile
- const versionPlaceholders =
document.querySelectorAll(".version_switcher_placeholder");
- for (placeholder of versionPlaceholders) {
- placeholder.innerHTML = versionSelect;
- let selectElement = placeholder.querySelector("select");
- selectElement.addEventListener("change", onSwitch);
- }
-
- const languagePlaceholders =
document.querySelectorAll(".language_switcher_placeholder");
- for (placeholder of languagePlaceholders) {
- placeholder.innerHTML = languageSelect;
- let selectElement = placeholder.querySelector("select");
- selectElement.addEventListener("change", onSwitch);
- }
- });
-</script>
+ <script type="text/javascript" src="{{
pathto('_static/rtd_switcher.js', 1) }}"></script>
+ <meta name="readthedocs-addons-api-version" content="1">
{%- endif %}
{% endblock %}
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]