-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b89b84b
commit f5a2705
Showing
42 changed files
with
348 additions
and
184 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: 9a09e77bd7ebc3e3b374455fcae26e29 | ||
config: 1c8d747019669992566f06648c08733d | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Binary file not shown.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,224 @@ | ||
const themeFlyoutDisplay = "hidden"; | ||
const themeVersionSelector = "True"; | ||
const themeLanguageSelector = "True"; | ||
|
||
if (themeFlyoutDisplay === "attached") { | ||
function renderLanguages(config) { | ||
if (!config.projects.translations.length) { | ||
return ""; | ||
} | ||
|
||
const languagesHTML = ` | ||
<dl> | ||
<dt>Languages</dt> | ||
${config.projects.translations | ||
.map( | ||
(translation) => ` | ||
<dd ${translation.slug == config.projects.current.slug ? 'class="rtd-current-item"' : ""}> | ||
<a href="${translation.urls.documentation}">${translation.language.code}</a> | ||
</dd> | ||
`, | ||
) | ||
.join("\n")} | ||
</dl> | ||
`; | ||
return languagesHTML; | ||
} | ||
|
||
function renderVersions(config) { | ||
if (!config.versions.active.length) { | ||
return ""; | ||
} | ||
const versionsHTML = ` | ||
<dl> | ||
<dt>Versions</dt> | ||
${config.versions.active | ||
.map( | ||
(version) => ` | ||
<dd ${version.slug === config.versions.current.slug ? 'class="rtd-current-item"' : ""}> | ||
<a href="${version.urls.documentation}">${version.slug}</a> | ||
</dd> | ||
`, | ||
) | ||
.join("\n")} | ||
</dl> | ||
`; | ||
return versionsHTML; | ||
} | ||
|
||
function renderDownloads(config) { | ||
if (!Object.keys(config.versions.current.downloads).length) { | ||
return ""; | ||
} | ||
const downloadsNameDisplay = { | ||
pdf: "PDF", | ||
epub: "Epub", | ||
htmlzip: "HTML", | ||
}; | ||
|
||
const downloadsHTML = ` | ||
<dl> | ||
<dt>Downloads</dt> | ||
${Object.entries(config.versions.current.downloads) | ||
.map( | ||
([name, url]) => ` | ||
<dd> | ||
<a href="${url}">${downloadsNameDisplay[name]}</a> | ||
</dd> | ||
`, | ||
) | ||
.join("\n")} | ||
</dl> | ||
`; | ||
return downloadsHTML; | ||
} | ||
|
||
document.addEventListener("readthedocs-addons-data-ready", function (event) { | ||
const config = event.detail.data(); | ||
|
||
const flyout = ` | ||
<div class="rst-versions" data-toggle="rst-versions" role="note"> | ||
<span class="rst-current-version" data-toggle="rst-current-version"> | ||
<span class="fa fa-book"> Read the Docs</span> | ||
v: ${config.versions.current.slug} | ||
<span class="fa fa-caret-down"></span> | ||
</span> | ||
<div class="rst-other-versions"> | ||
<div class="injected"> | ||
${renderLanguages(config)} | ||
${renderVersions(config)} | ||
${renderDownloads(config)} | ||
<dl> | ||
<dt>On Read the Docs</dt> | ||
<dd> | ||
<a href="${config.projects.current.urls.home}">Project Home</a> | ||
</dd> | ||
<dd> | ||
<a href="${config.projects.current.urls.builds}">Builds</a> | ||
</dd> | ||
<dd> | ||
<a href="${config.projects.current.urls.downloads}">Downloads</a> | ||
</dd> | ||
</dl> | ||
<dl> | ||
<dt>Search</dt> | ||
<dd> | ||
<form id="flyout-search-form"> | ||
<input | ||
class="wy-form" | ||
type="text" | ||
name="q" | ||
aria-label="Search docs" | ||
placeholder="Search docs" | ||
/> | ||
</form> | ||
</dd> | ||
</dl> | ||
<hr /> | ||
<small> | ||
<span>Hosted by <a href="https://about.readthedocs.org/?utm_source=&utm_content=flyout">Read the Docs</a></span> | ||
</small> | ||
</div> | ||
</div> | ||
`; | ||
|
||
// Inject the generated flyout into the body HTML element. | ||
document.body.insertAdjacentHTML("beforeend", flyout); | ||
|
||
// Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout. | ||
document | ||
.querySelector("#flyout-search-form") | ||
.addEventListener("focusin", () => { | ||
const event = new CustomEvent("readthedocs-search-show"); | ||
document.dispatchEvent(event); | ||
}); | ||
}) | ||
} | ||
|
||
if (themeLanguageSelector || themeVersionSelector) { | ||
function onSelectorSwitch(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 versionSwitch = document.querySelector( | ||
"div.switch-menus > div.version-switch", | ||
); | ||
if (themeVersionSelector) { | ||
let versions = config.versions.active; | ||
if (config.versions.current.hidden || config.versions.current.type === "external") { | ||
versions.unshift(config.versions.current); | ||
} | ||
const versionSelect = ` | ||
<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> | ||
`; | ||
|
||
versionSwitch.innerHTML = versionSelect; | ||
versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); | ||
} | ||
|
||
const languageSwitch = document.querySelector( | ||
"div.switch-menus > div.language-switch", | ||
); | ||
|
||
if (themeLanguageSelector) { | ||
if (config.projects.translations.length) { | ||
// Add 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> | ||
${languages | ||
.map( | ||
(language) => ` | ||
<option | ||
value="${language.language.code}" | ||
${config.projects.current.slug === language.slug ? 'selected="selected"' : ""} | ||
data-url="${language.urls.documentation}"> | ||
${language.language.name} | ||
</option>`, | ||
) | ||
.join("\n")} | ||
</select> | ||
`; | ||
|
||
languageSwitch.innerHTML = languageSelect; | ||
languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); | ||
} | ||
else { | ||
languageSwitch.remove(); | ||
} | ||
} | ||
}); | ||
} | ||
|
||
document.addEventListener("readthedocs-addons-data-ready", function (event) { | ||
// Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav. | ||
document | ||
.querySelector("[role='search'] input") | ||
.addEventListener("focusin", () => { | ||
const event = new CustomEvent("readthedocs-search-show"); | ||
document.dispatchEvent(event); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.