diff --git a/docs/requirements.txt b/docs/requirements.txt index cddfd1b970..4d0f2af2a0 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,21 +1,6 @@ # requirements for building the docs -sphinx==3.2.1 -myst-parser==0.15.2 -myst-parser[linkify]==0.15.2 -Jinja2 < 3.1 - -# pinned to allow for sphinx 3.x to still work, latest required 5+ -alabaster==0.7.13 -sphinxcontrib-applehelp<1.0.7 -sphinxcontrib-devhelp<1.0.6 -sphinxcontrib-htmlhelp<2.0.5 -sphinxcontrib-qthelp<1.0.7 -sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-serializinghtml<1.1.10 - -# sphinx-multiversion with evennia fixes -git+https://github.com/evennia/sphinx-multiversion.git@evennia-mods#egg=sphinx-multiversion - -# sphinxcontrib-lunrsearch custom branch with evennia-specific fixes -# git+https://github.com/evennia/sphinxcontrib-lunrsearch.git@evennia-mods#egg=sphinxcontrib-lunrsearch +sphinx>=7.3.7,<8.0.0 +myst-parser>=2.0.0,<3.0.0 +Jinja2>=3.1 +linkify-it-py>=2.0.0 \ No newline at end of file diff --git a/docs/source/_static/basic.css b/docs/source/_static/basic.css deleted file mode 100644 index 16d5a796ee..0000000000 --- a/docs/source/_static/basic.css +++ /dev/null @@ -1,810 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -/* -- 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 { - width: 21%; - 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: 10px 0; -} - -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%; -} - -/* images in the body */ -p > img { - float: right; - padding:0.5em 1em 0.5em 1em; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.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: 450px; - 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.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - -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, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.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 -------------------------------------------------------------- */ - -.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #787878; - padding: 5px 7px 7px 15px; - background-color: #f5fdff; - width: 40%; - float: right; -} - -p.sidebar-title { - font-weight: bold; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px 7px 0 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; -} - -div.admonition dl { - margin-bottom: 0; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - 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: 1px solid #aaa; - border-left: 1px solid #aaa; - border-right: 1px solid #aaa; - border-bottom: 1px solid #aaa; -} - - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > p:first-child, -td > p:first-child { - margin-top: 0px; -} - -th > p:last-child, -td > p:last-child { - margin-bottom: 0px; -} - -thead { - border-bottom: 2px solid #aaa; -} - -.row-odd { - background: #edeee4; -} - -.row-even { - background: #f4f4ed; -} - - -/* -- figures --------------------------------------------------------------- */ - -div.figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number { - font-style: italic; -} - -div.figure p.caption 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 td { - vertical-align: top; -} - - -/* -- 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; -} - -li > p:first-child { - margin-top: 0px; -} - -li > p:last-child { - margin-bottom: 0px; -} - -ul.simple > li > ul > li { - margin-left: -25px; -} - -ul > li > ul > li { - margin-left: -7px; -} - -dl.footnote > dt, -dl.citation > dt { - float: left; -} - -dl.footnote > dd, -dl.citation > dd { - margin-bottom: 0em; -} - -dl.footnote > dd:after, -dl.citation > dd: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 > dt:after { - content: ":"; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > p:first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dt:target, span.highlighted { - background-color: #fffbde; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.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.5em; - content: ":"; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; -} - -td.linenos pre { - padding 5px, 0px; - border: 0; - background-color: transparent; - color: #aaa; - -webkit-box-shadow: 0px 0px 0px #fff; - font-size: 1.4em; -} - -table.highlighttable { - margin-left: 0.5em; -} - -table.highlighttable td { - /* padding: 0 0.5em 0 0.5em; */ -} - -div.code-block-caption { - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -div.code-block-caption + div > div.highlight > pre { - margin-top: 0; -} - -div.highlight > pre { - font-family: "Courier Prime", monospace; - line-height: 1.4em; - font-size: smaller; -} - -/* default ({code-block}, no arg) - used for in-game code */ -div.highlight-shell.notranslate > div.highlight > pre { - background-color: #505050; - color: white; -} - -div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; -} - -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 { - padding: 1em 1em 0; -} - -div.literal-block-wrapper div.highlight { - margin: 0; -} - -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 0.9em; -} - -code.descclassname { - background-color: transparent; -} - -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; - font-family: "Courier Prime", monospace; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: relative; - left: 0px; - 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; - } -} diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css new file mode 100644 index 0000000000..06f1b5e1e2 --- /dev/null +++ b/docs/source/_static/custom.css @@ -0,0 +1,444 @@ +/* =========================================================================== + Evennia Docs Custom CSS for Sphinx 7.x + (Auto-generated: ports all styles from live Evennia nature.css, + adapted for modern Sphinx, minimal layout overrides) + + COMMENTS: + - All major overrides/fixes are documented. + - Responsive and layout hacks are clearly marked for Sphinx 7.x compatibility. + - “Magic values” from live Evennia docs are annotated for traceability. + ========================================================================== */ + +/* --- Imports & Font Setup --- */ +@import url("https://fonts.googleapis.com/css?family=Arvo:400,700,400italic"); +@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic"); +@import url("https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap"); + +/* --- Page Layout & Core Backgrounds --- */ +/* HACK: Body and wrappers for Evennia look. Padding/margin settings ensure consistent backgrounds and edge gutters. */ +body { + font-family: "Open Sans", Helvetica, Arial, sans-serif; + background-color: #eee !important; + color: #555; + width: 100% !important; + min-width: 0 !important; + max-width: none !important; + margin: 0 !important; + padding: 0 24px !important; /* Adjust padding as you like */ +} +.bodywrapper { + width: 100% !important; + min-width: 0 !important; + max-width: none !important; + margin: 0 !important; + padding: 0 !important; +} +/* Container styling for max-width, background, shadow, and border-radius—matches Evennia's live docs. */ +div.document { + background-color: #eeeeea !important; + max-width: 1090px; /* Copied from live Evennia for page width */ + margin: 0 0; + box-shadow: 0 0 4px 0 #ececec; + border-radius: 6px; +} +div.body { + background-color: #f1f1ef !important; + color: #3E4349; + padding: 0 30px 30px 30px; + font-size: 0.9em; + margin-top: -9px; +} +div.documentwrapper { + display: flex; + flex-wrap: wrap; +} +div.bodywrapper { + width: 79%; + box-sizing: border-box; +} +hr { + border: 1px solid #B1B4B6; +} + +/* --- Header/Footer Bar --- */ +/* Header & footer bars: color, margin, radius, and link color tuned for Evennia branding */ +div.related { + background-color: #dbe9f0 !important; + line-height: 32px; + color: #9FA0A0; + font-size: 0.9em; + max-width: 1090px; + margin: 0 0; + border-radius: 0 0 6px 6px; +} +div.related a { + color: #565F62; + text-shadow: none; +} +div.footer { + color: #555; + width: 100%; + padding: 13px 0; + text-align: center; + font-size: 75%; + max-width: 1080px; + margin: 0 auto; +} +div.footer a { + color: #444; + text-decoration: underline; +} + +/* --- Logo Centering --- */ +/* Center Evennia logo in sidebar or header—matches live docs. */ +.logo { + padding-left: 1px; + margin-left: auto; + margin-right: auto; + display: block; + margin-top: -12px; + opacity: 0.8; +} + +/* --- Sidebar --- */ +/* SIDEBAR LAYOUT: Custom overrides to maintain left sidebar (pre-Sphinx 7 behavior) + and adapt sidebar coloring/spacing to Evennia's look as of July 2025. */ +div.sphinxsidebar { + font-size: 0.75em; + line-height: 1.5em; + background-color: #fafaf8; + border-right: 1px solid #e4e4dc; + background: #eeeeea; +} +div.sphinxsidebarwrapper { + padding: 20px 0; +} +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: Arvo, sans-serif; + color: #4f4f4f; + font-size: 1.2em; + font-weight: normal; + margin: 0; + padding: 5px 10px; + background-color: #dbe9f0 !important; + border-radius: 2px; + margin-top: 15px; + margin-bottom: 4px; +} +div.sphinxsidebar h4 { + font-size: 1.1em; +} +div.sphinxsidebar h3 a { + color: #444; + text-shadow: none; +} +div.sphinxsidebar p { + color: #888; + padding: 5px 20px; +} +div.sphinxsidebar ul { + margin: 10px 20px; + padding: 0; + color: #000; +} +div.sphinxsidebar a { + color: #444; +} +div.sphinxsidebar input { + border: 1px solid #ccc; + font-family: Arvo, sans-serif; + font-size: 1em; + background-color: #f7f7f7; +} +div.sphinxsidebar .searchformwrapper { + margin-left: 20px; + margin-right: 20px; +} + +/* --- Main Content Headers --- */ +/* HEADINGS: Matches Evennia live doc headers for background, border, and text style */ +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: Arvo, Monaco, serif; + background-color: #f7f7f3 !important; + font-weight: normal; + color: #212224; + margin: 30px 0px 10px 0px; + padding: 5px 0 5px 10px; + text-shadow: 0px 1px 0 white; + border-bottom: 1px solid #c6d7df; + border-left: 10px solid #cfdde8; + border-top: 0px solid #cfdde8; +} +div.body h1 { margin-top: 20px solid #fff; font-size: 230%; } +div.body h2 { font-size: 150%; } +div.body h3 { font-size: 120%; } +div.body h4 { font-size: 110%; } +div.body h5 { font-size: 100%; } +div.body h6 { font-size: 100%; } + +/* --- Blockquotes --- */ +blockquote { + font-style: italic; + color: #797979; + background-color: #e1e8e2; + border: 1px solid #c7cdc8; + padding-left: 14px; + padding-right: 15px; + margin-left: 0; + width: 96%; + border-left-style: dotted; + border-left-width: medium; + position: relative; +} +blockquote:before { + content: "!"; + float: left; + font-size: 230%; + opacity: 0.3; + padding-right: 5px; +} + +/* --- Admonitions, Notes, Warnings --- */ +div.note, .admonition.note { + background-color: #e1e8e2 !important; + border: 1px solid #ccc; + font-style: italic; + text-indent: -2.9em; + padding-left: 3.5em; +} +div.note > p { text-indent: 0em; } +div.important, .admonition.important { + background-color: #fbf7c3 !important; + border: 1px solid #c8c59b; + font-style: italic; + text-indent: -5.5em; + padding-left: 6.1em; +} +div.important > p { text-indent: 0em; } +div.warning, .admonition.warning { + background-color: #ffe4e4 !important; + border: 1px solid #f66; + font-style: italic; + text-indent: -4.6em; + padding-left: 5.2em; +} +div.warning > p { text-indent: 0em; } +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} +div.topic, aside.topic { + background-color: #eee; +} +div.attention { background-color: #e5f3ff; border-color: #65b9ff; } +div.danger { background-color: #fff2f0; border-color: #f33; } +p.admonition-title { + margin-right: 0.2em; + display: inline; + font-weight: bold; + padding-right: 0.6em; +} +p.admonition-title:after { content: ":"; } +div.admonition p.admonition-title + p { display: inline; } + +/* --- Version added/changed/deprecated boxes --- */ +.versionadded { background-color: #e9f6e1; } +.versionchanged { background-color: #b7e6e8; padding-left: 10px; } +.deprecated { background-color: #fff3f3; } + +/* --- Lists & Lists in API Docs --- */ +li > p:first-child { margin-top: 0px; margin-bottom: 0px; } +li > p { margin-top: 0px; margin-bottom: 0px; } +dl.field-list.simple > dd.field-odd > ul.simple > li > ul { margin-left: 24px; } +dd.field-odd > ul.simple > li > ul > li > dl.simple { margin-bottom: -8px; } + +/* --- Code blocks, Inline code, API highlighting --- */ +/* Pygments highlighting is loaded separately—only container backgrounds here. */ +div.highlight { + background-color: #f1f1ef !important; + border-left: 4px double #7ea6b3; + border-radius: 4px; + margin: 18px 0; +} +.highlight .hll { background-color: #ffffcc !important; border-radius: 5px; } +pre { + padding: 10px; + background-color: #e3e3e3; + color: #222; + line-height: 1.2em; + border: 1px solid #C6C9CB; + font-size: 1.1em; + margin: 1.5em 0 1.5em 0; + box-shadow: 1px 1px 1px #d8d8d8; +} +pre, div[class*="highlight-"] { clear: none; } +code { + background-color: #f7f7f7 !important; + color: #6e0e0e !important; + font-size: 0.9em; + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + font-weight: normal; + border-radius: 3px; + padding: 1px 4px; +} +.viewcode-back { + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; +} +div.viewcode-block:target { + background-color: #f4e9d9; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} +div.code-block-caption { + background-color: #ddd; + color: #222; + border: 1px solid #C6C9CB; +} + +/* --- API/Class/Method Styling --- */ +.class { + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + font-size: 0.9em; + background-color: #f5ffff; + padding: 5px; +} +.method { + background-color: #e3ecec; + padding: 5px; + font-size: 1.0em; +} +.sig-param { + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; +} +.sig-paren { margin-left: 1px; } +.property { + font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; +} +dl.class > dd > p, +dl.method > dd > p { + font-style: italic; +} +code.descname { font-size: 0.9em; } +.function { background-color: #eff; padding: 5px; } +.exception { background-color: #fff9f9; padding: 5px; } +div.linenodiv>pre { + font-size: 0.9em; + line-height: 153%; + padding-right: 0; + padding-top: 8px; +} + +/* --- Develop branch warning header --- */ +.develop { + background-color: #ffe4e4; + align-content: center; + width: auto; + text-align: center; + letter-spacing: 15px; +} + +/* --- Miscellaneous Tweaks --- */ +a { + color: #005B81; + text-decoration: underline; + text-decoration-color: #fff; + text-decoration-color: #bdcbdf; +} +a:hover { + color: #0492CA; + text-decoration: underline; + text-decoration-color: #9bbed5; +} +a:visited { color: #551A8B; } +a.headerlink { color: #7caeb7; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; } +a.headerlink:hover { color: #7caeb7; } +ul.sidebar-links { list-style: none; padding-left: 0; margin: 14px 0; } +ul.sidebar-links li { padding-bottom: 2px; } + +/* --- Responsive Tweaks --- */ +/* These media queries are for legacy mobile and tablet support. */ +@media print, screen and (max-width: 960px) { + div.body { min-width: auto; max-width: none; padding: 0 30px 30px 30px; } + div.bodywrapper { margin-left: 0px; margin-top: 110px; } + div.document, div.documentwrapper, div.bodywrapper { margin: 0 !important; } + #top-link { display: none; } +} +@media print, screen and (max-width: 720px) { + div.related>ul { visibility: hidden; } + div.related>ul>li.nav-item.nav-item-0 { visibility: visible; } +} +@media print, screen and (max-width: 480px) { + div.body { box-sizing: border-box; padding: 5px; } + div.sphinxsidebar, div.document, div.documentwrapper, div.bodywrapper { width: 100%; } +} + +/* ━━━━━━━━━━━━━━━━━━━ Sidebar Responsive Layout Fix ━━━━━━━━━━━━━━━━━━━ */ +/* -- Force old-style left sidebar layout for Sphinx 7 -- + Sphinx 7+ switched to a single-column mobile-first layout; + this hack restores flex-row with sidebar left/content right for desktop. + Remove this when upstream Sphinx supports left sidebars natively again. +*/ +.document { + display: flex !important; + flex-direction: row !important; + align-items: flex-start; + width: 100%; + box-sizing: border-box; +} + +/* Sidebar goes left, main content right */ +.sphinxsidebar { + order: 0 !important; + width: 18vw !important; + min-width: 170px !important; + max-width: 228.891px !important; /* Magic number: matches live Evennia sidebar width at 1200px */ + flex-shrink: 0 !important; + box-sizing: border-box; + position: static !important; + z-index: 10 !important; + background-clip: padding-box; + overflow-y: auto; + max-height: 100vh; + margin: 0 !important; +} + +/* Main content fills remaining space */ +.documentwrapper { + order: 1 !important; + flex: 1 1 0 !important; /* THIS is what fills the rest! */ + min-width: 0 !important; /* Required for flex overflow to work */ + width: auto !important; + max-width: none !important; + box-sizing: border-box; + margin: 0 !important; /* Remove any stray margin */ + padding: 0 !important; +} + +/* Mobile: Stack vertically again at 480px, matches legacy Sphinx/Evennia */ +@media screen and (max-width: 480px) { + .document { + flex-direction: column !important; + } + .sphinxsidebar, + .documentwrapper { + width: 100% !important; + min-width: 0 !important; + max-width: 100vw !important; + } + .sphinxsidebar { + margin-bottom: 24px !important; + } +} + +/* Avoid pop-under: clear floats just in case */ +.clearer { + display: none !important; +} + +/* End of Evennia custom CSS */ diff --git a/docs/source/_static/nature.css b/docs/source/_static/nature.css deleted file mode 100644 index 2927b5e97d..0000000000 --- a/docs/source/_static/nature.css +++ /dev/null @@ -1,536 +0,0 @@ -/* - * nature.css_t - * ~~~~~~~~~~~~ - * - * Sphinx stylesheet -- nature theme. - * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -@import url("basic.css"); -@import url(https://fonts.googleapis.com/css?family=Arvo:400,700,400italic); -@import url(https://fonts.googleapis.com/css?family=Open%20Sans:400,700,400italic); -@import url('https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap'); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family:"Open Sans", Helvetica, Arial, sans-serif; - font-size: 100%; - background-color: #eee; - color: #555; - margin: 0; - padding: 0; -} - -div.documentwrapper { - display: flex; - flex-wrap: wrap; -} - -div.bodywrapper { - width: 79%; - box-sizing: border-box; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.document { - background-color: #eeeeea; - max-width: 1090px; -} - -div.body { - background-color: #f1f1ef; - color: #3E4349; - padding: 0 30px 30px 30px; - font-size: 0.9em; - margin-top: -9px; -} - -div.footer { - color: #555; - width: 100%; - padding: 13px 0; - text-align: center; - font-size: 75%; - max-width:1080px; -} - -div.footer a { - color: #444; - text-decoration: underline; -} - -div.related { - background-color: #dbe9f0; - line-height: 32px; - color: #9FA0A0; - /*! text-shadow: 0px 1px 0 #444; */ - font-size: 0.9em; - max-width: 1090px; -} - -div.related a { - color: #565F62; -} - -blockquote { - font-style: italic; - color: #797979; - background-color: #e1e8e2; - border: 1px solid #c7cdc8; - padding-left: 14px; - padding-right: 15px; - margin-left: 0; - width: 96%; - border-left-style: dotted; - border-left-width: medium; -} - -blockquote:before { - content: "!"; - float: left; - font-size: 230%; - opacity: 0.3; - padding-right: 5px; -} - -div.sphinxsidebar { - font-size: 0.75em; - line-height: 1.5em; -} - -div.sphinxsidebarwrapper{ - padding: 20px 0; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: Arvo, sans-serif; - color: #4f4f4f; - font-size: 1.2em; - font-weight: normal; - margin: 0; - padding: 5px 10px; - background-color: #dbe9f0; -} - -div.sphinxsidebar h4{ - font-size: 1.1em; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p { - color: #888; - padding: 5px 20px; -} - -div.sphinxsidebar p.topless { -} - -div.sphinxsidebar ul { - margin: 10px 20px; - padding: 0; - color: #000; -} - -div.sphinxsidebar a { - color: #444; -} - -div.sphinxsidebar input { - border: 1px solid #ccc; - font-family: Arvo, sans-serif; - font-size: 1em; -} - -div.sphinxsidebar .searchformwrapper { - margin-left: 20px; - margin-right: 20px; -} - -input { - background-color: #f7f7f7; -} - - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #005B81; - text-decoration: underline; - text-decoration-color: #fff; - text-decoration-color: #bdcbdf; -} - -a:hover { - color: #0492CA; - text-decoration: underline; - text-decoration-color: #9bbed5; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: Arvo, Monaco, serif; - background-color: #f7f7f3; - font-weight: normal; - color: #212224; - margin: 30px 0px 10px 0px; - padding: 5px 0 5px 10px; - text-shadow: 0px 1px 0 white - border-bottom: 1px solid #d1d1d1; - border-left: 10px solid #cfdde8; - border-bottom: 1px solid #c6d7df; -} - -div.body h1 { - margin-top: 20px solid #fff; - font-size: 230%; -} -div.body h2 { - font-size: 150%; -} -div.body h3 { - font-size: 120%; -} -div.body h4 { - font-size: 110%; -} -div.body h5 { - font-size: 100%; -} -div.body h6 { - font-size: 100%; -} - -a.headerlink { - color: #7caeb7; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #7caeb7; -} - -div.body p, div.body dd, div.body li { - line-height: 1.5em; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -p.admonition-title { - margin-right: 0.2em; -} - -div.highlight { - background-color: #f1f1ef; - border-left: 4px; - border-color: #7ea6b3; - border-left-style: double; -} - -.highlight .hll { - background-color: #ffffcc54 !important; - border-radius: 5px; -} - -/* Shell code style (for in-game blocks) */ -div.highlight-shell.notranslate > div.highlight .nb{ - color: white !important; -} -div.highlight-shell.notranslate > div.highlight .m{ - color: white !important; - font-weight: normal !important; -} -div.highlight-shell.notranslate > div.highlight .k{ - color: white !important; - font-weight: normal !important; -} -div.highlight-shell.notranslate > div.highlight .o{ - color: white !important; - font-weight: normal !important; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; - font-style: italic; - text-indent: -2.9em; - padding-left: 3.5em; -} -div.note > p { - text-indent: 0em; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; - font-style: italic; - text-indent: -4.6em; - padding-left: 5.2em; -} - -div.warning > p { - text-indent: 0em; -} - -div.important { - text-indent: -5.5em; - padding-left: 6.1em; -} - -div.important > p { - text-indent: 0em; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -li > p:first-child { - margin-top: 0px; - margin-bottom: 0px; -} - -li > p { - margin-top: 0px; - margin-bottom: 0px; -} - - -/* The indents of kwarg - lists in api docs */ -dl.field-list.simple > dd.field-odd > ul.simple > li > ul { - margin-left: 24px; -} -dd.field-odd > ul.simple > li > ul > li > dl.simple { - margin-bottom: -8px; -} - - -.admonition.important { - background-color: #fbf7c3; - border: 1px solid #c8c59b; - font-style: italic; -} - -.admonition.note { - background-color: #e1e8e2; -} - -pre { - padding: 10px; - background-color: #e3e3e3; - color: #222; - line-height: 1.2em; - border: 1px solid #C6C9CB; - font-size: 1.1em; - margin: 1.5em 0 1.5em 0; - -webkit-box-shadow: 1px 1px 1px #d8d8d8; - -moz-box-shadow: 1px 1px 1px #d8d8d8; -} - -code { - background-color: #ecf0f3; - color: #6e0e0e; - /* padding: 1px 2px; */ - font-size: 0.9em; - font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; - font-weight: normal; - background-color: #f7f7f7; -} - -.viewcode-back { - font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; -} - -div.viewcode-block:target { - background-color: #f4e9d9; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} - -div.code-block-caption { - background-color: #ddd; - color: #222; - border: 1px solid #C6C9CB; -} - -.logo { - padding-left: 1px; - margin-left: auto; - margin-right: auto; - display: block; - margin-top: -12px; - opacity: 0.8; -} - -.versionadded { - background-color: #e9f6e1; -} - -.versionchanged { - background-color: #b7e6e8; - padding-left: 10px; -} - -.deprecated { - background-color: #fff3f3; -} - -/* API-docs custom coloring */ - - -.class { - font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; - font-size: 0.9em; - background-color: #f5ffff; - padding: 5px; -} - -.method { - background-color: #e3ecec; - padding: 5px; - font-size: 1.0em; -} - -.sig-param { - font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; -} - -.sig-paren { - margin-left: 1px; -} - -.property { - font-family: "Courier Prime", Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; -} - -dl.class > dd > p { - font-style: italic; -} - -dl.method > dd > p { - font-style: italic; -} - - -code.descname { - font-size: 0.9em; -} - -.function { - background-color: #eff; - padding: 5px; -} - -.exception { - background-color: #fff9f9; - padding: 5px; -} - -div.linenodiv>pre { - font-size: 0.9em; - line-height: 153%; - padding-right: 0; - padding-top: 8px; -} - -/* The develop-branch warning header */ - -.develop { - background-color: #ffe4e4; - align-content: center; - width: auto; - text-align: center; - letter-spacing: 15px; -} - - - -/* -- screen sizes ------------------------------------------------------------------ */ - -@media print, screen and (max-width: 960px) { - - div.body { - min-width: auto; - max-width: none; - padding: 0 30px 30px 30px; - } - - div.bodywrapper { - margin-left: 0px; - margin-top: 110px; - } - - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - - } - - #top-link { - display: none; - } -} - -@media print, screen and (max-width: 720px) { - div.related>ul { - visibility: hidden; - } - - div.related>ul>li.nav-item.nav-item-0 { - visibility: visible; - } - -} - -@media print, screen and (max-width: 480px) { - div.body { - box-sizing: border-box; - padding: 5px; - } - - /* - * At screen sizes this small, the sidebar stacks on top - * of the main content, so they both are 100% width. - */ - div.sphinxsidebar { - width: 100%; - } - - div.document, - div.documentwrapper, - div.bodywrapper { - width: 100%; - } -} diff --git a/docs/source/_static/searchtools.js b/docs/source/_static/searchtools.js deleted file mode 100644 index d3650df7a5..0000000000 --- a/docs/source/_static/searchtools.js +++ /dev/null @@ -1,542 +0,0 @@ -/* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -if (!Scorer) { - /** - * Simple result scoring code. - */ - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array query, [filename, title, anchor, descr, score] - // and returns the new score. - /* - score: function(result) { - return result[4]; - }, - */ - // Evennia optimized scorer - score: function(inquery, result) { - query = inquery.toLowerCase(); - var title = result[1].toLowerCase().replace(/<\/?[^>]+(>|$)/g, ""); - var score = result[4]; - - var mscore = score; - - if (query === title) { - mscore = score * 10; - } - else if (title.startsWith(query)) { - mscore = score * 8; - if (title.startsWith("evennia.")) { - mscore *= 0.2; - } - } - else if (title.includes(query)) { - mscore = score * 7; - if (title.startsWith("evennia.")) { - mscore *= 0.2; - } - } - else { - mscore = score * 0.5; - } - // console.log("result: " + title + ", " + score + "->" + mscore); - return mscore; - }, - // query matches the full name of an object - objNameMatch: 3, - // or matches in the last dotted part of the object name - objPartialMatch: 2, - // Additive scores depending on the priority of the object - objPrio: {0: 3, // used to be importantResults - 1: 2, // used to be objectResults - 2: -15}, // used to be unimportantResults - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 12, - partialTitle: 3, - // query found in terms - term: 2, - partialTerm: 1 - }; -} - -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); - } -} - -/** - * Search Module - */ -var Search = { - - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - var htmlElement = document.createElement('span'); - htmlElement.innerHTML = htmlString; - $(htmlElement).find('.headerlink').remove(); - docContent = $(htmlElement).find('[role=main]')[0]; - if(docContent === undefined) { - console.warn("Content block not found. Sphinx search tries to obtain it " + - "via '[role=main]'. Could you check your theme or template."); - return ""; - } - return docContent.textContent || docContent.innerText; - }, - - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } - }, - - loadIndex : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, - - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); - } - }, - - hasIndex : function() { - return this._index !== null; - }, - - deferQuery : function(query) { - this._queued_query = query; - }, - - stopPulse : function() { - this._pulse_status = 0; - }, - - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; - Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } - pulse(); - }, - - /** - * perform a search for something (or wait until index is loaded) - */ - performSearch : function(query) { - // create the required interface elements - this.out = $('#search-results'); - this.title = $('
').appendTo(this.out); - this.output = $('
Note
-You are reading an old version of the Evennia documentation. The latest version is here
. -Note
-You are reading an old version of the Evennia documentation. The latest version is here
. -