Removed the Requirement to Install Python and NodeJS (Now Bundled with Borealis)
This commit is contained in:
906
Dependencies/Python/Doc/html/_static/basic.css
vendored
Normal file
906
Dependencies/Python/Doc/html/_static/basic.css
vendored
Normal file
@ -0,0 +1,906 @@
|
||||
/*
|
||||
* Sphinx stylesheet -- basic theme.
|
||||
*/
|
||||
|
||||
/* -- main layout ----------------------------------------------------------- */
|
||||
|
||||
div.clearer {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
div.section::after {
|
||||
display: block;
|
||||
content: '';
|
||||
clear: left;
|
||||
}
|
||||
|
||||
/* -- relbar ---------------------------------------------------------------- */
|
||||
|
||||
div.related {
|
||||
width: 100%;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
div.related h3 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.related ul {
|
||||
margin: 0;
|
||||
padding: 0 0 0 10px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
div.related li {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
div.related li.right {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/* -- sidebar --------------------------------------------------------------- */
|
||||
|
||||
div.sphinxsidebarwrapper {
|
||||
padding: 10px 5px 0 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
float: left;
|
||||
width: 230px;
|
||||
margin-left: -100%;
|
||||
font-size: 90%;
|
||||
word-wrap: break-word;
|
||||
overflow-wrap : break-word;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul ul,
|
||||
div.sphinxsidebar ul.want-points {
|
||||
margin-left: 20px;
|
||||
list-style: square;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar form {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input {
|
||||
border: 1px solid #98dbcc;
|
||||
font-family: sans-serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
div.sphinxsidebar #searchbox form.search {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div.sphinxsidebar #searchbox input[type="text"] {
|
||||
float: left;
|
||||
width: 80%;
|
||||
padding: 0.25em;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
div.sphinxsidebar #searchbox input[type="submit"] {
|
||||
float: left;
|
||||
width: 20%;
|
||||
border-left: none;
|
||||
padding: 0.25em;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* -- search page ----------------------------------------------------------- */
|
||||
|
||||
ul.search {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
ul.search li {
|
||||
padding: 5px 0;
|
||||
}
|
||||
|
||||
ul.search li a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul.search li p.context {
|
||||
color: #888;
|
||||
margin: 2px 0 0 30px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
ul.keywordmatches li.goodmatch a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* -- index page ------------------------------------------------------------ */
|
||||
|
||||
table.contentstable {
|
||||
width: 90%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
table.contentstable p.biglink {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
a.biglink {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
span.linkdescr {
|
||||
font-style: italic;
|
||||
padding-top: 5px;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
/* -- general index --------------------------------------------------------- */
|
||||
|
||||
table.indextable {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
table.indextable td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.indextable ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
table.indextable > tbody > tr > td > ul {
|
||||
padding-left: 0em;
|
||||
}
|
||||
|
||||
table.indextable tr.pcap {
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
table.indextable tr.cap {
|
||||
margin-top: 10px;
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
img.toggler {
|
||||
margin-right: 3px;
|
||||
margin-top: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.modindex-jumpbox {
|
||||
border-top: 1px solid #ddd;
|
||||
border-bottom: 1px solid #ddd;
|
||||
margin: 1em 0 1em 0;
|
||||
padding: 0.4em;
|
||||
}
|
||||
|
||||
div.genindex-jumpbox {
|
||||
border-top: 1px solid #ddd;
|
||||
border-bottom: 1px solid #ddd;
|
||||
margin: 1em 0 1em 0;
|
||||
padding: 0.4em;
|
||||
}
|
||||
|
||||
/* -- domain module index --------------------------------------------------- */
|
||||
|
||||
table.modindextable td {
|
||||
padding: 2px;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
/* -- general body styles --------------------------------------------------- */
|
||||
|
||||
div.body {
|
||||
min-width: 360px;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
div.body p, div.body dd, div.body li, div.body blockquote {
|
||||
-moz-hyphens: auto;
|
||||
-ms-hyphens: auto;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
a.headerlink {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #551A8B;
|
||||
}
|
||||
|
||||
h1:hover > a.headerlink,
|
||||
h2:hover > a.headerlink,
|
||||
h3:hover > a.headerlink,
|
||||
h4:hover > a.headerlink,
|
||||
h5:hover > a.headerlink,
|
||||
h6:hover > a.headerlink,
|
||||
dt:hover > a.headerlink,
|
||||
caption:hover > a.headerlink,
|
||||
p.caption:hover > a.headerlink,
|
||||
div.code-block-caption:hover > a.headerlink {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
div.body p.caption {
|
||||
text-align: inherit;
|
||||
}
|
||||
|
||||
div.body td {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.first {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
p.rubric {
|
||||
margin-top: 30px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
img.align-left, figure.align-left, .figure.align-left, object.align-left {
|
||||
clear: left;
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
img.align-right, figure.align-right, .figure.align-right, object.align-right {
|
||||
clear: right;
|
||||
float: right;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
img.align-center, figure.align-center, .figure.align-center, object.align-center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
img.align-default, figure.align-default, .figure.align-default {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.align-default {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* -- sidebars -------------------------------------------------------------- */
|
||||
|
||||
div.sidebar,
|
||||
aside.sidebar {
|
||||
margin: 0 0 0.5em 1em;
|
||||
border: 1px solid #ddb;
|
||||
padding: 7px;
|
||||
background-color: #ffe;
|
||||
width: 40%;
|
||||
float: right;
|
||||
clear: right;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
p.sidebar-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
nav.contents,
|
||||
aside.topic,
|
||||
div.admonition, div.topic, blockquote {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
/* -- topics ---------------------------------------------------------------- */
|
||||
|
||||
nav.contents,
|
||||
aside.topic,
|
||||
div.topic {
|
||||
border: 1px solid #ccc;
|
||||
padding: 7px;
|
||||
margin: 10px 0 10px 0;
|
||||
}
|
||||
|
||||
p.topic-title {
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* -- admonitions ----------------------------------------------------------- */
|
||||
|
||||
div.admonition {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
div.admonition dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
p.admonition-title {
|
||||
margin: 0px 10px 5px 0px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.body p.centered {
|
||||
text-align: center;
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
/* -- content of sidebars/topics/admonitions -------------------------------- */
|
||||
|
||||
div.sidebar > :last-child,
|
||||
aside.sidebar > :last-child,
|
||||
nav.contents > :last-child,
|
||||
aside.topic > :last-child,
|
||||
div.topic > :last-child,
|
||||
div.admonition > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.sidebar::after,
|
||||
aside.sidebar::after,
|
||||
nav.contents::after,
|
||||
aside.topic::after,
|
||||
div.topic::after,
|
||||
div.admonition::after,
|
||||
blockquote::after {
|
||||
display: block;
|
||||
content: '';
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* -- tables ---------------------------------------------------------------- */
|
||||
|
||||
table.docutils {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
border: 0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table.align-center {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
table.align-default {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
table caption span.caption-number {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
table caption span.caption-text {
|
||||
}
|
||||
|
||||
table.docutils td, table.docutils th {
|
||||
padding: 1px 8px 1px 5px;
|
||||
border-top: 0;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
table.citation td {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
th > :first-child,
|
||||
td > :first-child {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
th > :last-child,
|
||||
td > :last-child {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
/* -- figures --------------------------------------------------------------- */
|
||||
|
||||
div.figure, figure {
|
||||
margin: 0.5em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
div.figure p.caption, figcaption {
|
||||
padding: 0.3em;
|
||||
}
|
||||
|
||||
div.figure p.caption span.caption-number,
|
||||
figcaption span.caption-number {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.figure p.caption span.caption-text,
|
||||
figcaption span.caption-text {
|
||||
}
|
||||
|
||||
/* -- field list styles ----------------------------------------------------- */
|
||||
|
||||
table.field-list td, table.field-list th {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
.field-list ul {
|
||||
margin: 0;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.field-list p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.field-name {
|
||||
-moz-hyphens: manual;
|
||||
-ms-hyphens: manual;
|
||||
-webkit-hyphens: manual;
|
||||
hyphens: manual;
|
||||
}
|
||||
|
||||
/* -- hlist styles ---------------------------------------------------------- */
|
||||
|
||||
table.hlist {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
table.hlist td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* -- object description styles --------------------------------------------- */
|
||||
|
||||
.sig {
|
||||
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
|
||||
}
|
||||
|
||||
.sig-name, code.descname {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.sig-name {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
code.descname {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.sig-prename, code.descclassname {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.optional {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.sig-paren {
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
.sig-param.n {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* C++ specific styling */
|
||||
|
||||
.sig-inline.c-texpr,
|
||||
.sig-inline.cpp-texpr {
|
||||
font-family: unset;
|
||||
}
|
||||
|
||||
.sig.c .k, .sig.c .kt,
|
||||
.sig.cpp .k, .sig.cpp .kt {
|
||||
color: #0033B3;
|
||||
}
|
||||
|
||||
.sig.c .m,
|
||||
.sig.cpp .m {
|
||||
color: #1750EB;
|
||||
}
|
||||
|
||||
.sig.c .s, .sig.c .sc,
|
||||
.sig.cpp .s, .sig.cpp .sc {
|
||||
color: #067D17;
|
||||
}
|
||||
|
||||
|
||||
/* -- other body styles ----------------------------------------------------- */
|
||||
|
||||
ol.arabic {
|
||||
list-style: decimal;
|
||||
}
|
||||
|
||||
ol.loweralpha {
|
||||
list-style: lower-alpha;
|
||||
}
|
||||
|
||||
ol.upperalpha {
|
||||
list-style: upper-alpha;
|
||||
}
|
||||
|
||||
ol.lowerroman {
|
||||
list-style: lower-roman;
|
||||
}
|
||||
|
||||
ol.upperroman {
|
||||
list-style: upper-roman;
|
||||
}
|
||||
|
||||
:not(li) > ol > li:first-child > :first-child,
|
||||
:not(li) > ul > li:first-child > :first-child {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
:not(li) > ol > li:last-child > :last-child,
|
||||
:not(li) > ul > li:last-child > :last-child {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
ol.simple ol p,
|
||||
ol.simple ul p,
|
||||
ul.simple ol p,
|
||||
ul.simple ul p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
ol.simple > li:not(:first-child) > p,
|
||||
ul.simple > li:not(:first-child) > p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
ol.simple p,
|
||||
ul.simple p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
aside.footnote > span,
|
||||
div.citation > span {
|
||||
float: left;
|
||||
}
|
||||
aside.footnote > span:last-of-type,
|
||||
div.citation > span:last-of-type {
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
aside.footnote > p {
|
||||
margin-left: 2em;
|
||||
}
|
||||
div.citation > p {
|
||||
margin-left: 4em;
|
||||
}
|
||||
aside.footnote > p:last-of-type,
|
||||
div.citation > p:last-of-type {
|
||||
margin-bottom: 0em;
|
||||
}
|
||||
aside.footnote > p:last-of-type:after,
|
||||
div.citation > p:last-of-type:after {
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
dl.field-list {
|
||||
display: grid;
|
||||
grid-template-columns: fit-content(30%) auto;
|
||||
}
|
||||
|
||||
dl.field-list > dt {
|
||||
font-weight: bold;
|
||||
word-break: break-word;
|
||||
padding-left: 0.5em;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
dl.field-list > dd {
|
||||
padding-left: 0.5em;
|
||||
margin-top: 0em;
|
||||
margin-left: 0em;
|
||||
margin-bottom: 0em;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
dd > :first-child {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
dd ul, dd table {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
.sig dd {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.sig dl {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
dl > dd:last-child,
|
||||
dl > dd:last-child > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
dt:target, span.highlighted {
|
||||
background-color: #fbe54e;
|
||||
}
|
||||
|
||||
rect.highlighted {
|
||||
fill: #fbe54e;
|
||||
}
|
||||
|
||||
dl.glossary dt {
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.versionmodified {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.system-message {
|
||||
background-color: #fda;
|
||||
padding: 5px;
|
||||
border: 3px solid red;
|
||||
}
|
||||
|
||||
.footnote:target {
|
||||
background-color: #ffa;
|
||||
}
|
||||
|
||||
.line-block {
|
||||
display: block;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.line-block .line-block {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin-left: 1.5em;
|
||||
}
|
||||
|
||||
.guilabel, .menuselection {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.accelerator {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.classifier {
|
||||
font-style: oblique;
|
||||
}
|
||||
|
||||
.classifier:before {
|
||||
font-style: normal;
|
||||
margin: 0 0.5em;
|
||||
content: ":";
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
abbr, acronym {
|
||||
border-bottom: dotted 1px;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
/* -- code displays --------------------------------------------------------- */
|
||||
|
||||
pre {
|
||||
overflow: auto;
|
||||
overflow-y: hidden; /* fixes display issues on Chrome browsers */
|
||||
}
|
||||
|
||||
pre, div[class*="highlight-"] {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
span.pre {
|
||||
-moz-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
-webkit-hyphens: none;
|
||||
hyphens: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
div[class*="highlight-"] {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
td.linenos pre {
|
||||
border: 0;
|
||||
background-color: transparent;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
table.highlighttable {
|
||||
display: block;
|
||||
}
|
||||
|
||||
table.highlighttable tbody {
|
||||
display: block;
|
||||
}
|
||||
|
||||
table.highlighttable tr {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
table.highlighttable td {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
table.highlighttable td.linenos {
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
|
||||
table.highlighttable td.code {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.highlight .hll {
|
||||
display: block;
|
||||
}
|
||||
|
||||
div.highlight pre,
|
||||
table.highlighttable pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.code-block-caption + div {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
div.code-block-caption {
|
||||
margin-top: 1em;
|
||||
padding: 2px 5px;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
div.code-block-caption code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
table.highlighttable td.linenos,
|
||||
span.linenos,
|
||||
div.highlight span.gp { /* gp: Generic.Prompt */
|
||||
user-select: none;
|
||||
-webkit-user-select: text; /* Safari fallback only */
|
||||
-webkit-user-select: none; /* Chrome/Safari */
|
||||
-moz-user-select: none; /* Firefox */
|
||||
-ms-user-select: none; /* IE10+ */
|
||||
}
|
||||
|
||||
div.code-block-caption span.caption-number {
|
||||
padding: 0.1em 0.3em;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.code-block-caption span.caption-text {
|
||||
}
|
||||
|
||||
div.literal-block-wrapper {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
code.xref, a code {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.viewcode-link {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.viewcode-back {
|
||||
float: right;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
div.viewcode-block:target {
|
||||
margin: -1px -10px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
/* -- math display ---------------------------------------------------------- */
|
||||
|
||||
img.math {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
div.body div.math p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
span.eqno {
|
||||
float: right;
|
||||
}
|
||||
|
||||
span.eqno a.headerlink {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
div.math:hover a.headerlink {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
/* -- printout stylesheet --------------------------------------------------- */
|
||||
|
||||
@media print {
|
||||
div.document,
|
||||
div.documentwrapper,
|
||||
div.bodywrapper {
|
||||
margin: 0 !important;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.sphinxsidebar,
|
||||
div.related,
|
||||
div.footer,
|
||||
#top-link {
|
||||
display: none;
|
||||
}
|
||||
}
|
59
Dependencies/Python/Doc/html/_static/changelog_search.js
vendored
Normal file
59
Dependencies/Python/Doc/html/_static/changelog_search.js
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
// add the search form and bind the events
|
||||
document
|
||||
.querySelector("h1")
|
||||
.insertAdjacentHTML(
|
||||
"afterend",
|
||||
[
|
||||
"<p>Filter entries by content:",
|
||||
'<input type="text" value="" id="searchbox" style="width: 50%">',
|
||||
'<input type="submit" id="searchbox-submit" value="Filter"></p>',
|
||||
].join("\n"),
|
||||
);
|
||||
|
||||
function doFilter() {
|
||||
let query;
|
||||
try {
|
||||
query = new RegExp(document.querySelector("#searchbox").value, "i");
|
||||
} catch (e) {
|
||||
return; // not a valid regex (yet)
|
||||
}
|
||||
// find headers for the versions (What's new in Python X.Y.Z?)
|
||||
const h2s = document.querySelectorAll("#changelog h2");
|
||||
for (const h2 of h2s) {
|
||||
let sections_found = 0;
|
||||
// find headers for the sections (Core, Library, etc.)
|
||||
const h3s = h2.parentNode.querySelectorAll("h3");
|
||||
for (const h3 of h3s) {
|
||||
let entries_found = 0;
|
||||
// find all the entries
|
||||
const lis = h3.parentNode.querySelectorAll("li");
|
||||
for (let li of lis) {
|
||||
// check if the query matches the entry
|
||||
if (query.test(li.textContent)) {
|
||||
li.style.display = "block";
|
||||
entries_found++;
|
||||
} else {
|
||||
li.style.display = "none";
|
||||
}
|
||||
}
|
||||
// if there are entries, show the section, otherwise hide it
|
||||
if (entries_found > 0) {
|
||||
h3.parentNode.style.display = "block";
|
||||
sections_found++;
|
||||
} else {
|
||||
h3.parentNode.style.display = "none";
|
||||
}
|
||||
}
|
||||
if (sections_found > 0) {
|
||||
h2.parentNode.style.display = "block";
|
||||
} else {
|
||||
h2.parentNode.style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
document.querySelector("#searchbox").addEventListener("keyup", doFilter);
|
||||
document
|
||||
.querySelector("#searchbox-submit")
|
||||
.addEventListener("click", doFilter);
|
||||
});
|
294
Dependencies/Python/Doc/html/_static/classic.css
vendored
Normal file
294
Dependencies/Python/Doc/html/_static/classic.css
vendored
Normal file
@ -0,0 +1,294 @@
|
||||
/*
|
||||
* Sphinx stylesheet -- classic theme.
|
||||
*/
|
||||
|
||||
@import url("basic.css");
|
||||
|
||||
/* -- page layout ----------------------------------------------------------- */
|
||||
|
||||
html {
|
||||
/* CSS hack for macOS's scrollbar (see #1125) */
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||
font-size: 100%;
|
||||
background-color: white;
|
||||
color: #000;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.document {
|
||||
display: flex;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0 0 0 230px;
|
||||
}
|
||||
|
||||
div.body {
|
||||
background-color: white;
|
||||
color: #222222;
|
||||
padding: 0 20px 30px 20px;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
color: #555555;
|
||||
width: 100%;
|
||||
padding: 9px 0 9px 0;
|
||||
text-align: center;
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
div.footer a {
|
||||
color: #555555;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.related {
|
||||
background-color: white;
|
||||
line-height: 30px;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
div.related a {
|
||||
color: #444444;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3 {
|
||||
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||
color: #444444;
|
||||
font-size: 1.4em;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3 a {
|
||||
color: #444444;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h4 {
|
||||
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||
color: #444444;
|
||||
font-size: 1.3em;
|
||||
font-weight: normal;
|
||||
margin: 5px 0 0 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p {
|
||||
color: #444444;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p.topless {
|
||||
margin: 5px 10px 10px 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul {
|
||||
margin: 10px;
|
||||
padding: 0;
|
||||
color: #444444;
|
||||
}
|
||||
|
||||
div.sphinxsidebar a {
|
||||
color: #444444;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input {
|
||||
border: 1px solid #444444;
|
||||
font-family: sans-serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* for collapsible sidebar */
|
||||
#sidebarbutton {
|
||||
height: 100%;
|
||||
background-color: #cccccc;
|
||||
margin-left: 0;
|
||||
color: #FFFFFF;
|
||||
border-left: 1px solid white;
|
||||
font-size: 1.2em;
|
||||
cursor: pointer;
|
||||
padding-top: 1px;
|
||||
float: right;
|
||||
display: table; /* for vertically centering the <span> */
|
||||
}
|
||||
|
||||
#sidebarbutton:hover {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
#sidebarbutton span {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper {
|
||||
float: left;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
|
||||
/* -- hyperlink styles ------------------------------------------------------ */
|
||||
|
||||
a {
|
||||
color: #0090c0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #00608f;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* -- body styles ----------------------------------------------------------- */
|
||||
|
||||
div.body h1,
|
||||
div.body h2,
|
||||
div.body h3,
|
||||
div.body h4,
|
||||
div.body h5,
|
||||
div.body h6 {
|
||||
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||
background-color: white;
|
||||
font-weight: normal;
|
||||
color: #1a1a1a;
|
||||
border-bottom: 1px solid #ccc;
|
||||
margin: 20px -20px 10px -20px;
|
||||
padding: 3px 0 3px 10px;
|
||||
}
|
||||
|
||||
div.body h1 { margin-top: 0; font-size: 200%; }
|
||||
div.body h2 { font-size: 160%; }
|
||||
div.body h3 { font-size: 140%; }
|
||||
div.body h4 { font-size: 120%; }
|
||||
div.body h5 { font-size: 110%; }
|
||||
div.body h6 { font-size: 100%; }
|
||||
|
||||
a.headerlink {
|
||||
color: #aaaaaa;
|
||||
font-size: 0.8em;
|
||||
padding: 0 4px 0 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.headerlink:hover {
|
||||
background-color: #aaaaaa;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.body p, div.body dd, div.body li, div.body blockquote {
|
||||
text-align: justify;
|
||||
line-height: 130%;
|
||||
}
|
||||
|
||||
div.admonition p.admonition-title + p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
div.admonition p {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
div.admonition pre {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
div.admonition ul, div.admonition ol {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
div.note {
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
div.seealso {
|
||||
background-color: #ffc;
|
||||
border: 1px solid #ff6;
|
||||
}
|
||||
|
||||
nav.contents,
|
||||
aside.topic,
|
||||
div.topic {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
div.warning {
|
||||
background-color: #ffe4e4;
|
||||
border: 1px solid #f66;
|
||||
}
|
||||
|
||||
p.admonition-title {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
p.admonition-title:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 5px;
|
||||
background-color: #eeffcc;
|
||||
color: #333333;
|
||||
line-height: 120%;
|
||||
border: 1px solid #ac9;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #ecf0f3;
|
||||
padding: 0 1px 0 1px;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
th, dl.field-list > dt {
|
||||
background-color: #ede;
|
||||
}
|
||||
|
||||
.warning code {
|
||||
background: #efc2c2;
|
||||
}
|
||||
|
||||
.note code {
|
||||
background: #d6d6d6;
|
||||
}
|
||||
|
||||
.viewcode-back {
|
||||
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||
}
|
||||
|
||||
div.viewcode-block:target {
|
||||
background-color: #f4debf;
|
||||
border-top: 1px solid #ac9;
|
||||
border-bottom: 1px solid #ac9;
|
||||
}
|
||||
|
||||
div.code-block-caption {
|
||||
color: #efefef;
|
||||
background-color: #1c4e63;
|
||||
}
|
92
Dependencies/Python/Doc/html/_static/copybutton.js
vendored
Normal file
92
Dependencies/Python/Doc/html/_static/copybutton.js
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
// ``function*`` denotes a generator in JavaScript, see
|
||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*
|
||||
function* getHideableCopyButtonElements(rootElement) {
|
||||
// yield all elements with the "go" (Generic.Output),
|
||||
// "gp" (Generic.Prompt), or "gt" (Generic.Traceback) CSS class
|
||||
for (const el of rootElement.querySelectorAll('.go, .gp, .gt')) {
|
||||
yield el
|
||||
}
|
||||
// tracebacks (.gt) contain bare text elements that need to be
|
||||
// wrapped in a span to hide or show the element
|
||||
for (let el of rootElement.querySelectorAll('.gt')) {
|
||||
while ((el = el.nextSibling) && el.nodeType !== Node.DOCUMENT_NODE) {
|
||||
// stop wrapping text nodes when we hit the next output or
|
||||
// prompt element
|
||||
if (el.nodeType === Node.ELEMENT_NODE && el.matches(".gp, .go")) {
|
||||
break
|
||||
}
|
||||
// if the node is a text node with content, wrap it in a
|
||||
// span element so that we can control visibility
|
||||
if (el.nodeType === Node.TEXT_NODE && el.textContent.trim()) {
|
||||
const wrapper = document.createElement("span")
|
||||
el.after(wrapper)
|
||||
wrapper.appendChild(el)
|
||||
el = wrapper
|
||||
}
|
||||
yield el
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const loadCopyButton = () => {
|
||||
/* Add a [>>>] button in the top-right corner of code samples to hide
|
||||
* the >>> and ... prompts and the output and thus make the code
|
||||
* copyable. */
|
||||
const hide_text = "Hide the prompts and output"
|
||||
const show_text = "Show the prompts and output"
|
||||
|
||||
const button = document.createElement("span")
|
||||
button.classList.add("copybutton")
|
||||
button.innerText = ">>>"
|
||||
button.title = hide_text
|
||||
button.dataset.hidden = "false"
|
||||
const buttonClick = event => {
|
||||
// define the behavior of the button when it's clicked
|
||||
event.preventDefault()
|
||||
const buttonEl = event.currentTarget
|
||||
const codeEl = buttonEl.nextElementSibling
|
||||
if (buttonEl.dataset.hidden === "false") {
|
||||
// hide the code output
|
||||
for (const el of getHideableCopyButtonElements(codeEl)) {
|
||||
el.hidden = true
|
||||
}
|
||||
buttonEl.title = show_text
|
||||
buttonEl.dataset.hidden = "true"
|
||||
} else {
|
||||
// show the code output
|
||||
for (const el of getHideableCopyButtonElements(codeEl)) {
|
||||
el.hidden = false
|
||||
}
|
||||
buttonEl.title = hide_text
|
||||
buttonEl.dataset.hidden = "false"
|
||||
}
|
||||
}
|
||||
|
||||
const highlightedElements = document.querySelectorAll(
|
||||
".highlight-python .highlight,"
|
||||
+ ".highlight-python3 .highlight,"
|
||||
+ ".highlight-pycon .highlight,"
|
||||
+ ".highlight-pycon3 .highlight,"
|
||||
+ ".highlight-default .highlight"
|
||||
)
|
||||
|
||||
// create and add the button to all the code blocks that contain >>>
|
||||
highlightedElements.forEach(el => {
|
||||
el.style.position = "relative"
|
||||
|
||||
// if we find a console prompt (.gp), prepend the (deeply cloned) button
|
||||
const clonedButton = button.cloneNode(true)
|
||||
// the onclick attribute is not cloned, set it on the new element
|
||||
clonedButton.onclick = buttonClick
|
||||
if (el.querySelector(".gp") !== null) {
|
||||
el.prepend(clonedButton)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (document.readyState !== "loading") {
|
||||
loadCopyButton()
|
||||
} else {
|
||||
document.addEventListener("DOMContentLoaded", loadCopyButton)
|
||||
}
|
1
Dependencies/Python/Doc/html/_static/default.css
vendored
Normal file
1
Dependencies/Python/Doc/html/_static/default.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
@import url("classic.css");
|
149
Dependencies/Python/Doc/html/_static/doctools.js
vendored
Normal file
149
Dependencies/Python/Doc/html/_static/doctools.js
vendored
Normal file
@ -0,0 +1,149 @@
|
||||
/*
|
||||
* Base JavaScript utilities for all Sphinx HTML documentation.
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
|
||||
"TEXTAREA",
|
||||
"INPUT",
|
||||
"SELECT",
|
||||
"BUTTON",
|
||||
]);
|
||||
|
||||
const _ready = (callback) => {
|
||||
if (document.readyState !== "loading") {
|
||||
callback();
|
||||
} else {
|
||||
document.addEventListener("DOMContentLoaded", callback);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Small JavaScript module for the documentation.
|
||||
*/
|
||||
const Documentation = {
|
||||
init: () => {
|
||||
Documentation.initDomainIndexTable();
|
||||
Documentation.initOnKeyListeners();
|
||||
},
|
||||
|
||||
/**
|
||||
* i18n support
|
||||
*/
|
||||
TRANSLATIONS: {},
|
||||
PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
|
||||
LOCALE: "unknown",
|
||||
|
||||
// gettext and ngettext don't access this so that the functions
|
||||
// can safely bound to a different name (_ = Documentation.gettext)
|
||||
gettext: (string) => {
|
||||
const translated = Documentation.TRANSLATIONS[string];
|
||||
switch (typeof translated) {
|
||||
case "undefined":
|
||||
return string; // no translation
|
||||
case "string":
|
||||
return translated; // translation exists
|
||||
default:
|
||||
return translated[0]; // (singular, plural) translation tuple exists
|
||||
}
|
||||
},
|
||||
|
||||
ngettext: (singular, plural, n) => {
|
||||
const translated = Documentation.TRANSLATIONS[singular];
|
||||
if (typeof translated !== "undefined")
|
||||
return translated[Documentation.PLURAL_EXPR(n)];
|
||||
return n === 1 ? singular : plural;
|
||||
},
|
||||
|
||||
addTranslations: (catalog) => {
|
||||
Object.assign(Documentation.TRANSLATIONS, catalog.messages);
|
||||
Documentation.PLURAL_EXPR = new Function(
|
||||
"n",
|
||||
`return (${catalog.plural_expr})`
|
||||
);
|
||||
Documentation.LOCALE = catalog.locale;
|
||||
},
|
||||
|
||||
/**
|
||||
* helper function to focus on search bar
|
||||
*/
|
||||
focusSearchBar: () => {
|
||||
document.querySelectorAll("input[name=q]")[0]?.focus();
|
||||
},
|
||||
|
||||
/**
|
||||
* Initialise the domain index toggle buttons
|
||||
*/
|
||||
initDomainIndexTable: () => {
|
||||
const toggler = (el) => {
|
||||
const idNumber = el.id.substr(7);
|
||||
const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
|
||||
if (el.src.substr(-9) === "minus.png") {
|
||||
el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
|
||||
toggledRows.forEach((el) => (el.style.display = "none"));
|
||||
} else {
|
||||
el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
|
||||
toggledRows.forEach((el) => (el.style.display = ""));
|
||||
}
|
||||
};
|
||||
|
||||
const togglerElements = document.querySelectorAll("img.toggler");
|
||||
togglerElements.forEach((el) =>
|
||||
el.addEventListener("click", (event) => toggler(event.currentTarget))
|
||||
);
|
||||
togglerElements.forEach((el) => (el.style.display = ""));
|
||||
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
|
||||
},
|
||||
|
||||
initOnKeyListeners: () => {
|
||||
// only install a listener if it is really needed
|
||||
if (
|
||||
!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
|
||||
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
|
||||
)
|
||||
return;
|
||||
|
||||
document.addEventListener("keydown", (event) => {
|
||||
// bail for input elements
|
||||
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
|
||||
// bail with special keys
|
||||
if (event.altKey || event.ctrlKey || event.metaKey) return;
|
||||
|
||||
if (!event.shiftKey) {
|
||||
switch (event.key) {
|
||||
case "ArrowLeft":
|
||||
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
|
||||
|
||||
const prevLink = document.querySelector('link[rel="prev"]');
|
||||
if (prevLink && prevLink.href) {
|
||||
window.location.href = prevLink.href;
|
||||
event.preventDefault();
|
||||
}
|
||||
break;
|
||||
case "ArrowRight":
|
||||
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
|
||||
|
||||
const nextLink = document.querySelector('link[rel="next"]');
|
||||
if (nextLink && nextLink.href) {
|
||||
window.location.href = nextLink.href;
|
||||
event.preventDefault();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// some keyboard layouts may need Shift to get /
|
||||
switch (event.key) {
|
||||
case "/":
|
||||
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
|
||||
Documentation.focusSearchBar();
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
// quick alias for translations
|
||||
const _ = Documentation.gettext;
|
||||
|
||||
_ready(Documentation.init);
|
13
Dependencies/Python/Doc/html/_static/documentation_options.js
vendored
Normal file
13
Dependencies/Python/Doc/html/_static/documentation_options.js
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
const DOCUMENTATION_OPTIONS = {
|
||||
VERSION: '3.13.3',
|
||||
LANGUAGE: 'en',
|
||||
COLLAPSE_INDEX: false,
|
||||
BUILDER: 'html',
|
||||
FILE_SUFFIX: '.html',
|
||||
LINK_SUFFIX: '.html',
|
||||
HAS_SOURCE: true,
|
||||
SOURCELINK_SUFFIX: '.txt',
|
||||
NAVIGATION_WITH_KEYS: false,
|
||||
SHOW_SEARCH_SUMMARY: true,
|
||||
ENABLE_SEARCH_SHORTCUTS: true,
|
||||
};
|
BIN
Dependencies/Python/Doc/html/_static/file.png
vendored
Normal file
BIN
Dependencies/Python/Doc/html/_static/file.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 286 B |
1
Dependencies/Python/Doc/html/_static/glossary.json
vendored
Normal file
1
Dependencies/Python/Doc/html/_static/glossary.json
vendored
Normal file
File diff suppressed because one or more lines are too long
47
Dependencies/Python/Doc/html/_static/glossary_search.js
vendored
Normal file
47
Dependencies/Python/Doc/html/_static/glossary_search.js
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
|
||||
const GLOSSARY_PAGE = "glossary.html";
|
||||
|
||||
const glossary_search = async () => {
|
||||
const response = await fetch("_static/glossary.json");
|
||||
if (!response.ok) {
|
||||
throw new Error("Failed to fetch glossary.json");
|
||||
}
|
||||
const glossary = await response.json();
|
||||
|
||||
const params = new URLSearchParams(document.location.search).get("q");
|
||||
if (!params) {
|
||||
return;
|
||||
}
|
||||
|
||||
const searchParam = params.toLowerCase();
|
||||
const glossaryItem = glossary[searchParam];
|
||||
if (!glossaryItem) {
|
||||
return;
|
||||
}
|
||||
|
||||
// set up the title text with a link to the glossary page
|
||||
const glossaryTitle = document.getElementById("glossary-title");
|
||||
glossaryTitle.textContent = "Glossary: " + glossaryItem.title;
|
||||
const linkTarget = searchParam.replace(/ /g, "-");
|
||||
glossaryTitle.href = GLOSSARY_PAGE + "#term-" + linkTarget;
|
||||
|
||||
// rewrite any anchor links (to other glossary terms)
|
||||
// to have a full reference to the glossary page
|
||||
const glossaryBody = document.getElementById("glossary-body");
|
||||
glossaryBody.innerHTML = glossaryItem.body;
|
||||
const anchorLinks = glossaryBody.querySelectorAll('a[href^="#"]');
|
||||
anchorLinks.forEach(function (link) {
|
||||
const currentUrl = link.getAttribute("href");
|
||||
link.href = GLOSSARY_PAGE + currentUrl;
|
||||
});
|
||||
|
||||
const glossaryResult = document.getElementById("glossary-result");
|
||||
glossaryResult.style.display = "";
|
||||
};
|
||||
|
||||
if (document.readyState !== "loading") {
|
||||
glossary_search().catch(console.error);
|
||||
} else {
|
||||
document.addEventListener("DOMContentLoaded", glossary_search);
|
||||
}
|
192
Dependencies/Python/Doc/html/_static/language_data.js
vendored
Normal file
192
Dependencies/Python/Doc/html/_static/language_data.js
vendored
Normal file
@ -0,0 +1,192 @@
|
||||
/*
|
||||
* This script contains the language-specific data used by searchtools.js,
|
||||
* namely the list of stopwords, stemmer, scorer and splitter.
|
||||
*/
|
||||
|
||||
var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
|
||||
|
||||
|
||||
/* Non-minified version is copied as a separate JS file, if available */
|
||||
|
||||
/**
|
||||
* Porter Stemmer
|
||||
*/
|
||||
var Stemmer = function() {
|
||||
|
||||
var step2list = {
|
||||
ational: 'ate',
|
||||
tional: 'tion',
|
||||
enci: 'ence',
|
||||
anci: 'ance',
|
||||
izer: 'ize',
|
||||
bli: 'ble',
|
||||
alli: 'al',
|
||||
entli: 'ent',
|
||||
eli: 'e',
|
||||
ousli: 'ous',
|
||||
ization: 'ize',
|
||||
ation: 'ate',
|
||||
ator: 'ate',
|
||||
alism: 'al',
|
||||
iveness: 'ive',
|
||||
fulness: 'ful',
|
||||
ousness: 'ous',
|
||||
aliti: 'al',
|
||||
iviti: 'ive',
|
||||
biliti: 'ble',
|
||||
logi: 'log'
|
||||
};
|
||||
|
||||
var step3list = {
|
||||
icate: 'ic',
|
||||
ative: '',
|
||||
alize: 'al',
|
||||
iciti: 'ic',
|
||||
ical: 'ic',
|
||||
ful: '',
|
||||
ness: ''
|
||||
};
|
||||
|
||||
var c = "[^aeiou]"; // consonant
|
||||
var v = "[aeiouy]"; // vowel
|
||||
var C = c + "[^aeiouy]*"; // consonant sequence
|
||||
var V = v + "[aeiou]*"; // vowel sequence
|
||||
|
||||
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
|
||||
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
|
||||
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
|
||||
var s_v = "^(" + C + ")?" + v; // vowel in stem
|
||||
|
||||
this.stemWord = function (w) {
|
||||
var stem;
|
||||
var suffix;
|
||||
var firstch;
|
||||
var origword = w;
|
||||
|
||||
if (w.length < 3)
|
||||
return w;
|
||||
|
||||
var re;
|
||||
var re2;
|
||||
var re3;
|
||||
var re4;
|
||||
|
||||
firstch = w.substr(0,1);
|
||||
if (firstch == "y")
|
||||
w = firstch.toUpperCase() + w.substr(1);
|
||||
|
||||
// Step 1a
|
||||
re = /^(.+?)(ss|i)es$/;
|
||||
re2 = /^(.+?)([^s])s$/;
|
||||
|
||||
if (re.test(w))
|
||||
w = w.replace(re,"$1$2");
|
||||
else if (re2.test(w))
|
||||
w = w.replace(re2,"$1$2");
|
||||
|
||||
// Step 1b
|
||||
re = /^(.+?)eed$/;
|
||||
re2 = /^(.+?)(ed|ing)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(fp[1])) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
}
|
||||
else if (re2.test(w)) {
|
||||
var fp = re2.exec(w);
|
||||
stem = fp[1];
|
||||
re2 = new RegExp(s_v);
|
||||
if (re2.test(stem)) {
|
||||
w = stem;
|
||||
re2 = /(at|bl|iz)$/;
|
||||
re3 = new RegExp("([^aeiouylsz])\\1$");
|
||||
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
||||
if (re2.test(w))
|
||||
w = w + "e";
|
||||
else if (re3.test(w)) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
else if (re4.test(w))
|
||||
w = w + "e";
|
||||
}
|
||||
}
|
||||
|
||||
// Step 1c
|
||||
re = /^(.+?)y$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(s_v);
|
||||
if (re.test(stem))
|
||||
w = stem + "i";
|
||||
}
|
||||
|
||||
// Step 2
|
||||
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
suffix = fp[2];
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(stem))
|
||||
w = stem + step2list[suffix];
|
||||
}
|
||||
|
||||
// Step 3
|
||||
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
suffix = fp[2];
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(stem))
|
||||
w = stem + step3list[suffix];
|
||||
}
|
||||
|
||||
// Step 4
|
||||
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
|
||||
re2 = /^(.+?)(s|t)(ion)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(mgr1);
|
||||
if (re.test(stem))
|
||||
w = stem;
|
||||
}
|
||||
else if (re2.test(w)) {
|
||||
var fp = re2.exec(w);
|
||||
stem = fp[1] + fp[2];
|
||||
re2 = new RegExp(mgr1);
|
||||
if (re2.test(stem))
|
||||
w = stem;
|
||||
}
|
||||
|
||||
// Step 5
|
||||
re = /^(.+?)e$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(mgr1);
|
||||
re2 = new RegExp(meq1);
|
||||
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
||||
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
|
||||
w = stem;
|
||||
}
|
||||
re = /ll$/;
|
||||
re2 = new RegExp(mgr1);
|
||||
if (re.test(w) && re2.test(w)) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
|
||||
// and turn initial Y back to y
|
||||
if (firstch == "y")
|
||||
w = firstch.toLowerCase() + w.substr(1);
|
||||
return w;
|
||||
}
|
||||
}
|
||||
|
57
Dependencies/Python/Doc/html/_static/menu.js
vendored
Normal file
57
Dependencies/Python/Doc/html/_static/menu.js
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
|
||||
// Make tables responsive by wrapping them in a div and making them scrollable
|
||||
const tables = document.querySelectorAll("table.docutils")
|
||||
tables.forEach(function(table){
|
||||
table.outerHTML = '<div class="responsive-table__container">' + table.outerHTML + "</div>"
|
||||
})
|
||||
|
||||
const togglerInput = document.querySelector(".toggler__input")
|
||||
const togglerLabel = document.querySelector(".toggler__label")
|
||||
const sideMenu = document.querySelector(".menu-wrapper")
|
||||
const menuItems = document.querySelectorAll(".menu")
|
||||
const doc = document.querySelector(".document")
|
||||
const body = document.querySelector("body")
|
||||
|
||||
function closeMenu() {
|
||||
togglerInput.checked = false
|
||||
sideMenu.setAttribute("aria-expanded", "false")
|
||||
sideMenu.setAttribute("aria-hidden", "true")
|
||||
togglerLabel.setAttribute("aria-pressed", "false")
|
||||
body.style.overflow = "visible"
|
||||
}
|
||||
function openMenu() {
|
||||
togglerInput.checked = true
|
||||
sideMenu.setAttribute("aria-expanded", "true")
|
||||
sideMenu.setAttribute("aria-hidden", "false")
|
||||
togglerLabel.setAttribute("aria-pressed", "true")
|
||||
body.style.overflow = "hidden"
|
||||
}
|
||||
|
||||
// Close menu when link on the sideMenu is clicked
|
||||
sideMenu.addEventListener("click", function (event) {
|
||||
let target = event.target
|
||||
if (target.tagName.toLowerCase() !== "a") {
|
||||
return
|
||||
}
|
||||
closeMenu()
|
||||
})
|
||||
// Add accessibility data when sideMenu is opened/closed
|
||||
togglerInput.addEventListener("change", function (_event) {
|
||||
togglerInput.checked ? openMenu() : closeMenu()
|
||||
})
|
||||
// Make sideMenu links tabbable only when visible
|
||||
for(let menuItem of menuItems) {
|
||||
if(togglerInput.checked) {
|
||||
menuItem.setAttribute("tabindex", "0")
|
||||
} else {
|
||||
menuItem.setAttribute("tabindex", "-1")
|
||||
}
|
||||
}
|
||||
// Close sideMenu when document body is clicked
|
||||
doc.addEventListener("click", function () {
|
||||
if (togglerInput.checked) {
|
||||
closeMenu()
|
||||
}
|
||||
})
|
||||
})
|
BIN
Dependencies/Python/Doc/html/_static/minus.png
vendored
Normal file
BIN
Dependencies/Python/Doc/html/_static/minus.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 90 B |
BIN
Dependencies/Python/Doc/html/_static/og-image.png
vendored
Normal file
BIN
Dependencies/Python/Doc/html/_static/og-image.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
10
Dependencies/Python/Doc/html/_static/opensearch.xml
vendored
Normal file
10
Dependencies/Python/Doc/html/_static/opensearch.xml
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
|
||||
<ShortName>Python</ShortName>
|
||||
<Description>Search Python 3.13.3 documentation</Description>
|
||||
<InputEncoding>utf-8</InputEncoding>
|
||||
<Url type="text/html" method="get"
|
||||
template="https://docs.python.org/3.13/search.html?q={searchTerms}"/>
|
||||
<LongName>Python 3.13.3 documentation</LongName>
|
||||
<Image height="16" width="16" type="image/x-icon">https://www.python.org/images/favicon16x16.ico</Image>
|
||||
</OpenSearchDescription>
|
BIN
Dependencies/Python/Doc/html/_static/plus.png
vendored
Normal file
BIN
Dependencies/Python/Doc/html/_static/plus.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 90 B |
BIN
Dependencies/Python/Doc/html/_static/py.png
vendored
Normal file
BIN
Dependencies/Python/Doc/html/_static/py.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 695 B |
14
Dependencies/Python/Doc/html/_static/py.svg
vendored
Normal file
14
Dependencies/Python/Doc/html/_static/py.svg
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7.90472 0.00013087C7.24498 0.00316295 6.61493 0.0588153 6.06056 0.15584C4.42744 0.441207 4.13093 1.0385 4.13093 2.14002V3.59479H7.99018V4.07971H4.13093H2.68259C1.56098 4.07971 0.578874 4.7465 0.271682 6.01495C-0.0826595 7.4689 -0.0983765 8.37618 0.271682 9.89434C0.546011 11.0244 1.20115 11.8296 2.32275 11.8296H3.64965V10.0856C3.64965 8.82574 4.75178 7.71441 6.06056 7.71441H9.91531C10.9883 7.71441 11.8449 6.84056 11.8449 5.77472V2.14002C11.8449 1.10556 10.9626 0.328486 9.91531 0.15584C9.25235 0.046687 8.56447 -0.00290121 7.90472 0.00013087ZM5.81767 1.17017C6.2163 1.17017 6.54184 1.49742 6.54184 1.89978C6.54184 2.30072 6.2163 2.62494 5.81767 2.62494C5.41761 2.62494 5.0935 2.30072 5.0935 1.89978C5.0935 1.49742 5.41761 1.17017 5.81767 1.17017Z" fill="url(#paint0_linear)"/>
|
||||
<path d="M12.3262 4.07971V5.77472C12.3262 7.08883 11.1998 8.19488 9.9153 8.19488H6.06055C5.00466 8.19488 4.13092 9.0887 4.13092 10.1346V13.7693C4.13092 14.8037 5.04038 15.4122 6.06055 15.709C7.28217 16.0642 8.45364 16.1285 9.9153 15.709C10.8869 15.4307 11.8449 14.8708 11.8449 13.7693V12.3145H7.99017V11.8296H11.8449H13.7746C14.8962 11.8296 15.3141 11.0558 15.7042 9.89434C16.1071 8.69865 16.09 7.5488 15.7042 6.01495C15.427 4.91058 14.8976 4.07971 13.7746 4.07971H12.3262ZM10.1582 13.2843C10.5583 13.2843 10.8824 13.6086 10.8824 14.0095C10.8824 14.4119 10.5583 14.7391 10.1582 14.7391C9.75955 14.7391 9.43402 14.4119 9.43402 14.0095C9.43402 13.6086 9.75955 13.2843 10.1582 13.2843Z" fill="url(#paint1_linear)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear" x1="1.25961e-08" y1="1.08223e-08" x2="8.81664" y2="7.59597" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#5A9FD4"/>
|
||||
<stop offset="1" stop-color="#306998"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear" x1="10.0654" y1="13.8872" x2="6.91912" y2="9.42957" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFD43B"/>
|
||||
<stop offset="1" stop-color="#FFE873"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
766
Dependencies/Python/Doc/html/_static/pydoctheme.css
vendored
Normal file
766
Dependencies/Python/Doc/html/_static/pydoctheme.css
vendored
Normal file
@ -0,0 +1,766 @@
|
||||
@import url('classic.css');
|
||||
|
||||
/* Common colours */
|
||||
:root {
|
||||
--good-color: rgb(41 100 51);
|
||||
--good-border: rgb(79 196 100);
|
||||
--middle-color: rgb(133 72 38);
|
||||
--middle-border: rgb(244, 227, 76);
|
||||
--bad-color: rgb(159 49 51);
|
||||
--bad-border: rgb(244, 76, 78);
|
||||
}
|
||||
|
||||
/* unset some styles from the classic stylesheet */
|
||||
div.document,
|
||||
div.body,
|
||||
div.related,
|
||||
div.body h1,
|
||||
div.body h2,
|
||||
div.body h3,
|
||||
div.body h4,
|
||||
div.body h5,
|
||||
div.body h6,
|
||||
div.sphinxsidebar a,
|
||||
div.sphinxsidebar p,
|
||||
div.sphinxsidebar ul,
|
||||
div.sphinxsidebar h3,
|
||||
div.sphinxsidebar h3 a,
|
||||
div.sphinxsidebar h4,
|
||||
.menu a,
|
||||
.menu p,
|
||||
.menu ul,
|
||||
.menu h3,
|
||||
.menu h3 a,
|
||||
.menu h4,
|
||||
table.docutils td,
|
||||
table.indextable tr.cap,
|
||||
pre {
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* Add underlines to links */
|
||||
a[href] {
|
||||
text-decoration: underline 1px;
|
||||
}
|
||||
|
||||
/* Increase the underline offset for code to avoid obscuring underscores */
|
||||
a[href]:has(> code) {
|
||||
text-underline-offset: 0.25em;
|
||||
}
|
||||
|
||||
/* No underline for navigation */
|
||||
a.headerlink,
|
||||
div.genindex-jumpbox a,
|
||||
div.modindex-jumpbox a,
|
||||
div#search-results a,
|
||||
div.sphinxsidebar a,
|
||||
div.toctree-wrapper a,
|
||||
div[role=navigation] a,
|
||||
table.contentstable a,
|
||||
table.indextable a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Except when hovered */
|
||||
div.genindex-jumpbox a:hover,
|
||||
div.modindex-jumpbox a:hover,
|
||||
div#search-results a:hover,
|
||||
div.sphinxsidebar a:hover,
|
||||
div.toctree-wrapper a:hover,
|
||||
div[role=navigation] a:hover,
|
||||
table.contentstable a:hover,
|
||||
table.indextable a:hover {
|
||||
text-decoration: underline;
|
||||
text-underline-offset: auto;
|
||||
}
|
||||
|
||||
body {
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.mobile-nav,
|
||||
.menu-wrapper {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.related {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 1.2em;
|
||||
padding: 0.5em 0;
|
||||
border-width: 1px;
|
||||
border-color: #ccc;
|
||||
}
|
||||
|
||||
.mobile-nav + div.related {
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
|
||||
.document + div.related {
|
||||
border-top-style: solid;
|
||||
}
|
||||
|
||||
div.related a:hover {
|
||||
color: #0095c4;
|
||||
}
|
||||
|
||||
.related .switchers {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.switchers > div {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
div.related ul::after {
|
||||
content: '';
|
||||
clear: both;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.inline-search,
|
||||
form.inline-search input {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
form.inline-search input[type='submit'] {
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
div.document {
|
||||
display: flex;
|
||||
/* Don't let long code literals extend beyond the right side of the screen */
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
/* Don't let long code literals extend beyond the right side of the screen */
|
||||
span.pre {
|
||||
white-space: unset;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
display: flex;
|
||||
width: min(25vw, 350px);
|
||||
float: none;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
max-height: 100vh;
|
||||
color: #444;
|
||||
background-color: #eee;
|
||||
border-radius: 5px;
|
||||
line-height: 130%;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3,
|
||||
div.sphinxsidebar h4 {
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin-left: min(25vw, 350px);
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper {
|
||||
box-sizing: border-box;
|
||||
height: 100%;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
float: none;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper > h3:first-child {
|
||||
margin-top: 0.2em;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper > ul > li > ul > li {
|
||||
margin-bottom: 0.4em;
|
||||
}
|
||||
|
||||
div.sphinxsidebar a:hover {
|
||||
color: #0095c4;
|
||||
}
|
||||
|
||||
form.inline-search input,
|
||||
div.sphinxsidebar input,
|
||||
div.related input {
|
||||
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||
border: 1px solid #999999;
|
||||
font-size: smaller;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input[type='text'] {
|
||||
max-width: 150px;
|
||||
}
|
||||
|
||||
#sidebarbutton {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
/* Sphinx 4.x and earlier compat */
|
||||
height: 100%;
|
||||
background-color: #CCCCCC;
|
||||
margin-left: 0;
|
||||
color: #444444;
|
||||
font-size: 1.2em;
|
||||
cursor: pointer;
|
||||
padding-top: 1px;
|
||||
float: none;
|
||||
/* after Sphinx 4.x and earlier is dropped, only the below is needed */
|
||||
width: 12px;
|
||||
min-width: 12px;
|
||||
border-radius: 0 5px 5px 0;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
#sidebarbutton:hover {
|
||||
background-color: #AAAAAA;
|
||||
}
|
||||
|
||||
div.body {
|
||||
padding: 0 0 0 1.2em;
|
||||
}
|
||||
|
||||
div.body p, div.body dd, div.body li, div.body blockquote {
|
||||
text-align: left;
|
||||
line-height: 1.6;
|
||||
}
|
||||
div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 {
|
||||
margin: 0;
|
||||
border: 0;
|
||||
padding: 0.3em 0;
|
||||
}
|
||||
|
||||
div.body hr {
|
||||
border: 0;
|
||||
background-color: #ccc;
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
div.body pre {
|
||||
border-radius: 3px;
|
||||
border: 1px solid #ac9;
|
||||
}
|
||||
|
||||
/* Admonitions */
|
||||
:root {
|
||||
--admonition-background: #eee;
|
||||
--admonition-border: #ccc;
|
||||
--admonition-color: black;
|
||||
--attention-background: #bbddff5c;
|
||||
--attention-border: #0000ff36;
|
||||
--caution-background: #ffc;
|
||||
--caution-border: #dd6;
|
||||
--danger-background: #ffe4e4;
|
||||
--danger-border: red;
|
||||
--error-background: #ffe4e4;
|
||||
--error-border: red;
|
||||
--hint-background: #dfd;
|
||||
--hint-border: green;
|
||||
--seealso-background: #ffc;
|
||||
--seealso-border: #dd6;
|
||||
--tip-background: #dfd;
|
||||
--tip-border: green;
|
||||
--warning-background: #ffe4e4;
|
||||
--warning-border: red;
|
||||
}
|
||||
|
||||
div.body div.admonition {
|
||||
background-color: var(--admonition-background);
|
||||
border: 1px solid var(--admonition-border);
|
||||
border-radius: 3px;
|
||||
color: var(--admonition-color);
|
||||
}
|
||||
|
||||
div.body div.admonition.attention {
|
||||
background-color: var(--attention-background);
|
||||
border-color: var(--attention-border);
|
||||
}
|
||||
|
||||
div.body div.admonition.caution {
|
||||
background-color: var(--caution-background);
|
||||
border-color: var(--caution-border);
|
||||
}
|
||||
|
||||
div.body div.admonition.danger {
|
||||
background-color: var(--danger-background);
|
||||
border-color: var(--danger-border);
|
||||
}
|
||||
|
||||
div.body div.admonition.error {
|
||||
background-color: var(--error-background);
|
||||
border-color: var(--error-border);
|
||||
}
|
||||
|
||||
div.body div.admonition.hint {
|
||||
background-color: var(--hint-background);
|
||||
border-color: var(--hint-border);
|
||||
}
|
||||
|
||||
div.body div.admonition.seealso {
|
||||
background-color: var(--seealso-background);
|
||||
border-color: var(--seealso-border);
|
||||
}
|
||||
|
||||
div.body div.admonition.tip {
|
||||
background-color: var(--tip-background);
|
||||
border-color: var(--tip-border);
|
||||
}
|
||||
|
||||
div.body div.admonition.warning {
|
||||
background-color: var(--warning-background);
|
||||
border-color: var(--warning-border);
|
||||
}
|
||||
|
||||
div.body div.impl-detail {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
div.body div.impl-detail > p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.body a {
|
||||
color: #0072aa;
|
||||
}
|
||||
|
||||
div.body a:visited {
|
||||
color: #6363bb;
|
||||
}
|
||||
|
||||
div.body a:hover {
|
||||
color: #00b0e4;
|
||||
}
|
||||
|
||||
tt, code, pre {
|
||||
font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
|
||||
font-size: 96.5%;
|
||||
}
|
||||
|
||||
div.body tt,
|
||||
div.body code {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
div.body tt.descname,
|
||||
div.body code.descname {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
div.body tt.xref,
|
||||
div.body a tt,
|
||||
div.body code.xref,
|
||||
div.body a code {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
table.docutils {
|
||||
border: 1px solid #ddd;
|
||||
min-width: 20%;
|
||||
border-radius: 3px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
table.docutils td,
|
||||
table.docutils th {
|
||||
border: 1px solid #ddd !important;
|
||||
border-radius: 3px;
|
||||
padding: 0.3em 0.5em;
|
||||
}
|
||||
|
||||
table p,
|
||||
table li {
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
table.docutils th {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
table.footnote,
|
||||
table.footnote td {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
line-height: 150%;
|
||||
text-align: right;
|
||||
width: auto;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
div.footer a {
|
||||
text-underline-offset: auto;
|
||||
}
|
||||
|
||||
div.footer a:hover {
|
||||
color: #0095c4;
|
||||
}
|
||||
|
||||
/* C API return value annotations */
|
||||
:root {
|
||||
--refcount: var(--good-color);
|
||||
--refcount-return-borrowed-ref: var(--middle-color);
|
||||
}
|
||||
|
||||
.refcount {
|
||||
color: var(--refcount);
|
||||
}
|
||||
|
||||
.refcount.return_borrowed_ref {
|
||||
color: var(--refcount-return-borrowed-ref)
|
||||
}
|
||||
|
||||
.stableabi {
|
||||
color: #229;
|
||||
}
|
||||
|
||||
dl > dt span ~ em,
|
||||
.sig {
|
||||
font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
|
||||
}
|
||||
|
||||
.toctree-wrapper ul {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.theme-selector {
|
||||
margin-left: .5em;
|
||||
}
|
||||
|
||||
div.genindex-jumpbox,
|
||||
div.genindex-jumpbox > p {
|
||||
display: inline-flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
div.genindex-jumpbox a {
|
||||
margin: 0 5px;
|
||||
min-width: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.copybutton {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
|
||||
padding-left: 0.2em;
|
||||
padding-right: 0.2em;
|
||||
border-radius: 0 3px 0 0;
|
||||
color: #ac9; /* follows div.body pre */
|
||||
border-color: #ac9; /* follows div.body pre */
|
||||
border-style: solid; /* follows div.body pre */
|
||||
border-width: 1px; /* follows div.body pre */
|
||||
}
|
||||
|
||||
.copybutton[data-hidden='true'] {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
@media (max-width: 1023px) {
|
||||
/* Body layout */
|
||||
div.body {
|
||||
min-width: 100%;
|
||||
padding: 0;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
div.bodywrapper {
|
||||
margin: 0;
|
||||
}
|
||||
/* Typography */
|
||||
div.body h1 {
|
||||
font-size: 1.625rem;
|
||||
}
|
||||
div.body h2 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
div.body h3, div.body h4, div.body h5 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
/* Override default styles to make more readable */
|
||||
div.body ul {
|
||||
padding-inline-start: 1rem;
|
||||
}
|
||||
div.body blockquote {
|
||||
margin-inline-start: 1rem;
|
||||
margin-inline-end: 0;
|
||||
}
|
||||
/* Remove sidebar and top related bar */
|
||||
div.related, div.sphinxsidebar {
|
||||
display: none;
|
||||
}
|
||||
/* Anchorlinks are not hidden by fixed-positioned navbar when scrolled to */
|
||||
html {
|
||||
scroll-padding-top: 40px;
|
||||
}
|
||||
body {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
/* Top navigation bar */
|
||||
.mobile-nav {
|
||||
display: block;
|
||||
height: 40px;
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
box-shadow: rgba(0, 0, 0, 0.25) 0 0 2px 0;
|
||||
z-index: 1;
|
||||
}
|
||||
.mobile-nav * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.nav-content {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
height: 40px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
background-color: white;
|
||||
}
|
||||
.nav-items-wrapper {
|
||||
display: flex;
|
||||
flex: auto;
|
||||
padding: .25rem;
|
||||
align-items: stretch;
|
||||
}
|
||||
.nav-logo {
|
||||
margin-right: 1rem;
|
||||
flex-shrink: 0;
|
||||
align-self: center;
|
||||
}
|
||||
.nav-content img {
|
||||
display: block;
|
||||
width: 20px;
|
||||
}
|
||||
.version_switcher_placeholder {
|
||||
margin-right: 1rem;
|
||||
}
|
||||
.version_switcher_placeholder > select {
|
||||
height: 100%;
|
||||
}
|
||||
.nav-content .search {
|
||||
display: flex;
|
||||
flex: auto;
|
||||
border: 1px solid #a9a9a9;
|
||||
align-items: stretch;
|
||||
}
|
||||
.nav-content .search input[type=search] {
|
||||
border: 0;
|
||||
padding-left: 24px;
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
}
|
||||
.nav-content .search input[type=submit] {
|
||||
height: 100%;
|
||||
box-shadow: none;
|
||||
border: 0;
|
||||
border-left: 1px solid #a9a9a9;
|
||||
cursor: pointer;
|
||||
margin-right: 0;
|
||||
}
|
||||
.nav-content .search svg {
|
||||
position: absolute;
|
||||
align-self: center;
|
||||
padding-left: 4px;
|
||||
}
|
||||
.toggler__input {
|
||||
display: none;
|
||||
}
|
||||
.toggler__label {
|
||||
width: 40px;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 8px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.toggler__label:hover, .toggler__label:focus {
|
||||
background-color: rgba(127 127 127 / 50%);
|
||||
}
|
||||
.toggler__label > span {
|
||||
position: relative;
|
||||
flex: none;
|
||||
height: 2px;
|
||||
width: 100%;
|
||||
background: currentColor;
|
||||
transition: all 400ms ease;
|
||||
}
|
||||
.toggler__label > span::before,
|
||||
.toggler__label > span::after {
|
||||
content: '';
|
||||
height: 2px;
|
||||
width: 100%;
|
||||
background: inherit;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: -8px;
|
||||
}
|
||||
.toggler__label > span::after {
|
||||
top: 8px;
|
||||
}
|
||||
.toggler__input:checked ~ nav > .toggler__label span {
|
||||
transform: rotate(135deg);
|
||||
}
|
||||
.toggler__input:checked ~ nav > .toggler__label span::before {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
.toggler__input:checked ~ nav > .toggler__label span::before,
|
||||
.toggler__input:checked ~ nav > .toggler__label span::after {
|
||||
top: 0;
|
||||
}
|
||||
.toggler__input:checked:hover ~ nav > .toggler__label span {
|
||||
transform: rotate(315deg);
|
||||
}
|
||||
.toggler__input:checked ~ .menu-wrapper {
|
||||
visibility: visible;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
/* Sliding side menu */
|
||||
.menu-wrapper {
|
||||
display: block;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
transition: left 400ms ease;
|
||||
left: -310px;
|
||||
width: 300px;
|
||||
height: 100%;
|
||||
background-color: #eee;
|
||||
color: #444444;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
|
||||
overflow-y: auto;
|
||||
}
|
||||
.menu-wrapper.open {
|
||||
visibility: visible;
|
||||
left: 0;
|
||||
}
|
||||
.menu {
|
||||
padding: 40px 10px 30px 20px;
|
||||
}
|
||||
.menu-wrapper h3,
|
||||
.menu-wrapper h4 {
|
||||
margin-bottom: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
.menu-wrapper h4 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.menu-wrapper h3 {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
.menu-wrapper h3 + p,
|
||||
.menu-wrapper h4 + p {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.menu a {
|
||||
font-size: smaller;
|
||||
text-decoration: none;
|
||||
}
|
||||
.menu ul {
|
||||
list-style: none;
|
||||
line-height: 1.4;
|
||||
overflow-wrap: break-word;
|
||||
padding-left: 0;
|
||||
}
|
||||
.menu ul ul {
|
||||
margin-left: 20px;
|
||||
list-style: square;
|
||||
}
|
||||
.menu ul li {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.language_switcher_placeholder {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
.language_switcher_placeholder select {
|
||||
width: 100%;
|
||||
}
|
||||
.document {
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
}
|
||||
/*Responsive tables*/
|
||||
.responsive-table__container {
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.menu .theme-selector-label {
|
||||
margin-top: .5em;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.menu .theme-selector {
|
||||
flex: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
div.footer {
|
||||
margin-top: -2em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Version change directives */
|
||||
:root {
|
||||
--versionadded: var(--good-color);
|
||||
--versionchanged: var(--middle-color);
|
||||
--deprecated: var(--bad-color);
|
||||
|
||||
--versionadded-border: var(--good-border);
|
||||
--versionchanged-border: var(--middle-border);
|
||||
--deprecated-border: var(--bad-border);
|
||||
}
|
||||
|
||||
div.versionadded,
|
||||
div.versionchanged,
|
||||
div.deprecated,
|
||||
div.deprecated-removed {
|
||||
border-left: 3px solid;
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
div.versionadded {
|
||||
border-left-color: var(--versionadded-border);
|
||||
}
|
||||
|
||||
div.versionchanged {
|
||||
border-left-color: var(--versionchanged-border);
|
||||
}
|
||||
|
||||
div.deprecated,
|
||||
div.deprecated-removed,
|
||||
div.versionremoved {
|
||||
border-left-color: var(--deprecated-border);
|
||||
}
|
||||
|
||||
div.versionadded .versionmodified {
|
||||
color: var(--versionadded);
|
||||
}
|
||||
|
||||
div.versionchanged .versionmodified {
|
||||
color: var(--versionchanged);
|
||||
}
|
||||
|
||||
div.deprecated .versionmodified,
|
||||
div.deprecated-removed .versionmodified,
|
||||
div.versionremoved .versionmodified {
|
||||
color: var(--deprecated);
|
||||
}
|
||||
|
||||
/* Hide header when printing */
|
||||
@media print {
|
||||
div.mobile-nav {
|
||||
display: none;
|
||||
}
|
||||
}
|
178
Dependencies/Python/Doc/html/_static/pydoctheme_dark.css
vendored
Normal file
178
Dependencies/Python/Doc/html/_static/pydoctheme_dark.css
vendored
Normal file
@ -0,0 +1,178 @@
|
||||
/* Common colours */
|
||||
:root {
|
||||
--good-color: rgb(79 196 100);
|
||||
--good-border: var(--good-color);
|
||||
--middle-color: rgb(244, 227, 76);
|
||||
--middle-border: var(--middle-color);
|
||||
--bad-color: rgb(244, 76, 78);
|
||||
--bad-border: var(--bad-color);
|
||||
}
|
||||
|
||||
|
||||
/* Browser elements */
|
||||
:root {
|
||||
scrollbar-color: #616161 transparent;
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
background-color: #222;
|
||||
color: rgba(255, 255, 255, 0.87);
|
||||
}
|
||||
|
||||
div.related {
|
||||
color: rgba(255, 255, 255, 0.7); /* classic overwrite */
|
||||
border-color: #424242;
|
||||
}
|
||||
|
||||
/* SIDEBAR */
|
||||
div.sphinxsidebar, .menu-wrapper {
|
||||
background-color: #333;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#sidebarbutton {
|
||||
/* important to overwrite style attribute */
|
||||
background-color: #555 !important;
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
div.sidebar, aside.sidebar {
|
||||
background-color: #424242;
|
||||
border-color: #616161;
|
||||
}
|
||||
|
||||
/* ANCHORS AND HIGHLIGHTS */
|
||||
div.body a {
|
||||
color: #7af;
|
||||
}
|
||||
|
||||
div.body a:visited {
|
||||
color: #09e;
|
||||
}
|
||||
|
||||
a.headerlink:hover {
|
||||
background-color: #424242;
|
||||
}
|
||||
|
||||
div.related a {
|
||||
color: currentColor;
|
||||
}
|
||||
|
||||
div.footer,
|
||||
div.footer a {
|
||||
color: currentColor; /* classic overwrites */
|
||||
}
|
||||
|
||||
dt:target,
|
||||
span.highlighted {
|
||||
background-color: #616161;
|
||||
}
|
||||
|
||||
.footnote:target {
|
||||
background-color: #2c3e50;
|
||||
}
|
||||
|
||||
/* Below for most things in text */
|
||||
|
||||
dl.field-list > dt {
|
||||
background-color: #434;
|
||||
}
|
||||
|
||||
table.docutils td,
|
||||
table.docutils th {
|
||||
border-color: #616161 !important;
|
||||
}
|
||||
|
||||
table.docutils th {
|
||||
background-color: #424242;
|
||||
}
|
||||
|
||||
.stableabi {
|
||||
color: #bbf;
|
||||
}
|
||||
|
||||
div.body pre {
|
||||
border-color: #616161;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #424242;
|
||||
}
|
||||
|
||||
div.body div.seealso {
|
||||
background-color: rgba(255, 255, 0, 0.1);
|
||||
}
|
||||
|
||||
div.warning {
|
||||
background-color: rgba(255, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.warning code {
|
||||
background-color: rgba(255, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
/* Admonitions */
|
||||
:root {
|
||||
--admonition-background: #ffffff1a;
|
||||
--admonition-border: currentColor;
|
||||
--admonition-color: #ffffffde;
|
||||
--attention-background: #ffffff1a;
|
||||
--attention-border: currentColor;
|
||||
--caution-background: #ffff001a;
|
||||
--caution-border: #dd6;
|
||||
--danger-background: #f003;
|
||||
--danger-border: #f66;
|
||||
--error-background: #f003;
|
||||
--error-border: #f66;
|
||||
--hint-background: #0044117a;
|
||||
--hint-border: green;
|
||||
--seealso-background: #ffff001a;
|
||||
--seealso-border: #dd6;
|
||||
--tip-background: #0044117a;
|
||||
--tip-border: green;
|
||||
--warning-background: #ff000033;
|
||||
--warning-border: #ff6666;
|
||||
}
|
||||
|
||||
aside.topic,
|
||||
div.topic,
|
||||
div.note,
|
||||
nav.contents {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
border-color: currentColor;
|
||||
}
|
||||
|
||||
.note code {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.mobile-nav {
|
||||
box-shadow: rgba(255, 255, 255, 0.25) 0 0 2px 0;
|
||||
}
|
||||
|
||||
.nav-content {
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
img.invert-in-dark-mode {
|
||||
filter: invert(1) hue-rotate(.5turn);
|
||||
}
|
||||
|
||||
/* -- object description styles --------------------------------------------- */
|
||||
|
||||
/* C++ specific styling */
|
||||
|
||||
/* Override Sphinx's basic.css to fix colour contrast */
|
||||
.sig.c .k, .sig.c .kt,
|
||||
.sig.cpp .k, .sig.cpp .kt {
|
||||
color: #5283ff;
|
||||
}
|
||||
|
||||
/* Version change directives */
|
||||
:root {
|
||||
--versionadded: var(--good-color);
|
||||
--versionchanged: var(--middle-color);
|
||||
--deprecated: var(--bad-color);
|
||||
}
|
75
Dependencies/Python/Doc/html/_static/pygments.css
vendored
Normal file
75
Dependencies/Python/Doc/html/_static/pygments.css
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
pre { line-height: 125%; }
|
||||
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
.highlight .hll { background-color: #ffffcc }
|
||||
.highlight { background: #f8f8f8; }
|
||||
.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
|
||||
.highlight .err { border: 1px solid #F00 } /* Error */
|
||||
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
|
||||
.highlight .o { color: #666 } /* Operator */
|
||||
.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #9C6500 } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
|
||||
.highlight .gd { color: #A00000 } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
|
||||
.highlight .gr { color: #E40000 } /* Generic.Error */
|
||||
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: #008400 } /* Generic.Inserted */
|
||||
.highlight .go { color: #717171 } /* Generic.Output */
|
||||
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.highlight .gt { color: #04D } /* Generic.Traceback */
|
||||
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #B00040 } /* Keyword.Type */
|
||||
.highlight .m { color: #666 } /* Literal.Number */
|
||||
.highlight .s { color: #BA2121 } /* Literal.String */
|
||||
.highlight .na { color: #687822 } /* Name.Attribute */
|
||||
.highlight .nb { color: #008000 } /* Name.Builtin */
|
||||
.highlight .nc { color: #00F; font-weight: bold } /* Name.Class */
|
||||
.highlight .no { color: #800 } /* Name.Constant */
|
||||
.highlight .nd { color: #A2F } /* Name.Decorator */
|
||||
.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
|
||||
.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
|
||||
.highlight .nf { color: #00F } /* Name.Function */
|
||||
.highlight .nl { color: #767600 } /* Name.Label */
|
||||
.highlight .nn { color: #00F; font-weight: bold } /* Name.Namespace */
|
||||
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: #19177C } /* Name.Variable */
|
||||
.highlight .ow { color: #A2F; font-weight: bold } /* Operator.Word */
|
||||
.highlight .w { color: #BBB } /* Text.Whitespace */
|
||||
.highlight .mb { color: #666 } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #666 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #666 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #666 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #666 } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
|
||||
.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #008000 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #A45A77 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #00F } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #19177C } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #19177C } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #666 } /* Literal.Number.Integer.Long */
|
85
Dependencies/Python/Doc/html/_static/pygments_dark.css
vendored
Normal file
85
Dependencies/Python/Doc/html/_static/pygments_dark.css
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
pre { line-height: 125%; }
|
||||
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
.highlight .hll { background-color: #49483e }
|
||||
.highlight { background: #272822; color: #F8F8F2 }
|
||||
.highlight .c { color: #959077 } /* Comment */
|
||||
.highlight .err { color: #ED007E; background-color: #1E0010 } /* Error */
|
||||
.highlight .esc { color: #F8F8F2 } /* Escape */
|
||||
.highlight .g { color: #F8F8F2 } /* Generic */
|
||||
.highlight .k { color: #66D9EF } /* Keyword */
|
||||
.highlight .l { color: #AE81FF } /* Literal */
|
||||
.highlight .n { color: #F8F8F2 } /* Name */
|
||||
.highlight .o { color: #FF4689 } /* Operator */
|
||||
.highlight .x { color: #F8F8F2 } /* Other */
|
||||
.highlight .p { color: #F8F8F2 } /* Punctuation */
|
||||
.highlight .ch { color: #959077 } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #959077 } /* Comment.Multiline */
|
||||
.highlight .cp { color: #959077 } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #959077 } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #959077 } /* Comment.Single */
|
||||
.highlight .cs { color: #959077 } /* Comment.Special */
|
||||
.highlight .gd { color: #FF4689 } /* Generic.Deleted */
|
||||
.highlight .ge { color: #F8F8F2; font-style: italic } /* Generic.Emph */
|
||||
.highlight .ges { color: #F8F8F2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */
|
||||
.highlight .gr { color: #F8F8F2 } /* Generic.Error */
|
||||
.highlight .gh { color: #F8F8F2 } /* Generic.Heading */
|
||||
.highlight .gi { color: #A6E22E } /* Generic.Inserted */
|
||||
.highlight .go { color: #66D9EF } /* Generic.Output */
|
||||
.highlight .gp { color: #FF4689; font-weight: bold } /* Generic.Prompt */
|
||||
.highlight .gs { color: #F8F8F2; font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #959077 } /* Generic.Subheading */
|
||||
.highlight .gt { color: #F8F8F2 } /* Generic.Traceback */
|
||||
.highlight .kc { color: #66D9EF } /* Keyword.Constant */
|
||||
.highlight .kd { color: #66D9EF } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #FF4689 } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #66D9EF } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #66D9EF } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #66D9EF } /* Keyword.Type */
|
||||
.highlight .ld { color: #E6DB74 } /* Literal.Date */
|
||||
.highlight .m { color: #AE81FF } /* Literal.Number */
|
||||
.highlight .s { color: #E6DB74 } /* Literal.String */
|
||||
.highlight .na { color: #A6E22E } /* Name.Attribute */
|
||||
.highlight .nb { color: #F8F8F2 } /* Name.Builtin */
|
||||
.highlight .nc { color: #A6E22E } /* Name.Class */
|
||||
.highlight .no { color: #66D9EF } /* Name.Constant */
|
||||
.highlight .nd { color: #A6E22E } /* Name.Decorator */
|
||||
.highlight .ni { color: #F8F8F2 } /* Name.Entity */
|
||||
.highlight .ne { color: #A6E22E } /* Name.Exception */
|
||||
.highlight .nf { color: #A6E22E } /* Name.Function */
|
||||
.highlight .nl { color: #F8F8F2 } /* Name.Label */
|
||||
.highlight .nn { color: #F8F8F2 } /* Name.Namespace */
|
||||
.highlight .nx { color: #A6E22E } /* Name.Other */
|
||||
.highlight .py { color: #F8F8F2 } /* Name.Property */
|
||||
.highlight .nt { color: #FF4689 } /* Name.Tag */
|
||||
.highlight .nv { color: #F8F8F2 } /* Name.Variable */
|
||||
.highlight .ow { color: #FF4689 } /* Operator.Word */
|
||||
.highlight .pm { color: #F8F8F2 } /* Punctuation.Marker */
|
||||
.highlight .w { color: #F8F8F2 } /* Text.Whitespace */
|
||||
.highlight .mb { color: #AE81FF } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #AE81FF } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #AE81FF } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #AE81FF } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #AE81FF } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #E6DB74 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #E6DB74 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #E6DB74 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #E6DB74 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #E6DB74 } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #E6DB74 } /* Literal.String.Double */
|
||||
.highlight .se { color: #AE81FF } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #E6DB74 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #E6DB74 } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #E6DB74 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #E6DB74 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #E6DB74 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #E6DB74 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #F8F8F2 } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #A6E22E } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #F8F8F2 } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #F8F8F2 } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #F8F8F2 } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #F8F8F2 } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #AE81FF } /* Literal.Number.Integer.Long */
|
55
Dependencies/Python/Doc/html/_static/rtd_switcher.js
vendored
Normal file
55
Dependencies/Python/Doc/html/_static/rtd_switcher.js
vendored
Normal file
@ -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" aria-label="Python version">
|
||||
${ 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" aria-label="Language">
|
||||
${ 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);
|
||||
}
|
||||
});
|
21
Dependencies/Python/Doc/html/_static/search-focus.js
vendored
Normal file
21
Dependencies/Python/Doc/html/_static/search-focus.js
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
function isInputFocused() {
|
||||
const activeElement = document.activeElement;
|
||||
return (
|
||||
activeElement.tagName === 'INPUT' ||
|
||||
activeElement.tagName === 'TEXTAREA' ||
|
||||
activeElement.isContentEditable
|
||||
);
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', function(event) {
|
||||
if (event.key === '/') {
|
||||
if (!isInputFocused()) {
|
||||
// Prevent "/" from being entered in the search box
|
||||
event.preventDefault();
|
||||
|
||||
// Set the focus on the search box
|
||||
const searchBox = document.getElementById('search-box');
|
||||
searchBox.focus();
|
||||
}
|
||||
}
|
||||
});
|
635
Dependencies/Python/Doc/html/_static/searchtools.js
vendored
Normal file
635
Dependencies/Python/Doc/html/_static/searchtools.js
vendored
Normal file
@ -0,0 +1,635 @@
|
||||
/*
|
||||
* Sphinx JavaScript utilities for the full-text search.
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Simple result scoring code.
|
||||
*/
|
||||
if (typeof Scorer === "undefined") {
|
||||
var Scorer = {
|
||||
// Implement the following function to further tweak the score for each result
|
||||
// The function takes a result array [docname, title, anchor, descr, score, filename]
|
||||
// and returns the new score.
|
||||
/*
|
||||
score: result => {
|
||||
const [docname, title, anchor, descr, score, filename, kind] = result
|
||||
return score
|
||||
},
|
||||
*/
|
||||
|
||||
// query matches the full name of an object
|
||||
objNameMatch: 11,
|
||||
// or matches in the last dotted part of the object name
|
||||
objPartialMatch: 6,
|
||||
// Additive scores depending on the priority of the object
|
||||
objPrio: {
|
||||
0: 15, // used to be importantResults
|
||||
1: 5, // used to be objectResults
|
||||
2: -5, // used to be unimportantResults
|
||||
},
|
||||
// Used when the priority is not in the mapping.
|
||||
objPrioDefault: 0,
|
||||
|
||||
// query found in title
|
||||
title: 15,
|
||||
partialTitle: 7,
|
||||
// query found in terms
|
||||
term: 5,
|
||||
partialTerm: 2,
|
||||
};
|
||||
}
|
||||
|
||||
// Global search result kind enum, used by themes to style search results.
|
||||
class SearchResultKind {
|
||||
static get index() { return "index"; }
|
||||
static get object() { return "object"; }
|
||||
static get text() { return "text"; }
|
||||
static get title() { return "title"; }
|
||||
}
|
||||
|
||||
const _removeChildren = (element) => {
|
||||
while (element && element.lastChild) element.removeChild(element.lastChild);
|
||||
};
|
||||
|
||||
/**
|
||||
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
|
||||
*/
|
||||
const _escapeRegExp = (string) =>
|
||||
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
|
||||
|
||||
const _displayItem = (item, searchTerms, highlightTerms) => {
|
||||
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
|
||||
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
|
||||
const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
|
||||
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
|
||||
const contentRoot = document.documentElement.dataset.content_root;
|
||||
|
||||
const [docName, title, anchor, descr, score, _filename, kind] = item;
|
||||
|
||||
let listItem = document.createElement("li");
|
||||
// Add a class representing the item's type:
|
||||
// can be used by a theme's CSS selector for styling
|
||||
// See SearchResultKind for the class names.
|
||||
listItem.classList.add(`kind-${kind}`);
|
||||
let requestUrl;
|
||||
let linkUrl;
|
||||
if (docBuilder === "dirhtml") {
|
||||
// dirhtml builder
|
||||
let dirname = docName + "/";
|
||||
if (dirname.match(/\/index\/$/))
|
||||
dirname = dirname.substring(0, dirname.length - 6);
|
||||
else if (dirname === "index/") dirname = "";
|
||||
requestUrl = contentRoot + dirname;
|
||||
linkUrl = requestUrl;
|
||||
} else {
|
||||
// normal html builders
|
||||
requestUrl = contentRoot + docName + docFileSuffix;
|
||||
linkUrl = docName + docLinkSuffix;
|
||||
}
|
||||
let linkEl = listItem.appendChild(document.createElement("a"));
|
||||
linkEl.href = linkUrl + anchor;
|
||||
linkEl.dataset.score = score;
|
||||
linkEl.innerHTML = title;
|
||||
if (descr) {
|
||||
listItem.appendChild(document.createElement("span")).innerHTML =
|
||||
" (" + descr + ")";
|
||||
// highlight search terms in the description
|
||||
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
|
||||
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
|
||||
}
|
||||
else if (showSearchSummary)
|
||||
fetch(requestUrl)
|
||||
.then((responseData) => responseData.text())
|
||||
.then((data) => {
|
||||
if (data)
|
||||
listItem.appendChild(
|
||||
Search.makeSearchSummary(data, searchTerms, anchor)
|
||||
);
|
||||
// highlight search terms in the summary
|
||||
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
|
||||
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
|
||||
});
|
||||
Search.output.appendChild(listItem);
|
||||
};
|
||||
const _finishSearch = (resultCount) => {
|
||||
Search.stopPulse();
|
||||
Search.title.innerText = _("Search Results");
|
||||
if (!resultCount)
|
||||
Search.status.innerText = Documentation.gettext(
|
||||
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
|
||||
);
|
||||
else
|
||||
Search.status.innerText = Documentation.ngettext(
|
||||
"Search finished, found one page matching the search query.",
|
||||
"Search finished, found ${resultCount} pages matching the search query.",
|
||||
resultCount,
|
||||
).replace('${resultCount}', resultCount);
|
||||
};
|
||||
const _displayNextItem = (
|
||||
results,
|
||||
resultCount,
|
||||
searchTerms,
|
||||
highlightTerms,
|
||||
) => {
|
||||
// results left, load the summary and display it
|
||||
// this is intended to be dynamic (don't sub resultsCount)
|
||||
if (results.length) {
|
||||
_displayItem(results.pop(), searchTerms, highlightTerms);
|
||||
setTimeout(
|
||||
() => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
|
||||
5
|
||||
);
|
||||
}
|
||||
// search finished, update title and status message
|
||||
else _finishSearch(resultCount);
|
||||
};
|
||||
// Helper function used by query() to order search results.
|
||||
// Each input is an array of [docname, title, anchor, descr, score, filename, kind].
|
||||
// Order the results by score (in opposite order of appearance, since the
|
||||
// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
|
||||
const _orderResultsByScoreThenName = (a, b) => {
|
||||
const leftScore = a[4];
|
||||
const rightScore = b[4];
|
||||
if (leftScore === rightScore) {
|
||||
// same score: sort alphabetically
|
||||
const leftTitle = a[1].toLowerCase();
|
||||
const rightTitle = b[1].toLowerCase();
|
||||
if (leftTitle === rightTitle) return 0;
|
||||
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
|
||||
}
|
||||
return leftScore > rightScore ? 1 : -1;
|
||||
};
|
||||
|
||||
/**
|
||||
* Default splitQuery function. Can be overridden in ``sphinx.search`` with a
|
||||
* custom function per language.
|
||||
*
|
||||
* The regular expression works by splitting the string on consecutive characters
|
||||
* that are not Unicode letters, numbers, underscores, or emoji characters.
|
||||
* This is the same as ``\W+`` in Python, preserving the surrogate pair area.
|
||||
*/
|
||||
if (typeof splitQuery === "undefined") {
|
||||
var splitQuery = (query) => query
|
||||
.split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
|
||||
.filter(term => term) // remove remaining empty strings
|
||||
}
|
||||
|
||||
/**
|
||||
* Search Module
|
||||
*/
|
||||
const Search = {
|
||||
_index: null,
|
||||
_queued_query: null,
|
||||
_pulse_status: -1,
|
||||
|
||||
htmlToText: (htmlString, anchor) => {
|
||||
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
|
||||
for (const removalQuery of [".headerlink", "script", "style"]) {
|
||||
htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
|
||||
}
|
||||
if (anchor) {
|
||||
const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
|
||||
if (anchorContent) return anchorContent.textContent;
|
||||
|
||||
console.warn(
|
||||
`Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
|
||||
);
|
||||
}
|
||||
|
||||
// if anchor not specified or not found, fall back to main content
|
||||
const docContent = htmlElement.querySelector('[role="main"]');
|
||||
if (docContent) return docContent.textContent;
|
||||
|
||||
console.warn(
|
||||
"Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
|
||||
);
|
||||
return "";
|
||||
},
|
||||
|
||||
init: () => {
|
||||
const query = new URLSearchParams(window.location.search).get("q");
|
||||
document
|
||||
.querySelectorAll('input[name="q"]')
|
||||
.forEach((el) => (el.value = query));
|
||||
if (query) Search.performSearch(query);
|
||||
},
|
||||
|
||||
loadIndex: (url) =>
|
||||
(document.body.appendChild(document.createElement("script")).src = url),
|
||||
|
||||
setIndex: (index) => {
|
||||
Search._index = index;
|
||||
if (Search._queued_query !== null) {
|
||||
const query = Search._queued_query;
|
||||
Search._queued_query = null;
|
||||
Search.query(query);
|
||||
}
|
||||
},
|
||||
|
||||
hasIndex: () => Search._index !== null,
|
||||
|
||||
deferQuery: (query) => (Search._queued_query = query),
|
||||
|
||||
stopPulse: () => (Search._pulse_status = -1),
|
||||
|
||||
startPulse: () => {
|
||||
if (Search._pulse_status >= 0) return;
|
||||
|
||||
const pulse = () => {
|
||||
Search._pulse_status = (Search._pulse_status + 1) % 4;
|
||||
Search.dots.innerText = ".".repeat(Search._pulse_status);
|
||||
if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
|
||||
};
|
||||
pulse();
|
||||
},
|
||||
|
||||
/**
|
||||
* perform a search for something (or wait until index is loaded)
|
||||
*/
|
||||
performSearch: (query) => {
|
||||
// create the required interface elements
|
||||
const searchText = document.createElement("h2");
|
||||
searchText.textContent = _("Searching");
|
||||
const searchSummary = document.createElement("p");
|
||||
searchSummary.classList.add("search-summary");
|
||||
searchSummary.innerText = "";
|
||||
const searchList = document.createElement("ul");
|
||||
searchList.setAttribute("role", "list");
|
||||
searchList.classList.add("search");
|
||||
|
||||
const out = document.getElementById("search-results");
|
||||
Search.title = out.appendChild(searchText);
|
||||
Search.dots = Search.title.appendChild(document.createElement("span"));
|
||||
Search.status = out.appendChild(searchSummary);
|
||||
Search.output = out.appendChild(searchList);
|
||||
|
||||
const searchProgress = document.getElementById("search-progress");
|
||||
// Some themes don't use the search progress node
|
||||
if (searchProgress) {
|
||||
searchProgress.innerText = _("Preparing search...");
|
||||
}
|
||||
Search.startPulse();
|
||||
|
||||
// index already loaded, the browser was quick!
|
||||
if (Search.hasIndex()) Search.query(query);
|
||||
else Search.deferQuery(query);
|
||||
},
|
||||
|
||||
_parseQuery: (query) => {
|
||||
// stem the search terms and add them to the correct list
|
||||
const stemmer = new Stemmer();
|
||||
const searchTerms = new Set();
|
||||
const excludedTerms = new Set();
|
||||
const highlightTerms = new Set();
|
||||
const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
|
||||
splitQuery(query.trim()).forEach((queryTerm) => {
|
||||
const queryTermLower = queryTerm.toLowerCase();
|
||||
|
||||
// maybe skip this "word"
|
||||
// stopwords array is from language_data.js
|
||||
if (
|
||||
stopwords.indexOf(queryTermLower) !== -1 ||
|
||||
queryTerm.match(/^\d+$/)
|
||||
)
|
||||
return;
|
||||
|
||||
// stem the word
|
||||
let word = stemmer.stemWord(queryTermLower);
|
||||
// select the correct list
|
||||
if (word[0] === "-") excludedTerms.add(word.substr(1));
|
||||
else {
|
||||
searchTerms.add(word);
|
||||
highlightTerms.add(queryTermLower);
|
||||
}
|
||||
});
|
||||
|
||||
if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
|
||||
localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
|
||||
}
|
||||
|
||||
// console.debug("SEARCH: searching for:");
|
||||
// console.info("required: ", [...searchTerms]);
|
||||
// console.info("excluded: ", [...excludedTerms]);
|
||||
|
||||
return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
|
||||
},
|
||||
|
||||
/**
|
||||
* execute search (requires search index to be loaded)
|
||||
*/
|
||||
_performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
|
||||
const filenames = Search._index.filenames;
|
||||
const docNames = Search._index.docnames;
|
||||
const titles = Search._index.titles;
|
||||
const allTitles = Search._index.alltitles;
|
||||
const indexEntries = Search._index.indexentries;
|
||||
|
||||
// Collect multiple result groups to be sorted separately and then ordered.
|
||||
// Each is an array of [docname, title, anchor, descr, score, filename, kind].
|
||||
const normalResults = [];
|
||||
const nonMainIndexResults = [];
|
||||
|
||||
_removeChildren(document.getElementById("search-progress"));
|
||||
|
||||
const queryLower = query.toLowerCase().trim();
|
||||
for (const [title, foundTitles] of Object.entries(allTitles)) {
|
||||
if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
|
||||
for (const [file, id] of foundTitles) {
|
||||
const score = Math.round(Scorer.title * queryLower.length / title.length);
|
||||
const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
|
||||
normalResults.push([
|
||||
docNames[file],
|
||||
titles[file] !== title ? `${titles[file]} > ${title}` : title,
|
||||
id !== null ? "#" + id : "",
|
||||
null,
|
||||
score + boost,
|
||||
filenames[file],
|
||||
SearchResultKind.title,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// search for explicit entries in index directives
|
||||
for (const [entry, foundEntries] of Object.entries(indexEntries)) {
|
||||
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
|
||||
for (const [file, id, isMain] of foundEntries) {
|
||||
const score = Math.round(100 * queryLower.length / entry.length);
|
||||
const result = [
|
||||
docNames[file],
|
||||
titles[file],
|
||||
id ? "#" + id : "",
|
||||
null,
|
||||
score,
|
||||
filenames[file],
|
||||
SearchResultKind.index,
|
||||
];
|
||||
if (isMain) {
|
||||
normalResults.push(result);
|
||||
} else {
|
||||
nonMainIndexResults.push(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// lookup as object
|
||||
objectTerms.forEach((term) =>
|
||||
normalResults.push(...Search.performObjectSearch(term, objectTerms))
|
||||
);
|
||||
|
||||
// lookup as search terms in fulltext
|
||||
normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
|
||||
|
||||
// let the scorer override scores with a custom scoring function
|
||||
if (Scorer.score) {
|
||||
normalResults.forEach((item) => (item[4] = Scorer.score(item)));
|
||||
nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
|
||||
}
|
||||
|
||||
// Sort each group of results by score and then alphabetically by name.
|
||||
normalResults.sort(_orderResultsByScoreThenName);
|
||||
nonMainIndexResults.sort(_orderResultsByScoreThenName);
|
||||
|
||||
// Combine the result groups in (reverse) order.
|
||||
// Non-main index entries are typically arbitrary cross-references,
|
||||
// so display them after other results.
|
||||
let results = [...nonMainIndexResults, ...normalResults];
|
||||
|
||||
// remove duplicate search results
|
||||
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
|
||||
let seen = new Set();
|
||||
results = results.reverse().reduce((acc, result) => {
|
||||
let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
|
||||
if (!seen.has(resultStr)) {
|
||||
acc.push(result);
|
||||
seen.add(resultStr);
|
||||
}
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
return results.reverse();
|
||||
},
|
||||
|
||||
query: (query) => {
|
||||
const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
|
||||
const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
|
||||
|
||||
// for debugging
|
||||
//Search.lastresults = results.slice(); // a copy
|
||||
// console.info("search results:", Search.lastresults);
|
||||
|
||||
// print the results
|
||||
_displayNextItem(results, results.length, searchTerms, highlightTerms);
|
||||
},
|
||||
|
||||
/**
|
||||
* search for object names
|
||||
*/
|
||||
performObjectSearch: (object, objectTerms) => {
|
||||
const filenames = Search._index.filenames;
|
||||
const docNames = Search._index.docnames;
|
||||
const objects = Search._index.objects;
|
||||
const objNames = Search._index.objnames;
|
||||
const titles = Search._index.titles;
|
||||
|
||||
const results = [];
|
||||
|
||||
const objectSearchCallback = (prefix, match) => {
|
||||
const name = match[4]
|
||||
const fullname = (prefix ? prefix + "." : "") + name;
|
||||
const fullnameLower = fullname.toLowerCase();
|
||||
if (fullnameLower.indexOf(object) < 0) return;
|
||||
|
||||
let score = 0;
|
||||
const parts = fullnameLower.split(".");
|
||||
|
||||
// check for different match types: exact matches of full name or
|
||||
// "last name" (i.e. last dotted part)
|
||||
if (fullnameLower === object || parts.slice(-1)[0] === object)
|
||||
score += Scorer.objNameMatch;
|
||||
else if (parts.slice(-1)[0].indexOf(object) > -1)
|
||||
score += Scorer.objPartialMatch; // matches in last name
|
||||
|
||||
const objName = objNames[match[1]][2];
|
||||
const title = titles[match[0]];
|
||||
|
||||
// If more than one term searched for, we require other words to be
|
||||
// found in the name/title/description
|
||||
const otherTerms = new Set(objectTerms);
|
||||
otherTerms.delete(object);
|
||||
if (otherTerms.size > 0) {
|
||||
const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
|
||||
if (
|
||||
[...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
|
||||
)
|
||||
return;
|
||||
}
|
||||
|
||||
let anchor = match[3];
|
||||
if (anchor === "") anchor = fullname;
|
||||
else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
|
||||
|
||||
const descr = objName + _(", in ") + title;
|
||||
|
||||
// add custom score for some objects according to scorer
|
||||
if (Scorer.objPrio.hasOwnProperty(match[2]))
|
||||
score += Scorer.objPrio[match[2]];
|
||||
else score += Scorer.objPrioDefault;
|
||||
|
||||
results.push([
|
||||
docNames[match[0]],
|
||||
fullname,
|
||||
"#" + anchor,
|
||||
descr,
|
||||
score,
|
||||
filenames[match[0]],
|
||||
SearchResultKind.object,
|
||||
]);
|
||||
};
|
||||
Object.keys(objects).forEach((prefix) =>
|
||||
objects[prefix].forEach((array) =>
|
||||
objectSearchCallback(prefix, array)
|
||||
)
|
||||
);
|
||||
return results;
|
||||
},
|
||||
|
||||
/**
|
||||
* search for full-text terms in the index
|
||||
*/
|
||||
performTermsSearch: (searchTerms, excludedTerms) => {
|
||||
// prepare search
|
||||
const terms = Search._index.terms;
|
||||
const titleTerms = Search._index.titleterms;
|
||||
const filenames = Search._index.filenames;
|
||||
const docNames = Search._index.docnames;
|
||||
const titles = Search._index.titles;
|
||||
|
||||
const scoreMap = new Map();
|
||||
const fileMap = new Map();
|
||||
|
||||
// perform the search on the required terms
|
||||
searchTerms.forEach((word) => {
|
||||
const files = [];
|
||||
// find documents, if any, containing the query word in their text/title term indices
|
||||
// use Object.hasOwnProperty to avoid mismatching against prototype properties
|
||||
const arr = [
|
||||
{ files: terms.hasOwnProperty(word) ? terms[word] : undefined, score: Scorer.term },
|
||||
{ files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, score: Scorer.title },
|
||||
];
|
||||
// add support for partial matches
|
||||
if (word.length > 2) {
|
||||
const escapedWord = _escapeRegExp(word);
|
||||
if (!terms.hasOwnProperty(word)) {
|
||||
Object.keys(terms).forEach((term) => {
|
||||
if (term.match(escapedWord))
|
||||
arr.push({ files: terms[term], score: Scorer.partialTerm });
|
||||
});
|
||||
}
|
||||
if (!titleTerms.hasOwnProperty(word)) {
|
||||
Object.keys(titleTerms).forEach((term) => {
|
||||
if (term.match(escapedWord))
|
||||
arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// no match but word was a required one
|
||||
if (arr.every((record) => record.files === undefined)) return;
|
||||
|
||||
// found search word in contents
|
||||
arr.forEach((record) => {
|
||||
if (record.files === undefined) return;
|
||||
|
||||
let recordFiles = record.files;
|
||||
if (recordFiles.length === undefined) recordFiles = [recordFiles];
|
||||
files.push(...recordFiles);
|
||||
|
||||
// set score for the word in each file
|
||||
recordFiles.forEach((file) => {
|
||||
if (!scoreMap.has(file)) scoreMap.set(file, new Map());
|
||||
const fileScores = scoreMap.get(file);
|
||||
fileScores.set(word, record.score);
|
||||
});
|
||||
});
|
||||
|
||||
// create the mapping
|
||||
files.forEach((file) => {
|
||||
if (!fileMap.has(file)) fileMap.set(file, [word]);
|
||||
else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
|
||||
});
|
||||
});
|
||||
|
||||
// now check if the files don't contain excluded terms
|
||||
const results = [];
|
||||
for (const [file, wordList] of fileMap) {
|
||||
// check if all requirements are matched
|
||||
|
||||
// as search terms with length < 3 are discarded
|
||||
const filteredTermCount = [...searchTerms].filter(
|
||||
(term) => term.length > 2
|
||||
).length;
|
||||
if (
|
||||
wordList.length !== searchTerms.size &&
|
||||
wordList.length !== filteredTermCount
|
||||
)
|
||||
continue;
|
||||
|
||||
// ensure that none of the excluded terms is in the search result
|
||||
if (
|
||||
[...excludedTerms].some(
|
||||
(term) =>
|
||||
terms[term] === file ||
|
||||
titleTerms[term] === file ||
|
||||
(terms[term] || []).includes(file) ||
|
||||
(titleTerms[term] || []).includes(file)
|
||||
)
|
||||
)
|
||||
break;
|
||||
|
||||
// select one (max) score for the file.
|
||||
const score = Math.max(...wordList.map((w) => scoreMap.get(file).get(w)));
|
||||
// add result to the result list
|
||||
results.push([
|
||||
docNames[file],
|
||||
titles[file],
|
||||
"",
|
||||
null,
|
||||
score,
|
||||
filenames[file],
|
||||
SearchResultKind.text,
|
||||
]);
|
||||
}
|
||||
return results;
|
||||
},
|
||||
|
||||
/**
|
||||
* helper function to return a node containing the
|
||||
* search summary for a given text. keywords is a list
|
||||
* of stemmed words.
|
||||
*/
|
||||
makeSearchSummary: (htmlText, keywords, anchor) => {
|
||||
const text = Search.htmlToText(htmlText, anchor);
|
||||
if (text === "") return null;
|
||||
|
||||
const textLower = text.toLowerCase();
|
||||
const actualStartPosition = [...keywords]
|
||||
.map((k) => textLower.indexOf(k.toLowerCase()))
|
||||
.filter((i) => i > -1)
|
||||
.slice(-1)[0];
|
||||
const startWithContext = Math.max(actualStartPosition - 120, 0);
|
||||
|
||||
const top = startWithContext === 0 ? "" : "...";
|
||||
const tail = startWithContext + 240 < text.length ? "..." : "";
|
||||
|
||||
let summary = document.createElement("p");
|
||||
summary.classList.add("context");
|
||||
summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
|
||||
|
||||
return summary;
|
||||
},
|
||||
};
|
||||
|
||||
_ready(Search.init);
|
81
Dependencies/Python/Doc/html/_static/sidebar.js
vendored
Normal file
81
Dependencies/Python/Doc/html/_static/sidebar.js
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
/*
|
||||
* sidebar.js
|
||||
* ~~~~~~~~~~
|
||||
*
|
||||
* This file is functionally identical to "sidebar.js" in Sphinx 5.0.
|
||||
* When support for Sphinx 4 and earlier is dropped from the theme,
|
||||
* this file can be removed.
|
||||
*
|
||||
* This script makes the Sphinx sidebar collapsible.
|
||||
*
|
||||
* .sphinxsidebar contains .sphinxsidebarwrapper. This script adds
|
||||
* in .sphinxsidebar, after .sphinxsidebarwrapper, the #sidebarbutton
|
||||
* used to collapse and expand the sidebar.
|
||||
*
|
||||
* When the sidebar is collapsed the .sphinxsidebarwrapper is hidden
|
||||
* and the width of the sidebar and the margin-left of the document
|
||||
* are decreased. When the sidebar is expanded the opposite happens.
|
||||
* This script saves a per-browser/per-session cookie used to
|
||||
* remember the position of the sidebar among the pages.
|
||||
* Once the browser is closed the cookie is deleted and the position
|
||||
* reset to the default (expanded).
|
||||
*
|
||||
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
const initialiseSidebar = () => {
|
||||
// global elements used by the functions.
|
||||
const bodyWrapper = document.getElementsByClassName("bodywrapper")[0]
|
||||
const sidebar = document.getElementsByClassName("sphinxsidebar")[0]
|
||||
const sidebarWrapper = document.getElementsByClassName("sphinxsidebarwrapper")[0]
|
||||
|
||||
// exit early if the document has no sidebar for some reason
|
||||
if (typeof sidebar === "undefined") {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
|
||||
const sidebarButton = document.getElementById("sidebarbutton")
|
||||
const sidebarArrow = sidebarButton.querySelector('span')
|
||||
|
||||
|
||||
const collapse_sidebar = () => {
|
||||
bodyWrapper.style.marginLeft = ".8em"
|
||||
sidebar.style.width = ".8em"
|
||||
sidebarWrapper.style.display = "none"
|
||||
sidebarArrow.innerText = "»"
|
||||
sidebarButton.title = _("Expand sidebar")
|
||||
window.localStorage.setItem("sidebar", "collapsed")
|
||||
}
|
||||
|
||||
const expand_sidebar = () => {
|
||||
bodyWrapper.style.marginLeft = ""
|
||||
sidebar.style.removeProperty("width")
|
||||
sidebarWrapper.style.display = ""
|
||||
sidebarArrow.innerText = "«"
|
||||
sidebarButton.title = _("Collapse sidebar")
|
||||
window.localStorage.setItem("sidebar", "expanded")
|
||||
}
|
||||
|
||||
sidebarButton.addEventListener("click", () => {
|
||||
(sidebarWrapper.style.display === "none") ? expand_sidebar() : collapse_sidebar()
|
||||
})
|
||||
|
||||
const sidebar_state = window.localStorage.getItem("sidebar")
|
||||
if (sidebar_state === "collapsed") {
|
||||
collapse_sidebar()
|
||||
}
|
||||
else if (sidebar_state === "expanded") {
|
||||
expand_sidebar()
|
||||
}
|
||||
}
|
||||
|
||||
if (document.readyState !== "loading") {
|
||||
initialiseSidebar()
|
||||
}
|
||||
else {
|
||||
document.addEventListener("DOMContentLoaded", initialiseSidebar)
|
||||
}
|
154
Dependencies/Python/Doc/html/_static/sphinx_highlight.js
vendored
Normal file
154
Dependencies/Python/Doc/html/_static/sphinx_highlight.js
vendored
Normal file
@ -0,0 +1,154 @@
|
||||
/* Highlighting utilities for Sphinx HTML documentation. */
|
||||
"use strict";
|
||||
|
||||
const SPHINX_HIGHLIGHT_ENABLED = true
|
||||
|
||||
/**
|
||||
* highlight a given string on a node by wrapping it in
|
||||
* span elements with the given class name.
|
||||
*/
|
||||
const _highlight = (node, addItems, text, className) => {
|
||||
if (node.nodeType === Node.TEXT_NODE) {
|
||||
const val = node.nodeValue;
|
||||
const parent = node.parentNode;
|
||||
const pos = val.toLowerCase().indexOf(text);
|
||||
if (
|
||||
pos >= 0 &&
|
||||
!parent.classList.contains(className) &&
|
||||
!parent.classList.contains("nohighlight")
|
||||
) {
|
||||
let span;
|
||||
|
||||
const closestNode = parent.closest("body, svg, foreignObject");
|
||||
const isInSVG = closestNode && closestNode.matches("svg");
|
||||
if (isInSVG) {
|
||||
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
|
||||
} else {
|
||||
span = document.createElement("span");
|
||||
span.classList.add(className);
|
||||
}
|
||||
|
||||
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
|
||||
const rest = document.createTextNode(val.substr(pos + text.length));
|
||||
parent.insertBefore(
|
||||
span,
|
||||
parent.insertBefore(
|
||||
rest,
|
||||
node.nextSibling
|
||||
)
|
||||
);
|
||||
node.nodeValue = val.substr(0, pos);
|
||||
/* There may be more occurrences of search term in this node. So call this
|
||||
* function recursively on the remaining fragment.
|
||||
*/
|
||||
_highlight(rest, addItems, text, className);
|
||||
|
||||
if (isInSVG) {
|
||||
const rect = document.createElementNS(
|
||||
"http://www.w3.org/2000/svg",
|
||||
"rect"
|
||||
);
|
||||
const bbox = parent.getBBox();
|
||||
rect.x.baseVal.value = bbox.x;
|
||||
rect.y.baseVal.value = bbox.y;
|
||||
rect.width.baseVal.value = bbox.width;
|
||||
rect.height.baseVal.value = bbox.height;
|
||||
rect.setAttribute("class", className);
|
||||
addItems.push({ parent: parent, target: rect });
|
||||
}
|
||||
}
|
||||
} else if (node.matches && !node.matches("button, select, textarea")) {
|
||||
node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
|
||||
}
|
||||
};
|
||||
const _highlightText = (thisNode, text, className) => {
|
||||
let addItems = [];
|
||||
_highlight(thisNode, addItems, text, className);
|
||||
addItems.forEach((obj) =>
|
||||
obj.parent.insertAdjacentElement("beforebegin", obj.target)
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Small JavaScript module for the documentation.
|
||||
*/
|
||||
const SphinxHighlight = {
|
||||
|
||||
/**
|
||||
* highlight the search words provided in localstorage in the text
|
||||
*/
|
||||
highlightSearchWords: () => {
|
||||
if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
|
||||
|
||||
// get and clear terms from localstorage
|
||||
const url = new URL(window.location);
|
||||
const highlight =
|
||||
localStorage.getItem("sphinx_highlight_terms")
|
||||
|| url.searchParams.get("highlight")
|
||||
|| "";
|
||||
localStorage.removeItem("sphinx_highlight_terms")
|
||||
url.searchParams.delete("highlight");
|
||||
window.history.replaceState({}, "", url);
|
||||
|
||||
// get individual terms from highlight string
|
||||
const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
|
||||
if (terms.length === 0) return; // nothing to do
|
||||
|
||||
// There should never be more than one element matching "div.body"
|
||||
const divBody = document.querySelectorAll("div.body");
|
||||
const body = divBody.length ? divBody[0] : document.querySelector("body");
|
||||
window.setTimeout(() => {
|
||||
terms.forEach((term) => _highlightText(body, term, "highlighted"));
|
||||
}, 10);
|
||||
|
||||
const searchBox = document.getElementById("searchbox");
|
||||
if (searchBox === null) return;
|
||||
searchBox.appendChild(
|
||||
document
|
||||
.createRange()
|
||||
.createContextualFragment(
|
||||
'<p class="highlight-link">' +
|
||||
'<a href="javascript:SphinxHighlight.hideSearchWords()">' +
|
||||
_("Hide Search Matches") +
|
||||
"</a></p>"
|
||||
)
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* helper function to hide the search marks again
|
||||
*/
|
||||
hideSearchWords: () => {
|
||||
document
|
||||
.querySelectorAll("#searchbox .highlight-link")
|
||||
.forEach((el) => el.remove());
|
||||
document
|
||||
.querySelectorAll("span.highlighted")
|
||||
.forEach((el) => el.classList.remove("highlighted"));
|
||||
localStorage.removeItem("sphinx_highlight_terms")
|
||||
},
|
||||
|
||||
initEscapeListener: () => {
|
||||
// only install a listener if it is really needed
|
||||
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return;
|
||||
|
||||
document.addEventListener("keydown", (event) => {
|
||||
// bail for input elements
|
||||
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
|
||||
// bail with special keys
|
||||
if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
|
||||
if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
|
||||
SphinxHighlight.hideSearchWords();
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
_ready(() => {
|
||||
/* Do not call highlightSearchWords() when we are on the search page.
|
||||
* It will highlight words from the *previous* search query.
|
||||
*/
|
||||
if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords();
|
||||
SphinxHighlight.initEscapeListener();
|
||||
});
|
24
Dependencies/Python/Doc/html/_static/themetoggle.js
vendored
Normal file
24
Dependencies/Python/Doc/html/_static/themetoggle.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
const pydocthemeDark = document.getElementById('pydoctheme_dark_css')
|
||||
const pygmentsDark = document.getElementById('pygments_dark_css')
|
||||
const themeSelectors = document.getElementsByClassName('theme-selector')
|
||||
|
||||
function activateTheme(theme) {
|
||||
localStorage.setItem('currentTheme', theme);
|
||||
[...themeSelectors].forEach(e => e.value = theme)
|
||||
switch (theme) {
|
||||
case 'light':
|
||||
pydocthemeDark.media = 'not all'
|
||||
pygmentsDark.media = 'not all'
|
||||
break;
|
||||
case 'dark':
|
||||
pydocthemeDark.media = 'all'
|
||||
pygmentsDark.media = 'all'
|
||||
break;
|
||||
default:
|
||||
// auto
|
||||
pydocthemeDark.media = '(prefers-color-scheme: dark)'
|
||||
pygmentsDark.media = '(prefers-color-scheme: dark)'
|
||||
}
|
||||
}
|
||||
|
||||
activateTheme(localStorage.getItem('currentTheme') || 'auto')
|
Reference in New Issue
Block a user