From c03229cd9dbd0b80ba9777dfcd49a56ee3183be7 Mon Sep 17 00:00:00 2001 From: Yuri Sizov Date: Tue, 11 Apr 2023 10:50:54 +0200 Subject: [PATCH] Port layout changes from the master version This also updates the index page, changes the first sidebar section to be "About" without an extra level, and renames "Tutorials" to "Manual" (cherry picked from commit 0c100d9f147472c4ccac62343430a132e55f3345) --- .gitignore | 7 + Makefile | 212 +---- _static/css/custom.css | 844 +++++++++++++++--- _static/css/dev.css | 8 + _static/css/fonts/JetBrainsMono-Bold.woff2 | Bin 0 -> 71180 bytes _static/css/fonts/JetBrainsMono-Medium.woff2 | Bin 0 -> 70480 bytes _static/css/fonts/JetBrainsMono-Regular.woff2 | Bin 0 -> 69440 bytes _static/js/custom.js | 532 +++++++---- _templates/breadcrumbs.html | 46 +- _templates/layout.html | 63 +- _templates/versions.html | 60 ++ about/docs_changelog.rst | 2 +- about/index.rst | 18 - classes/index.rst | 2 + .../contributing_to_the_documentation.rst | 2 +- .../contributing/documentation_guidelines.rst | 4 +- .../updating_the_class_reference.rst | 4 +- community/contributing/ways_to_contribute.rst | 2 +- conf.py | 53 +- .../introduction/learning_new_features.rst | 2 +- img/docs_logo.png | Bin 38506 -> 0 bytes img/docs_logo.svg | 1 + index.rst | 96 +- 23 files changed, 1390 insertions(+), 568 deletions(-) create mode 100644 _static/css/dev.css create mode 100644 _static/css/fonts/JetBrainsMono-Bold.woff2 create mode 100644 _static/css/fonts/JetBrainsMono-Medium.woff2 create mode 100644 _static/css/fonts/JetBrainsMono-Regular.woff2 create mode 100644 _templates/versions.html delete mode 100644 about/index.rst delete mode 100644 img/docs_logo.png create mode 100644 img/docs_logo.svg diff --git a/.gitignore b/.gitignore index c732858ee..94c3fee6b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +*.csv +!redirects.csv +.env + _build/ env/ __pycache__ @@ -40,3 +44,6 @@ logo.h # Output of list-unused-images.sh tool tmp-unused-images tmp-unused-images-history + +# User created Python virtual environement as described in the docs +godot-docs-venv/ diff --git a/Makefile b/Makefile index f1fa052cf..200ce1c84 100644 --- a/Makefile +++ b/Makefile @@ -1,199 +1,37 @@ # Makefile for Sphinx documentation -# -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build -LATEXDEPS = latex dvipng +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SPHINXSOURCEDIR ?= . +SPHINXBUILDDIR ?= _build +SPHINXPAPER ?= +FILELIST ?= # User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD make variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +ifneq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 0) +define ERROR_MESSAGE +The '$(SPHINXBUILD)' command was not found! +Make sure you have Sphinx installed, then set the SPHINXBUILD make variable to the full path of the '$(SPHINXBUILD)' executable. +Alternatively you can add the executable's directory to your PATH. +If you don't have Sphinx installed, grab it from http://sphinx-doc.org/ +endef +$(error ${ERROR_MESSAGE}) endif -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) -t i18n . +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +COMMONSPHINXOPTS = $(PAPEROPT_$(SPHINXPAPER)) $(SPHINXOPTS) '$(SPHINXSOURCEDIR)' +DEFAULTSPHINXOPTS = -d $(SPHINXBUILDDIR)/doctrees $(COMMONSPHINXOPTS) -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext +.PHONY: help clean help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - @echo " dummy to run only the parse steps without generating output" - -clean: - rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/GodotEngine.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/GodotEngine.qhc" - -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/GodotEngine" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/GodotEngine" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + @$(SPHINXBUILD) -M help $(DEFAULTSPHINXOPTS) $(O) "$(SPHINXBUILDDIR)" +# This is used by https://github.com/godotengine/godot-docs-l10n +# See https://github.com/godotengine/godot-docs-l10n/blob/f157c0cacc8a6e542e06e96b983b27de91637f8b/update.sh#L92 gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) ../sphinx/templates - @echo - @echo "Build finished. The message catalogs are in ../sphinx/templates." + $(SPHINXBUILD) -b gettext -t i18n $(COMMONSPHINXOPTS) ../sphinx/templates $(FILELIST) -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -dummy: - $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. No output." +%: + $(SPHINXBUILD) -M $@ $(DEFAULTSPHINXOPTS) $(O) "$(SPHINXBUILDDIR)"/$@ $(FILELIST) diff --git a/_static/css/custom.css b/_static/css/custom.css index 3dd77188e..3379f5f50 100644 --- a/_static/css/custom.css +++ b/_static/css/custom.css @@ -5,21 +5,47 @@ * based on browser preferences. */ + @font-face { + font-family: "JetBrains Mono"; + src: url('fonts/JetBrainsMono-Regular.woff2'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: "JetBrains Mono"; + src: url('fonts/JetBrainsMono-Medium.woff2'); + font-weight: 600; + font-style: normal; +} +@font-face { + font-family: "JetBrains Mono"; + src: url('fonts/JetBrainsMono-Bold.woff2'); + font-weight: 700; + font-style: normal; +} + /* Default (light) theme colors */ :root { --body-color: #404040; --content-wrap-background-color: #efefef; --content-background-color: #fcfcfc; --logo-opacity: 1.0; + --navbar-background-color: #333f67; --navbar-background-color-hover: #29355c; --navbar-background-color-active: #212d51; --navbar-current-background-color: #212d51; --navbar-current-background-color-hover: #182343; --navbar-current-background-color-active: #131e3b; + --navbar-category-active-color: rgba(255 115 129 / 10%); + --navbar-current-color: #f1f9ff; --navbar-level-1-color: #c3e3ff; --navbar-level-2-color: #b8d6f0; --navbar-level-3-color: #a3c4e1; + --navbar-expand-base-color: #81a3c2; + --navbar-expand-hover-color: #c3e3ff; + --navbar-expand-active-color: #f1f9ff; + --navbar-dimmed-color: #a3c4e1; --navbar-heading-color: #ff7381; --navbar-scrollbar-color: #d45a66; --navbar-scrollbar-hover-color: #b14550; @@ -30,16 +56,26 @@ --link-color-hover: #3091d1; --link-color-active: #105078; --link-color-visited: #9b59b6; + --class-reference-icon: url("data:image/svg+xml;base64,PHN2ZyBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjIiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtNS4wMjkgMWMtLjk5OS0uMDExLTIuMDA5LjMxMi0zLjAyOSAxdjdjMi4wMTctMS4zNTMgNC4wMTctMS4zMTQgNiAwIDEuOTgzLTEuMzE0IDMuOTgzLTEuMzUzIDYgMHYtN2MtMS4wMi0uNjg4LTIuMDMtMS4wMTEtMy4wMjktMS0uNjYyLjAwNy0xLjMxOC4xNzMtMS45NzEuNDYzdjQuNTM3aC0xdi00Yy0uOTgyLS42NDUtMS45NzEtLjk4OS0yLjk3MS0xem0tNS4wMjkgOXY2aDJjMS42NDYgMCAzLTEuMzU0IDMtM3MtMS4zNTQtMy0zLTN6bTUgM2MwIDEuNjQ2IDEuMzU0IDMgMyAzczMtMS4zNTQgMy0zLTEuMzU0LTMtMy0zLTMgMS4zNTQtMyAzem02IDBjMCAxLjY0NiAxLjM1NCAzIDMgM2gxdi0yaC0xYy0uNTQ5IDAtMS0uNDUxLTEtMXMuNDUxLTEgMS0xaDF2LTJoLTFjLTEuNjQ2IDAtMyAxLjM1NC0zIDN6bS05LTFjLjU0OSAwIDEgLjQ1MSAxIDFzLS40NTEgMS0xIDF6bTYgMGMuNTQ5IDAgMSAuNDUxIDEgMXMtLjQ1MSAxLTEgMS0xLS40NTEtMS0xIC40NTEtMSAxLTF6IiBmaWxsPSIjNDE0MTQxIiBmaWxsLW9wYWNpdHk9Ii41OSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9zdmc+Cg=="); --external-reference-icon: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEyIiB3aWR0aD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjk4MGI5Ij48cGF0aCBkPSJtNy41IDcuMXYzLjRoLTZ2LTZoMy40Ii8+PHBhdGggZD0ibTUuNzY1IDFoNS4yMzV2NS4zOWwtMS41NzMgMS41NDctMS4zMS0xLjMxLTIuNzI0IDIuNzIzLTIuNjktMi42ODggMi44MS0yLjgwOC0xLjMxMy0xLjMxeiIvPjwvZz48L3N2Zz4K"); --hr-color: #e1e4e5; --table-row-odd-background-color: #f3f6f6; - --code-background-color: #fff; + --code-background-color: #e9eae5; --code-border-color: #e1e4e5; - --code-literal-color: #d04c60; + --code-literal-color: #c03e41; --input-background-color: #fcfcfc; --input-focus-border-color: #5f8cff; + --tabs-background-color: #e1e4e5; + --tabs-selected-color: #a2a9ae; + --code-tabs-background-color: #e3ecd1; + --code-tabs-selected-color: #8a9378; + + --classref-primary-color: #252525; + --classref-secondary-color: #616770; + --classref-setget-color: #56585b; + --search-input-background-color: #e6eef3; /* derived from --input-background-color */ --search-match-color: #2c6b96; /* derived from --link-color */ --search-match-background-color: #e3f2fd; /* derived from --link-color */ @@ -48,6 +84,11 @@ --search-credits-color: #b3b3b3; /* derived from --footer-color */ --search-credits-link-color: #4392c5; /* derived from --link-color */ + --search-odd-color: rgb(133 160 253 / 24%); + --search-even-color: rgb(202 209 239 / 30%); + --search-highlighted-color: rgb(255 205 0 / 25%); + --search-context-color: #6c6e72; + --highlight-background-color: #f5ffe1; --highlight-background-emph-color: #dbe6c3; --highlight-default-color: #404040; @@ -62,6 +103,9 @@ --highlight-operator-color: #666666; --highlight-string-color: #4070a0; + --contribute-background-color: #d7dee8; + --contribute-text-color: #646e72; + --admonition-note-background-color: #e7f2fa; --admonition-note-color: #404040; --admonition-note-title-background-color: #6ab0de; @@ -84,9 +128,15 @@ --kbd-shadow-color: #b0b7bf; --kbd-text-color: #444d56; + --code-example-good-color: #3fb950; + --code-example-bad-color: #f85149; + --btn-neutral-background-color: #f3f6f6; --btn-neutral-hover-background-color: #e5ebeb; --footer-color: #808080; + + --system-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --monospace-font-family: "JetBrains Mono", SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, Courier, monospace; } /* Dark theme colors */ @@ -97,15 +147,22 @@ --content-background-color: #2e3236; /* Decrease the logo opacity when using the dark theme to be less distracting */ --logo-opacity: 0.85; + --navbar-background-color: #25282b; --navbar-background-color-hover: #333639; --navbar-background-color-active: #111417; --navbar-current-background-color: #333639; --navbar-current-background-color-hover: #44474a; --navbar-current-background-color-active: #222528; + --navbar-category-active-color: rgba(238 115 129 / 10%); + --navbar-current-color: #fefefe; --navbar-level-1-color: #ddd; --navbar-level-2-color: #ccc; --navbar-level-3-color: #bbb; + --navbar-expand-base-color: #80848e; + --navbar-expand-hover-color: #ccc; + --navbar-expand-active-color: #ddd; + --navbar-dimmed-color: #bbb; --navbar-heading-color: #ee7381; --navbar-scrollbar-color: #be5460; --navbar-scrollbar-hover-color: #963e48; @@ -116,16 +173,26 @@ --link-color-hover: #9df; --link-color-active: #6ad; --link-color-visited: #cb99f6; + --class-reference-icon: url("data:image/svg+xml;base64,PHN2ZyBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjIiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtNS4wMjkgMWMtLjk5OS0uMDExLTIuMDA5LjMxMi0zLjAyOSAxdjdjMi4wMTctMS4zNTMgNC4wMTctMS4zMTQgNiAwIDEuOTgzLTEuMzE0IDMuOTgzLTEuMzUzIDYgMHYtN2MtMS4wMi0uNjg4LTIuMDMtMS4wMTEtMy4wMjktMS0uNjYyLjAwNy0xLjMxOC4xNzMtMS45NzEuNDYzdjQuNTM3aC0xdi00Yy0uOTgyLS42NDUtMS45NzEtLjk4OS0yLjk3MS0xem0tNS4wMjkgOXY2aDJjMS42NDYgMCAzLTEuMzU0IDMtM3MtMS4zNTQtMy0zLTN6bTUgM2MwIDEuNjQ2IDEuMzU0IDMgMyAzczMtMS4zNTQgMy0zLTEuMzU0LTMtMy0zLTMgMS4zNTQtMyAzem02IDBjMCAxLjY0NiAxLjM1NCAzIDMgM2gxdi0yaC0xYy0uNTQ5IDAtMS0uNDUxLTEtMXMuNDUxLTEgMS0xaDF2LTJoLTFjLTEuNjQ2IDAtMyAxLjM1NC0zIDN6bS05LTFjLjU0OSAwIDEgLjQ1MSAxIDFzLS40NTEgMS0xIDF6bTYgMGMuNTQ5IDAgMSAuNDUxIDEgMXMtLjQ1MSAxLTEgMS0xLS40NTEtMS0xIC40NTEtMSAxLTF6IiBmaWxsPSIjYmZiZmJmIiBmaWxsLW9wYWNpdHk9Ii41OSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9zdmc+Cg=="); --external-reference-icon: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEyIiB3aWR0aD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOGNmIj48cGF0aCBkPSJtNy41IDcuMXYzLjRoLTZ2LTZoMy40Ii8+PHBhdGggZD0ibTUuNzY1IDFoNS4yMzV2NS4zOWwtMS41NzMgMS41NDctMS4zMS0xLjMxLTIuNzI0IDIuNzIzLTIuNjktMi42ODggMi44MS0yLjgwOC0xLjMxMy0xLjMxeiIvPjwvZz48L3N2Zz4K"); --hr-color: #555; --table-row-odd-background-color: #3b3e41; - --code-background-color: #434649; + --code-background-color: #22252d; --code-border-color: #505356; - --code-literal-color: #faa; + --code-literal-color: #d68f8f; --input-background-color: #333537; --input-focus-border-color: #5f8cff; + --tabs-background-color: #434649; + --tabs-selected-color: #a2a9ae; + --code-tabs-background-color: #353c4c; + --code-tabs-selected-color: #5a657e; + + --classref-primary-color: #e8e8e8; + --classref-secondary-color: #929598; + --classref-setget-color: #9e9fa0; + --search-input-background-color: #43464a; /* derived from --input-background-color */ --search-match-color: #52b4ff; /* derived from --link-color */ --search-match-background-color: #414c56; /* derived from --link-color */ @@ -134,6 +201,11 @@ --search-credits-color: #6b6b6b; /* derived from --footer-color */ --search-credits-link-color: #628fb1; /* derived from --link-color */ + --search-odd-color: #202326; + --search-even-color: #25282b; + --search-highlighted-color: rgb(255 205 0 / 16%); + --search-context-color: #aaa; + /* Colors taken from the Godot script editor with the Adaptive theme */ --highlight-background-color: #202531; --highlight-background-emph-color: #2d3444; @@ -142,13 +214,16 @@ --highlight-keyword-color: #ff7085; --highlight-keyword2-color: #42ffc2; --highlight-number-color: #a1ffe0; - --highlight-decorator-color: #abc8ff; + --highlight-decorator-color: #ffb373; --highlight-type-color: #8effda; --highlight-type2-color: #c6ffed; --highlight-function-color: #57b3ff; --highlight-operator-color: #abc8ff; --highlight-string-color: #ffeca1; + --contribute-background-color: #25282d; + --contribute-text-color: #7f939b; + --admonition-note-background-color: #303d4f; --admonition-note-color: #bfeeff; --admonition-note-title-background-color: #305070; @@ -171,6 +246,9 @@ --kbd-shadow-color: #1e2023; --kbd-text-color: #e2f2ff; + --code-example-good-color: #3fb950; + --code-example-bad-color: #f85149; + --btn-neutral-background-color: #404040; --btn-neutral-hover-background-color: #505050; --footer-color: #aaa; @@ -194,7 +272,9 @@ legend, .rst-content .toctree-wrapper p.caption, .rst-versions { /* Use a system font stack for better performance (no Web fonts required) */ - font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: var(--system-font-family); + /* Some fonts that we use (namely JetBrains Mono) can come with ligatures. It's better to opt-in if needed. */ + font-variant-ligatures: none; } h1, @@ -236,14 +316,21 @@ article ol, .wy-plain-list-disc, .wy-plain-list-decimal, .rst-content ol.arabic, -.rst-content .section ul, -.rst-content .toctree-wrapper ul, -.rst-content .section ol { +.rst-content .toctree-wrapper ul { /* Increase the line height slightly to account for the different font */ line-height: 25px; } -.rst-content section ul li { +/* Depending on the environment, it can be a section tag or a div with the section class. */ +.rst-content section ul, +.rst-content section ol, +.rst-content .section ul, +.rst-content .section ol { + /* Increase the line height slightly to account for the different font */ + line-height: 25px; +} +.rst-content section ul li, +.rst-content .section ul li { /* Increase spacing between list items. */ margin-top: 8px; margin-bottom: 8px; @@ -258,19 +345,6 @@ a { color: var(--link-color); } -.sphinx-tabs-tab { - color: var(--link-color); -} - -.sphinx-tabs-tab[aria-selected="true"] { - background-color: var(--code-background-color); - border-bottom: 1px solid var(--code-background-color); -} - -.sphinx-tabs-panel { - background-color: var(--code-background-color); -} - a:hover { color: var(--link-color-hover); text-decoration: underline; @@ -297,12 +371,85 @@ a.btn:hover { padding-right: 13px; } +/* Distinguish class reference page links from "user manual" page links with a class reference badge. */ + +/* Remove text wrapping so that the badge is always on the same line as the anchor's text. */ +.rst-content a[href*="classes/"] { + white-space: nowrap; +} +/* Add an icon as a badge, after the anchor's text. */ +.rst-content a[href*="classes/"]::after { + content: ""; + background-image: var(--class-reference-icon); + display: inline-block; + height: 16px; + width: 16px; + padding: 0.125rem 0.375rem; + margin-left: 0.25rem; +} + +/* Prevent the class reference badge from appearing twice in the instant search results (not testable locally). */ +.wy-body-for-nav .search__result__single a[href*="classes/"]::after { + display: none; +} +.wy-body-for-nav .search__result__single a[href*="classes/"]:first-child::after { + display: inline-block; +} +/* Prevent the class reference badge from appearing several times per item in the dedicated search results page. */ +#search-results .context a[href*="classes/"]::after { + display: none; +} + +/* Stylize horizontal separator, mainly for the search results page. */ hr, #search-results .search li:first-child, #search-results .search li { border-color: var(--hr-color); } +/* Stylize the search results page. */ +#search-results .search-summary { + color: var(--footer-color); +} + +#search-results .context { + color: var(--search-context-color); + padding-left: 14px; + position: relative; +} + +#search-results .context:before { + content: "•"; + display: block; + position: absolute; + left: 0; + font-size: 120%; +} + +#search-results .search li { + background-color: var(--search-odd-color); + padding: 16px 14px; + border-radius: 6px; + border: none; + margin-bottom: 18px; +} + +#search-results .search li:first-child { + border: none; + padding: 16px 14px; + margin-top: 20px; +} + +#search-results .search li:nth-child(2n) { + background-color: var(--search-even-color); +} + +/* Add more visual separation for the title of a search result island. */ +#search-results .search li > a:first-child { + font-weight: 600; + font-size: 140%; +} + /* JavaScript documentation directives */ html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dl:not(.field-list) > dt { @@ -328,7 +475,7 @@ html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not( html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).function > dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).method > dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).attribute > dt { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, Courier, monospace; + font-family: var(--monospace-font-family); font-size: 90%; font-weight: normal; margin-bottom: 16px; @@ -379,11 +526,10 @@ html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not( color: var(--link-color-visited); } html.writer-html5 .rst-content dl.field-list > dd strong { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, Courier, monospace; + font-family: var(--monospace-font-family); } -footer, -#search-results .context { +footer { color: var(--footer-color); } @@ -494,6 +640,7 @@ footer, .wy-nav-content { background-color: var(--content-background-color); + max-width: 900px; } .wy-body-for-nav { @@ -503,20 +650,80 @@ footer, @media only screen and (min-width: 769px) { .wy-body-for-nav { /* Center the page on wide displays for better readability */ - max-width: 1100px; + max-width: 1200px; margin: 0 auto; } } +/* Customize the look of tabbed panels, including code tabs. */ + +.rst-content [role="tablist"] { + border-bottom: none; +} + +.rst-content .sphinx-tabs-tab { + border-top: 4px solid transparent; + color: var(--link-color); + padding: 0.5rem 1.25rem; +} + +.rst-content .sphinx-tabs-tab[aria-selected="true"] { + background-color: var(--tabs-background-color); + border: none; + border-radius: 0; + border-top: 4px solid var(--tabs-selected-color); +} +.rst-content .sphinx-tabs-tab.code-tab[aria-selected="true"] { + background-color: var(--code-tabs-background-color); + border-top: 4px solid var(--code-tabs-selected-color); +} + +.rst-content .sphinx-tabs-tab:focus { + z-index: inherit; +} + +.rst-content .sphinx-tabs-panel { + background-color: var(--tabs-background-color); + border: none; + border-radius: 0; +} +.rst-content .sphinx-tabs-panel.code-tab { + background-color: var(--code-tabs-background-color); +} + +.rst-content .sphinx-tabs-panel div[class^="highlight"] { + border: none; + box-shadow: none; + margin-bottom: 2px; +} + +.rst-content div[class^="highlight"] pre { + font-variant-ligatures: none; + padding: 18px 16px; +} + /* Table display tweaks */ .rst-content table.docutils, +.wy-table-bordered-all { + border: 4px solid var(--code-border-color); +} + .wy-table-bordered-all td, -.rst-content table.docutils td, .wy-table thead th, +.rst-content table.docutils td, .rst-content table.docutils thead th, .rst-content table.field-list thead th { - border-color: var(--code-border-color); + border-bottom: 2px solid var(--code-border-color); + border-left: 2px solid var(--code-border-color); + padding: 4px 16px; +} + +html.writer-html5 .rst-content table.docutils th { + border-bottom: 4px solid var(--code-border-color); + border-left: 2px solid var(--code-border-color); + padding: 8px 16px; + vertical-align: middle; } .wy-table-odd td, @@ -531,29 +738,65 @@ footer, .wy-table-responsive table th:not(:nth-child(1)) { white-space: normal; } +/* Allow to control wrapping behavior per table */ +.wy-table-responsive table.wrap-normal td, +.wy-table-responsive table.wrap-normal th { + white-space: normal; +} + +/* Make sure line blocks don't stretch tables */ +.wy-table-responsive table .line-block { + margin-bottom: 0; +} + /* Make sure not to wrap keyboard shortcuts */ .wy-table-responsive table td kbd { white-space: nowrap; } +/* Artificially increasing specificity to make it override theme.css. */ +html.writer-html5 .rst-content .wy-table-responsive > table td > p { + line-height: 1.425rem; +} +html.writer-html5 .rst-content .wy-table-responsive > table th > p { + line-height: 1.425rem; + font-size: .95rem; + font-weight: 600; +} + +html.writer-html5 .rst-content .wy-table-responsive > table td > p tt.literal, +html.writer-html5 .rst-content .wy-table-responsive > table td > p code.literal { + font-size: .85rem; + padding: 2px 5px; +} + /* Code display tweaks */ code, .rst-content tt, .rst-content code { font-size: 14px; + font-family: var(--monospace-font-family); background-color: var(--code-background-color); - border: 1px solid var(--code-border-color); + border: none; + border-radius: 4px; } .rst-content tt.literal, .rst-content code.literal { color: var(--code-literal-color); + font-weight: 600; + font-variant-ligatures: none; + padding: 3px 5px; } .rst-content div[class^="highlight"] { - border-color: var(--code-border-color); + border: 3px solid var(--code-tabs-background-color); +} + +.rst-content div[class^="highlight"] div[class^="highlight"] { + box-shadow: none; } .rst-content pre.literal-block, @@ -562,6 +805,7 @@ code, /* Increase the font size and line height in code blocks */ font-size: 14px; line-height: 1.5; + font-family: var(--monospace-font-family); } /* Code tab display tweaks */ @@ -679,18 +923,59 @@ code, color: var(--highlight-string-color); } -/* Admonition tweaks */ +/* Call to action for missing documentation */ +.rst-content .contribute { + background-color: var(--contribute-background-color); + color: var(--contribute-text-color); + padding: 12px; + margin-bottom: 12px; +} +.rst-content .contribute > p { + margin-bottom: 0; +} + +/* Admonition tweaks */ +.rst-content .admonition-grid { + display: grid; + grid-template-columns: 1fr; + gap: 20px; +} +.rst-content .admonition-grid-2x { + grid-template-columns: 4fr 5fr; +} +@media screen and (max-width: 1020px) { + .rst-content .admonition-grid { + gap: 12px; + } + .rst-content .admonition-grid-2x { + grid-template-columns: 1fr; + } +} + +.rst-content .admonition, .rst-content .admonition.note, .rst-content .admonition.seealso { background-color: var(--admonition-note-background-color); + border-radius: 4px; + box-shadow: 0px 3px 9px 0px rgb(0 0 0 / 29%); color: var(--admonition-note-color); } +.rst-content .admonition .admonition-title, .rst-content .admonition.note .admonition-title, .rst-content .admonition.seealso .admonition-title { background-color: var(--admonition-note-title-background-color); + border-radius: 4px 4px 0 0; color: var(--admonition-note-title-color); + font-weight: 600; + font-size: 105%; + line-height: 120%; + padding: 6px 16px; +} + +.rst-content .admonition .admonition-title:before { + margin-right: 9px; } .rst-content .admonition.attention, @@ -729,8 +1014,14 @@ code, color: var(--admonition-tip-title-color); } +.article-status strong { + color: var(--body-color); +} + /* Keyboard shortcuts tweaks */ -kbd, .kbd { +kbd, .kbd, +.rst-content :not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > kbd, +.rst-content :not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > .kbd { background-color: var(--kbd-background-color); border: 1px solid var(--kbd-outline-color); border-radius: 3px; @@ -753,6 +1044,193 @@ kbd.compound > .kbd, padding: 0; } +/* Class reference tweaks. */ + +.classref-section-separator { + border-color: var(--navbar-heading-color); + border-top-width: 3px; + margin: 36px 0; +} + +.classref-item-separator { + border-top-width: 2px; + margin: 26px 0; +} + +.classref-descriptions-group > p.classref-property, +.classref-descriptions-group > p.classref-signal, +.classref-descriptions-group > p.classref-annotation, +.classref-descriptions-group > p.classref-themeproperty, +.classref-descriptions-group > p.classref-method, +.classref-descriptions-group > p.classref-constructor, +.classref-descriptions-group > p.classref-operator, +.classref-descriptions-group > p.classref-constant, +.classref-descriptions-group > p.classref-enumeration, +.classref-descriptions-group > p.classref-enumeration-constant { + color: var(--classref-secondary-color); + font-family: var(--monospace-font-family); + font-size: 110%; + font-weight: 600; + margin-bottom: 18px; +} + +.classref-property { + margin-bottom: 12px; +} + +p + .classref-constant { + margin-top: 22px; +} + +.classref-descriptions-group > p.classref-enumeration-constant { + font-size: 100%; + margin-top: 18px; + margin-bottom: 14px; +} + +.classref-property > a, +.classref-signal > a, +.classref-annotation > a, +.classref-themeproperty > a, +.classref-method > a, +.classref-constructor > a, +.classref-operator > a, +.classref-constant > a, +.classref-enumeration > a { + opacity: 0.85; +} +.classref-enumeration-constant > a { + opacity: 0.75; +} + +.classref-property > a:hover, +.classref-signal > a:hover, +.classref-annotation > a:hover, +.classref-themeproperty > a:hover, +.classref-method > a:hover, +.classref-constructor > a:hover, +.classref-operator > a:hover, +.classref-constant > a:hover, +.classref-enumeration > a:hover, +.classref-enumeration-constant > a:hover { + opacity: 1; +} + +.classref-property > strong, +.classref-signal > strong, +.classref-annotation > strong, +.classref-themeproperty > strong, +.classref-method > strong, +.classref-constructor > strong, +.classref-operator > strong, +.classref-constant > strong, +.classref-enumeration > strong, +.classref-enumeration-constant > strong { + color: var(--classref-primary-color); +} + +.classref-property > code.literal, +.classref-signal > code.literal, +.classref-annotation > code.literal, +.classref-themeproperty > code.literal, +.classref-method > code.literal, +.classref-constructor > code.literal, +.classref-operator > code.literal, +.classref-constant > code.literal, +.classref-enumeration > code.literal, +.classref-enumeration-constant > code.literal { + background-color: transparent; + border: none; + padding: 0; + font-weight: 600; + font-size: 90% +} + +.classref-constant > code.literal, +.classref-enumeration-constant > code.literal { + color: var(--classref-setget-color); + font-weight: 400; +} + +/* Artificially increasing specificity to make it override theme.css. */ +.classref-descriptions-group ul.classref-property-setget { + color: var(--classref-setget-color); + font-size: 90%; + margin-bottom: 22px; +} + +.classref-property-setget > li { + line-height: 22px; +} + +.classref-property-setget p { + font-family: var(--monospace-font-family); + font-size: 100%; + line-height: 22px; +} + +.classref-property-setget p > a { + opacity: 0.75; +} +.classref-property-setget p > a:hover { + opacity: 1; +} + +.classref-property-setget p > strong { + color: var(--classref-setget-color); +} + +.classref-property-setget p > code { + background-color: transparent; + border: none; + padding: 0; + font-weight: 600; +} + +.classref-descriptions-group { + margin-left: 24px; +} +#enumerations.classref-descriptions-group { + margin-left: 48px; +} + +.classref-descriptions-group > h2, +.classref-descriptions-group > hr { + margin-left: -24px; +} +#enumerations.classref-descriptions-group > h2, +#enumerations.classref-descriptions-group > hr { + margin-left: -48px; +} + +.classref-descriptions-group > p { + margin-bottom: 12px; +} + +.classref-descriptions-group .classref-property, +.classref-descriptions-group .classref-signal, +.classref-descriptions-group .classref-annotation, +.classref-descriptions-group .classref-themeproperty, +.classref-descriptions-group .classref-method, +.classref-descriptions-group .classref-constructor, +.classref-descriptions-group .classref-operator, +.classref-descriptions-group .classref-constant, +.classref-descriptions-group .classref-enumeration-constant { + margin-left: -24px; +} + +.classref-descriptions-group .classref-enumeration { + margin-left: -48px; +} + +.classref-reftable-group .wy-table-responsive { + margin-bottom: 36px; +} + +.classref-reftable-group .wy-table-responsive > table { + width: 100%; +} + /* Buttons */ .btn-neutral { @@ -774,15 +1252,23 @@ kbd.compound > .kbd, opacity: var(--logo-opacity); } +.wy-side-nav-search > a { + padding: 0; + margin-bottom: 0.404em; + margin-top: 0.404em; +} + .wy-side-nav-search > a img.logo { /* Fixed size to prevent reflows and support hiDPI displays */ /* A 5 pixel margin is added on each side. The logo itself displays at 200×200 at 100% scaling. */ - width: 210px; - height: 210px; + width: 270px; + height: 70px; } .wy-side-nav-search { background-color: var(--navbar-background-color); + color: var(--navbar-level-1-color); + margin-right: 8px; } .wy-side-nav-search.fixed { @@ -834,7 +1320,22 @@ kbd.compound > .kbd, opacity: 0.55; } -/* Navigation bar */ +/* Version branch label below the logo */ +.wy-side-nav-search > div.version { + color: var(--navbar-dimmed-color); + font-size: 14px; + opacity: 0.9; +} + +/* Navigational top bar (mobile only) */ + +.wy-nav-top, +.wy-nav-top a { + background-color: var(--navbar-background-color); + color: var(--navbar-level-1-color); +} + +/* Navigational sidebar */ .wy-nav-side { background-color: var(--navbar-background-color); @@ -855,95 +1356,132 @@ kbd.compound > .kbd, letter-spacing: 0.75px; } -/* Mobile navigation */ +/* Default styling of navigation items */ -.wy-nav-top, -.wy-nav-top a { +.wy-menu-vertical li { background-color: var(--navbar-background-color); +} +.wy-menu-vertical li.current { + background-color: var(--navbar-current-background-color); +} + +.wy-menu-vertical li > a { color: var(--navbar-level-1-color); + font-size: 92%; + line-height: 20px; + padding: .4045em 1.618em; } - -/* Version branch label below the logo */ -.wy-side-nav-search > div.version { - color: var(--navbar-level-3-color); - opacity: 0.9; -} - -/* First level of navigation items */ - -.wy-menu-vertical a { - color: var(--navbar-level-1-color); -} - -.wy-menu-vertical a:hover { +.wy-menu-vertical li > a:hover { background-color: var(--navbar-background-color-hover); color: var(--navbar-level-1-color); } - -.wy-menu-vertical a:active { +.wy-menu-vertical li > a:active { background-color: var(--navbar-background-color-active); } -.wy-menu-vertical li.toctree-l1.current > a { - border: none; -} - -.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a button.toctree-expand, -.wy-menu-vertical li.toctree-l1 a button.toctree-expand, -.wy-menu-vertical li.toctree-l2 a button.toctree-expand { - color: var(--navbar-level-3-color); +.wy-menu-vertical li > a button.toctree-expand { + color: var(--navbar-expand-base-color) !important; opacity: 0.9; margin-right: 8px; -} -.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:hover button.toctree-expand, -.wy-menu-vertical li.toctree-l1 a:hover button.toctree-expand, -.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand { - color: var(--navbar-level-2-color); + /* Make the expand icon a bit easier to hit. */ + position: relative; + width: 12px; + min-width: 12px; /* Forces the size to stay this way in the flexbox model. */ + height: 18px; +} +.wy-menu-vertical li.current > a button.toctree-expand { + color: var(--navbar-current-color) !important; +} +.wy-menu-vertical li > a:hover button.toctree-expand { + color: var(--navbar-expand-hover-color) !important; + opacity: 1; +} +.wy-menu-vertical li > a:active button.toctree-expand { + color: var(--navbar-expand-active-color) !important; opacity: 1; } -.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:active button.toctree-expand, -.wy-menu-vertical li.toctree-l1 a:active button.toctree-expand, -.wy-menu-vertical li.toctree-l2 a:active button.toctree-expand { - color: var(--navbar-level-1-color); - opacity: 1; +/* Make the expand icon a bit easier to hit. */ +.wy-menu-vertical li > a button.toctree-expand:before { + position: absolute; + top: -2px; + left: -6px; + width: 24px; + height: 24px; + padding: 6px; } -/* Second (and higher) levels of navigation items */ +.wy-menu-vertical li.current > a, +.wy-menu-vertical li.toctree-l2.current > a { + background-color: var(--navbar-current-background-color-hover); + border-bottom: 2px solid var(--navbar-current-background-color); + color: var(--navbar-current-color); + font-weight: 600; -.wy-menu-vertical li.current a { /* Make long words always display on a single line, keep wrapping for multiple words */ /* This fixes the class reference titles' display with very long class names */ display: flex; } - -.wy-menu-vertical li.current a, -.wy-menu-vertical li.toctree-l2.current > a, -.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a, -.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a { - background-color: var(--navbar-current-background-color); - color: var(--navbar-level-2-color); - border-color: var(--navbar-current-background-color); -} - -.wy-menu-vertical li.current a:hover, -.wy-menu-vertical li.toctree-l2.current > a:hover, -.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover, -.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:hover { +.wy-menu-vertical li.current > a:hover, +.wy-menu-vertical li.toctree-l2.current > a:hover { background-color: var(--navbar-current-background-color-hover); } - -.wy-menu-vertical li.current a:active, -.wy-menu-vertical li.toctree-l2.current > a:active, -.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:active, -.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:active { +.wy-menu-vertical li.current > a:active, +.wy-menu-vertical li.toctree-l2.current > a:active { background-color: var(--navbar-current-background-color-active); } -.wy-menu-vertical a { - /* This overrides 8px margin added in other multi-selector rules */ - margin-right: 0; +/* Slightly adjust first level items. */ +.wy-menu-vertical li.toctree-l1 > a, +.wy-menu-vertical li.toctree-l1.current > a { + border: none; + padding: .4045em 1.918em; +} +.wy-menu-vertical li.toctree-l1.current > a { + border-bottom: 2px solid var(--navbar-current-background-color); +} + +/* Override styling for children of the current item. */ +.wy-menu-vertical li.current li > a, +.wy-menu-vertical li.toctree-l2.current li > a, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a, +.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a { + background-color: var(--navbar-current-background-color); + border: none; + border-bottom: 2px solid var(--navbar-current-background-color); + color: var(--navbar-level-2-color); +} +.wy-menu-vertical li.current li > a:hover, +.wy-menu-vertical li.toctree-l2.current li > a:hover, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover, +.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a:hover { + background-color: var(--navbar-current-background-color-hover); +} +.wy-menu-vertical li.current li > a:active, +.wy-menu-vertical li.toctree-l2.current li > a:active, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:active, +.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a:active { + background-color: var(--navbar-current-background-color-active); +} + +.wy-menu-vertical li.toctree-l2.current li > a, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a, +.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a { + color: var(--navbar-level-3-color); +} +.wy-menu-vertical li.toctree-l2.current li > a:hover, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover, +.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a:hover { + color: var(--navbar-level-1-color); +} + +.wy-menu-vertical li.current li.current > a, +.wy-menu-vertical li.toctree-l2.current li.current > a, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current > a, +.wy-menu-vertical li.toctree-l2.current li.toctree-l4.current > a { + color: var(--navbar-current-color); + font-weight: 600; } /* Banner panel in sidebar */ @@ -951,12 +1489,27 @@ kbd.compound > .kbd, position: fixed; } -/* Version selector (only visible on Read the Docs) */ +/* Read the Docs flyout panel, with language and version selectors. */ .rst-versions { background-color: var(--navbar-current-background-color); } +.rst-versions.shift-up { + overflow: visible; +} + +.rst-versions.shift-up:before { + content: ''; + position: absolute; + left: 0; + top: -8px; + width: 100%; + height: 8px; + pointer-events: none; + background: linear-gradient(transparent, hsla(0, 0%, 0%, 0.2)); +} + @media only screen and (min-width: 769px) { .rst-versions { /* Required to center the page on wide displays */ @@ -971,36 +1524,67 @@ kbd.compound > .kbd, color: var(--navbar-level-1-color); } -.rst-versions .rst-other-versions small { - color: var(--navbar-level-3-color); -} - -.rst-versions .rst-other-versions dd a:hover { - text-decoration: underline; +.rst-versions .rst-current-version, +.rst-versions .rst-other-versions { + padding: 12px 14px; } .rst-versions .rst-other-versions { color: var(--navbar-heading-color); } -.rst-versions .rst-current-version { - background-color: var(--navbar-current-background-color); +.rst-versions .rst-other-versions dl + dl { + margin-top: 4px; } +.rst-versions .rst-other-versions hr { + border-color: var(--hr-color); + margin: 12px 0; +} + +.rst-versions .rst-other-versions small { + color: var(--navbar-dimmed-color); +} + +.rst-versions .rst-other-versions dd a:hover { + text-decoration: underline; +} + +/* This will hide every segment of the panel, starting with the 4th. */ +.rst-versions .rst-other-versions .injected dl:nth-child(n+4) { + display: none; +} + +.rst-versions .rst-current-version { + background-color: var(--navbar-current-background-color); + border-bottom: 1px solid var(--hr-color); +} .rst-versions .rst-current-version:hover { background-color: var(--navbar-current-background-color-hover); } - .rst-versions .rst-current-version:active { background-color: var(--navbar-current-background-color-active); } -/* Hide the obnoxious automatic highlight in search results */ +.rst-versions .rst-current-version .fa { + line-height: 20px; +} + +/* Hide the obnoxious automatic highlight from the search context. */ .rst-content .highlighted { background-color: transparent; + box-shadow: none; font-weight: inherit; padding: 0; } +/* Still slightly highlight matched parts on the dedicated search results page. */ +.rst-content #search-results .highlighted { + background-color: var(--search-highlighted-color); + border-radius: 2px; + color: var(--body-color); + font-weight: 600; + padding: 0 3px; +} /* Allows the scrollbar to be shown in the sidebar */ @media only screen and (min-width: 769px) { @@ -1017,6 +1601,7 @@ kbd.compound > .kbd, overflow-y: auto; overflow-x: hidden; max-height: calc(100% - 348px); + padding-bottom: 24px; } @media screen and (max-width: 768px) { .wy-nav-side { @@ -1048,3 +1633,44 @@ kbd.compound > .kbd, .wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb:active { background-color: var(--navbar-scrollbar-active-color); } + +/* Allows to add a green or red bar to code blocks for "good"/"bad" code examples. */ +.code-example-good div.highlight { + border-left-color: var(--code-example-good-color); + border-left-width: 8px; +} +.code-example-bad div.highlight { + border-left-color: var(--code-example-bad-color); + border-left-width: 8px; +} + +/* Togglable sidebar sections. */ +.wy-menu-vertical p.caption { + cursor: pointer; +} +.wy-menu-vertical p.caption.active { + background-color: var(--navbar-category-active-color); +} +.wy-menu-vertical p.caption:hover { + background-color: var(--navbar-background-color-hover); +} + +.wy-menu-vertical p.caption.active .caption-text:before { + transform: rotate(90deg); +} +.wy-menu-vertical p.caption .caption-text:before { + content: "❯"; + display: inline-block; + margin-left: -4px; + transition: transform 0.2s; + width: 16px; + height: 32px; + transform-origin: 2px 16px; +} + +.wy-menu-vertical p.caption + ul { + display: none; +} +.wy-menu-vertical p.caption + ul.active { + display: block; +} diff --git a/_static/css/dev.css b/_static/css/dev.css new file mode 100644 index 000000000..87ad1d310 --- /dev/null +++ b/_static/css/dev.css @@ -0,0 +1,8 @@ +/** + * CSS tweaks that are only added outside ReadTheDocs (i.e. when built locally). + */ + +/* Re-add default red boxes around Pygments errors */ +.highlight .err { + border: 1px solid #FF0000; +} diff --git a/_static/css/fonts/JetBrainsMono-Bold.woff2 b/_static/css/fonts/JetBrainsMono-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..023512c051ea83dc4b5b147f4a211e1869d53ad5 GIT binary patch literal 71180 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%0DiFJsm-;1AfyF?s*v3;=2H4im8{W-_-VVsf-; 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 YVRMAb83ue;i z|4H3F>ovhzUNgS`+WmzPhJGF+ohli0&JN!4rSm)poz)7F4@>6{|ACxb{XJ!B3boGU z-tzJGWgPc_cJ8xmJ$O8)!$aU{$zMHIjC8(QwP=XR02Un?DSnBB#C6;#&{QqQXF zF%PfjTEZT5`*~2y(dT~>t51Zzu{Lq}{M^r@-(qk^uE}i`spx{{#Cul%+yqhUHQV&FzQ{#+3lv15=v2F*frPnjeM$+@$% za+4`aeCQu+S~-rpk*KmSvS+O@=c=UYeG(l+eS>IqBP*pf4qjmZs8(x^{ZsW<0=##o~!)_)!D{TFJdoM1klV z1ZvGdP8P2MCZ;7sUdyj64$#xugX@>TdB$KN*JRt<)H6zHE+VYCDvDxjnrwv0Cs&4K z%&kIIy#>)`X+$BHP{uk-D~~dlMegkBm5}O1r+xuu`9T6(s8s`rk*fkHmtfnOS|hXA zp;z24UG)*nLBnEGASbC;Hmb{9?sc6;wqDYREH5(S391eDJcNlOy$~FJYi$KhJzn~} zqsvpit;v{g)DDYNvaj?}s z@Rw3FmyP0@@T@dM)MSw_rPwEQh-qTTPW{$AfJhY8shr9b{vnab$Y~7M5#yL!@ew{n z21BMi)Ew{V;Q2=35d*wDL~<`J!t}$?=-`K*d8pW-Uu5A#M$qs*#QdhAh70(e5;AYB z`QtbdyjDE(>G2fDs2+V2ngRckNSoB89s0$Cw_ZfwG|Yv$F~h$}-sjR>I!@cn>**|E z4;rNc5UOU{90;jd%W4%4tD=$cC%$~S^%8*(o*U?&ilffEOHfDM4a~mfr-1rt_A^UQ z3X8xuLN$U^C-4|+T(gad6+$I1{~2E&^|0HAy}mep*}p7CC~zRus~Zs?L8yBl1TgP= zAoV|yYa%i-^=LjH(*KqQkh3uFmFZIOT=$M9K_p9h<~dqQ@2(^CS8QdSN?|24PY}S| WOYE&R^8P1|W&fi1R)ClX000114L)K3 literal 0 HcmV?d00001 diff --git a/_static/css/fonts/JetBrainsMono-Medium.woff2 b/_static/css/fonts/JetBrainsMono-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..484c9e64152c80a4656076ac3292a178636750f6 GIT binary patch literal 70480 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 literal 0 HcmV?d00001 diff --git a/_static/css/fonts/JetBrainsMono-Regular.woff2 b/_static/css/fonts/JetBrainsMono-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8c862e334da78ca6f92bf0f1939cce3a60b8c859 GIT binary patch literal 69440 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�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�I2`;RltI!`q!2)h)sND4Z8MZO78y*3 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'); - $menu.append($menuPadding); - } - - if (mediaQuery.matches) { - // Entering the "desktop" state. - - // The main scroll event handler. - // Executed as the page is scrolled and once immediatelly as the page enters this state. - const handleMainScroll = (currentScroll) => { - if (currentScroll >= scrollTopPixels) { - // After the page is scrolled below the threshold, we fix everything in place. - $search.css('margin-top', `-${scrollTopPixels}px`); - $menu.css('margin-top', `${menuTopMargin}px`); - $menu.css('max-height', `calc(100% - ${menuHeightOffset_fixed}px)`); - } - else { - // Between the top of the page and the threshold we calculate intermediate values - // to guarantee a smooth transition. - $search.css('margin-top', `-${currentScroll}px`); - $menu.css('margin-top', `${menuTopMargin + (scrollTopPixels - currentScroll)}px`); - - if (currentScroll > 0) { - const scrolledPercent = (scrollTopPixels - currentScroll) / scrollTopPixels; - const offsetValue = menuHeightOffset_fixed + menuHeightOffset_diff * scrolledPercent; - $menu.css('max-height', `calc(100% - ${offsetValue}px)`); - } else { - $menu.css('max-height', `calc(100% - ${menuHeightOffset_default}px)`); - } - } - }; - - // The sidebar scroll event handler. - // Executed as the sidebar is scrolled as well as after the main scroll. This is needed - // because the main scroll can affect the scrollable area of the sidebar. - const handleSidebarScroll = () => { - const menuElement = $menu.get(0); - const menuScrollTop = $menu.scrollTop(); - const menuScrollBottom = menuElement.scrollHeight - (menuScrollTop + menuElement.offsetHeight); - - // As the navigation is scrolled we add a shadow to the top bar hanging over it. - if (menuScrollTop > 0) { - $search.addClass('fixed-and-scrolled'); - } else { - $search.removeClass('fixed-and-scrolled'); - } - - // Near the bottom we start moving the sidebar banner into view. - if (menuScrollBottom < ethicalOffsetBottom) { - $ethical.css('display', 'block'); - $ethical.css('margin-top', `-${ethicalOffsetBottom - menuScrollBottom}px`); - } else { - $ethical.css('display', 'none'); - $ethical.css('margin-top', '0px'); - } - }; - - $search.addClass('fixed'); - $ethical.addClass('fixed'); - - // Adjust the inner height of navigation so that the banner can be overlaid there later. - const ethicalOffsetBottom = $ethical.height() || 0; - if (ethicalOffsetBottom) { - $menuPadding.css('height', `${ethicalOffsetBottom}px`); - } else { - $menuPadding.css('height', `0px`); + // This padding is needed to correctly adjust the height of the scrollable area in the sidebar. + // It has to have the same height as the ethical block, if there is one. + let $menuPadding = $menu.children('.wy-menu-ethical-padding'); + if ($menuPadding.length == 0) { + $menuPadding = $('
'); + $menu.append($menuPadding); } - $window.scroll(function() { + if (mediaQuery.matches) { + // Entering the "desktop" state. + + // The main scroll event handler. + // Executed as the page is scrolled and once immediately as the page enters this state. + const handleMainScroll = (currentScroll) => { + if (currentScroll >= scrollTopPixels) { + // After the page is scrolled below the threshold, we fix everything in place. + $search.css('margin-top', `-${scrollTopPixels}px`); + $menu.css('margin-top', `${menuTopMargin}px`); + $menu.css('max-height', `calc(100% - ${menuHeightOffset_fixed}px)`); + } + else { + // Between the top of the page and the threshold we calculate intermediate values + // to guarantee a smooth transition. + $search.css('margin-top', `-${currentScroll}px`); + $menu.css('margin-top', `${menuTopMargin + (scrollTopPixels - currentScroll)}px`); + + if (currentScroll > 0) { + const scrolledPercent = (scrollTopPixels - currentScroll) / scrollTopPixels; + const offsetValue = menuHeightOffset_fixed + menuHeightOffset_diff * scrolledPercent; + $menu.css('max-height', `calc(100% - ${offsetValue}px)`); + } else { + $menu.css('max-height', `calc(100% - ${menuHeightOffset_default}px)`); + } + } + }; + + // The sidebar scroll event handler. + // Executed as the sidebar is scrolled as well as after the main scroll. This is needed + // because the main scroll can affect the scrollable area of the sidebar. + const handleSidebarScroll = () => { + const menuElement = $menu.get(0); + const menuScrollTop = $menu.scrollTop(); + const menuScrollBottom = menuElement.scrollHeight - (menuScrollTop + menuElement.offsetHeight); + + // As the navigation is scrolled we add a shadow to the top bar hanging over it. + if (menuScrollTop > 0) { + $search.addClass('fixed-and-scrolled'); + } else { + $search.removeClass('fixed-and-scrolled'); + } + + // Near the bottom we start moving the sidebar banner into view. + if (menuScrollBottom < ethicalOffsetBottom) { + $ethical.css('display', 'block'); + $ethical.css('margin-top', `-${ethicalOffsetBottom - menuScrollBottom}px`); + } else { + $ethical.css('display', 'none'); + $ethical.css('margin-top', '0px'); + } + }; + + $search.addClass('fixed'); + $ethical.addClass('fixed'); + + // Adjust the inner height of navigation so that the banner can be overlaid there later. + const ethicalOffsetBottom = $ethical.height() || 0; + if (ethicalOffsetBottom) { + $menuPadding.css('height', `${ethicalOffsetBottom}px`); + } else { + $menuPadding.css('height', `0px`); + } + + $window.scroll(function() { + handleMainScroll(window.scrollY); + handleSidebarScroll(); + }); + + $menu.scroll(function() { + handleSidebarScroll(); + }); + handleMainScroll(window.scrollY); handleSidebarScroll(); - }); + } else { + // Entering the "mobile" state. - $menu.scroll(function() { - handleSidebarScroll(); - }); + $window.unbind('scroll'); + $menu.unbind('scroll'); - handleMainScroll(window.scrollY); - handleSidebarScroll(); - } else { - // Entering the "mobile" state. + $search.removeClass('fixed'); + $ethical.removeClass('fixed'); - $window.unbind('scroll'); - $menu.unbind('scroll'); - - $search.removeClass('fixed'); - $ethical.removeClass('fixed'); - - $search.css('margin-top', `0px`); - $menu.css('margin-top', `0px`); - $menu.css('max-height', 'initial'); - $menuPadding.css('height', `0px`); - $ethical.css('margin-top', '0px'); - $ethical.css('display', 'block'); - } - }; -})(); - -// Subscribe to DOM changes in the sidebar container, because there is a -// banner that gets added at a later point, that we might not catch otherwise. -const registerSidebarObserver = (function(){ - return function(callback) { - const sidebarContainer = document.querySelector('.wy-side-scroll'); - - let sidebarEthical = null; - const registerEthicalObserver = () => { - if (sidebarEthical) { - // Do it only once. - return; + $search.css('margin-top', `0px`); + $menu.css('margin-top', `0px`); + $menu.css('max-height', 'initial'); + $menuPadding.css('height', `0px`); + $ethical.css('margin-top', '0px'); + $ethical.css('display', 'block'); } + }; + })(); - sidebarEthical = sidebarContainer.querySelector('.ethical-rtd'); - if (!sidebarEthical) { - // Do it only after we have the element there. - return; - } + // Subscribe to DOM changes in the sidebar container, because there is a + // banner that gets added at a later point, that we might not catch otherwise. + const registerSidebarObserver = (function(){ + return function(callback) { + const sidebarContainer = document.querySelector('.wy-side-scroll'); - // This observer watches over the ethical block in sidebar, and all of its subtree. - const ethicalObserverConfig = { childList: true, subtree: true }; - const ethicalObserverCallback = (mutationsList, observer) => { + let sidebarEthical = null; + const registerEthicalObserver = () => { + if (sidebarEthical) { + // Do it only once. + return; + } + + sidebarEthical = sidebarContainer.querySelector('.ethical-rtd'); + if (!sidebarEthical) { + // Do it only after we have the element there. + return; + } + + // This observer watches over the ethical block in sidebar, and all of its subtree. + const ethicalObserverConfig = { childList: true, subtree: true }; + const ethicalObserverCallback = (mutationsList, observer) => { + for (let mutation of mutationsList) { + if (mutation.type !== 'childList') { + continue; + } + + callback(); + } + }; + + const ethicalObserver = new MutationObserver(ethicalObserverCallback); + ethicalObserver.observe(sidebarEthical, ethicalObserverConfig); + }; + registerEthicalObserver(); + + // This observer watches over direct children of the main sidebar container. + const observerConfig = { childList: true }; + const observerCallback = (mutationsList, observer) => { for (let mutation of mutationsList) { if (mutation.type !== 'childList') { continue; } callback(); + registerEthicalObserver(); } }; - const ethicalObserver = new MutationObserver(ethicalObserverCallback); - ethicalObserver.observe(sidebarEthical, ethicalObserverConfig); - }; - registerEthicalObserver(); + const observer = new MutationObserver(observerCallback); + observer.observe(sidebarContainer, observerConfig); - // This observer watches over direct children of the main sidebar container. - const observerConfig = { childList: true }; - const observerCallback = (mutationsList, observer) => { - for (let mutation of mutationsList) { - if (mutation.type !== 'childList') { - continue; + // Default TOC tree has links that immediately navigate to the selected page. Our + // theme adds an extra button to fold and unfold the tree without navigating away. + // But that means that the buttons are added after the initial load, so we need to + // improvise to detect clicks on these buttons. + const scrollElement = document.querySelector('.wy-menu-vertical'); + const registerLinkHandler = (linkChildren) => { + linkChildren.forEach(it => { + if (it.nodeType === Node.ELEMENT_NODE && it.classList.contains('toctree-expand')) { + it.addEventListener('click', () => { + // Toggling a different item will close the currently opened one, + // which may shift the clicked item out of the view. We correct for that. + const menuItem = it.parentNode; + const baseScrollOffset = scrollElement.scrollTop + scrollElement.offsetTop; + const maxScrollOffset = baseScrollOffset + scrollElement.offsetHeight; + + if (menuItem.offsetTop < baseScrollOffset || menuItem.offsetTop > maxScrollOffset) { + menuItem.scrollIntoView(); + } + + callback(); + }); + } + }); + } + + const navigationSections = document.querySelectorAll('.wy-menu-vertical ul'); + navigationSections.forEach(it => { + if (it.previousSibling == null || typeof it.previousSibling === 'undefined' || it.previousSibling.tagName != 'A') { + return; } - callback(); - registerEthicalObserver(); - } + const navigationLink = it.previousSibling; + registerLinkHandler(navigationLink.childNodes); + + const linkObserverConfig = { childList: true }; + const linkObserverCallback = (mutationsList, observer) => { + for (let mutation of mutationsList) { + registerLinkHandler(mutation.addedNodes); + } + }; + + const linkObserver = new MutationObserver(linkObserverCallback); + linkObserver.observe(navigationLink, linkObserverConfig); + }); }; + })(); - const observer = new MutationObserver(observerCallback); - observer.observe(sidebarContainer, observerConfig); - }; -})(); + $(document).ready(() => { + // Remove the search match highlights from the page, and adjust the URL in the + // navigation history. + const url = new URL(location.href); + if (url.searchParams.has('highlight')) { + Documentation.hideSearchWords(); + } -$(document).ready(() => { - const mediaQuery = window.matchMedia('only screen and (min-width: 769px)'); + // Initialize handlers for page scrolling and our custom sidebar. + const mediaQuery = window.matchMedia('only screen and (min-width: 769px)'); - registerOnScrollEvent(mediaQuery); - mediaQuery.addListener(registerOnScrollEvent); - - registerSidebarObserver(() => { registerOnScrollEvent(mediaQuery); + mediaQuery.addListener(registerOnScrollEvent); + + registerSidebarObserver(() => { + registerOnScrollEvent(mediaQuery); + }); + + // Add line-break suggestions to the sidebar navigation items in the class reference section. + // + // Some class reference pages have very long PascalCase names, such as + // VisualShaderNodeCurveXYZTexture + // Those create issues for our layout, as we can neither make them wrap with CSS without + // breaking normal article titles, nor is it good to have them overflow their containers. + // So we use a tag to insert mid-word suggestions for appropriate splits, so the browser + // knows that it's okay to split it like + // Visual Shader Node Curve XYZTexture + // and add a new line at an opportune moment. + const classReferenceLinks = document.querySelectorAll('.wy-menu-vertical > ul:last-of-type .reference.internal'); + for (const linkItem of classReferenceLinks) { + let textNode = null; + linkItem.childNodes.forEach(it => { + if (it.nodeType === Node.TEXT_NODE) { + // If this is a text node and if it needs to be updated, store a reference. + let text = it.textContent; + if (!(text.includes(" ") || text.length < 10)) { + textNode = it; + } + } + }); + + if (textNode != null) { + let text = textNode.textContent; + // Add suggested line-breaks and replace the original text. + // The regex looks for a lowercase letter followed by a number or an uppercase + // letter. We avoid splitting at the last character in the name, though. + text = text.replace(/([a-z])([A-Z0-9](?!$))/gm, '$1$2'); + + linkItem.removeChild(textNode); + linkItem.insertAdjacentHTML('beforeend', text); + } + } + + // See `godot_is_latest` in conf.py + const isLatest = document.querySelector('meta[name=doc_is_latest]').content.toLowerCase() === 'true'; + if (isLatest) { + // Add a compatibility notice using JavaScript so it doesn't end up in the + // automatically generated `meta description` tag. + + const baseUrl = [location.protocol, '//', location.host, location.pathname].join(''); + // These lines only work as expected in the production environment, can't test this locally. + const fallbackUrl = baseUrl.replace('/latest/', '/stable/'); + const homeUrl = baseUrl.split('/latest/')[0] + '/stable/'; + const searchUrl = homeUrl + 'search.html?q='; + + const noticeLink = document.querySelector('.latest-notice-link'); + + // Insert a placeholder to display as we're making a request. + noticeLink.innerHTML = ` + Checking the
stable version + of the documentation... + `; + + // Make a HEAD request to the possible stable URL to check if the page exists. + fetch(fallbackUrl, { method: 'HEAD' }) + .then((res) => { + // We only check the HTTP status, which should tell us if the link is valid or not. + if (res.status === 200) { + noticeLink.innerHTML = ` + See the stable version + of this documentation page instead. + `; + } else { + // Err, just to fallthrough to catch. + throw Error('Bad request'); + } + }) + .catch((err) => { + let message = ` + This page does not exist in the stable version + of the documentation. + `; + + // Also suggest a search query using the page's title. It should work with translations as well. + // Note that we can't use the title tag as it has a permanent suffix. OG title doesn't, though. + const titleMeta = document.querySelector('meta[property="og:title"]'); + if (typeof titleMeta !== 'undefined') { + const pageTitle = titleMeta.getAttribute('content'); + message += ` + You can try searching for "${pageTitle}" instead. + `; + } + + noticeLink.innerHTML = message; + }); + } + + // Load instant.page to prefetch pages upon hovering. This makes navigation feel + // snappier. The script is dynamically appended as Read the Docs doesn't have + // a way to add scripts with a "module" attribute. + const instantPageScript = document.createElement('script'); + instantPageScript.toggleAttribute('module'); + /*! instant.page v5.1.0 - (C) 2019-2020 Alexandre Dieulot - https://instant.page/license */ + instantPageScript.innerText = 'let t,e;const n=new Set,o=document.createElement("link"),i=o.relList&&o.relList.supports&&o.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype,s="instantAllowQueryString"in document.body.dataset,a="instantAllowExternalLinks"in document.body.dataset,r="instantWhitelist"in document.body.dataset,c="instantMousedownShortcut"in document.body.dataset,d=1111;let l=65,u=!1,f=!1,m=!1;if("instantIntensity"in document.body.dataset){const t=document.body.dataset.instantIntensity;if("mousedown"==t.substr(0,"mousedown".length))u=!0,"mousedown-only"==t&&(f=!0);else if("viewport"==t.substr(0,"viewport".length))navigator.connection&&(navigator.connection.saveData||navigator.connection.effectiveType&&navigator.connection.effectiveType.includes("2g"))||("viewport"==t?document.documentElement.clientWidth*document.documentElement.clientHeight<45e4&&(m=!0):"viewport-all"==t&&(m=!0));else{const e=parseInt(t);isNaN(e)||(l=e)}}if(i){const n={capture:!0,passive:!0};if(f||document.addEventListener("touchstart",function(t){e=performance.now();const n=t.target.closest("a");if(!h(n))return;v(n.href)},n),u?c||document.addEventListener("mousedown",function(t){const e=t.target.closest("a");if(!h(e))return;v(e.href)},n):document.addEventListener("mouseover",function(n){if(performance.now()-e{v(o.href),t=void 0},l)},n),c&&document.addEventListener("mousedown",function(t){if(performance.now()-e1||t.metaKey||t.ctrlKey)return;if(!n)return;n.addEventListener("click",function(t){1337!=t.detail&&t.preventDefault()},{capture:!0,passive:!1,once:!0});const o=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});n.dispatchEvent(o)},n),m){let t;(t=window.requestIdleCallback?t=>{requestIdleCallback(t,{timeout:1500})}:t=>{t()})(()=>{const t=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){const n=e.target;t.unobserve(n),v(n.href)}})});document.querySelectorAll("a").forEach(e=>{h(e)&&t.observe(e)})})}}function p(e){e.relatedTarget&&e.target.closest("a")==e.relatedTarget.closest("a")||t&&(clearTimeout(t),t=void 0)}function h(t){if(t&&t.href&&(!r||"instant"in t.dataset)&&(a||t.origin==location.origin||"instant"in t.dataset)&&["http:","https:"].includes(t.protocol)&&("http:"!=t.protocol||"https:"!=location.protocol)&&(s||!t.search||"instant"in t.dataset)&&!(t.hash&&t.pathname+t.search==location.pathname+location.search||"noInstant"in t.dataset))return!0}function v(t){if(n.has(t))return;const e=document.createElement("link");e.rel="prefetch",e.href=t,document.head.appendChild(e),n.add(t)}'; + document.head.appendChild(instantPageScript); + + // Make sections in the sidebar togglable. + let hasCurrent = false; + let menuHeaders = document.querySelectorAll('.wy-menu-vertical .caption[role=heading]'); + menuHeaders.forEach(it => { + let connectedMenu = it.nextElementSibling; + + // Enable toggling. + it.addEventListener('click', () => { + if (connectedMenu.classList.contains('active')) { + connectedMenu.classList.remove('active'); + it.classList.remove('active'); + } else { + connectedMenu.classList.add('active'); + it.classList.add('active'); + } + + // Hide other sections. + menuHeaders.forEach(ot => { + if (ot !== it && ot.classList.contains('active')) { + ot.nextElementSibling.classList.remove('active'); + ot.classList.remove('active'); + } + }); + + registerOnScrollEvent(mediaQuery); + }, true); + + // Set the default state, expand our current section. + if (connectedMenu.classList.contains('current')) { + connectedMenu.classList.add('active'); + it.classList.add('active'); + + hasCurrent = true; + } + }); + + // Unfold the first (general information) section on the home page. + if (!hasCurrent && menuHeaders.length > 0) { + menuHeaders[0].classList.add('active'); + menuHeaders[0].nextElementSibling.classList.add('active'); + + registerOnScrollEvent(mediaQuery); + } }); - // Load instant.page to prefetch pages upon hovering. This makes navigation feel - // snappier. The script is dynamically appended as Read the Docs doesn't have - // a way to add scripts with a "module" attribute. - const instantPageScript = document.createElement('script'); - instantPageScript.toggleAttribute('module'); - /*! instant.page v5.1.0 - (C) 2019-2020 Alexandre Dieulot - https://instant.page/license */ - instantPageScript.innerText = 'let t,e;const n=new Set,o=document.createElement("link"),i=o.relList&&o.relList.supports&&o.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype,s="instantAllowQueryString"in document.body.dataset,a="instantAllowExternalLinks"in document.body.dataset,r="instantWhitelist"in document.body.dataset,c="instantMousedownShortcut"in document.body.dataset,d=1111;let l=65,u=!1,f=!1,m=!1;if("instantIntensity"in document.body.dataset){const t=document.body.dataset.instantIntensity;if("mousedown"==t.substr(0,"mousedown".length))u=!0,"mousedown-only"==t&&(f=!0);else if("viewport"==t.substr(0,"viewport".length))navigator.connection&&(navigator.connection.saveData||navigator.connection.effectiveType&&navigator.connection.effectiveType.includes("2g"))||("viewport"==t?document.documentElement.clientWidth*document.documentElement.clientHeight<45e4&&(m=!0):"viewport-all"==t&&(m=!0));else{const e=parseInt(t);isNaN(e)||(l=e)}}if(i){const n={capture:!0,passive:!0};if(f||document.addEventListener("touchstart",function(t){e=performance.now();const n=t.target.closest("a");if(!h(n))return;v(n.href)},n),u?c||document.addEventListener("mousedown",function(t){const e=t.target.closest("a");if(!h(e))return;v(e.href)},n):document.addEventListener("mouseover",function(n){if(performance.now()-e{v(o.href),t=void 0},l)},n),c&&document.addEventListener("mousedown",function(t){if(performance.now()-e1||t.metaKey||t.ctrlKey)return;if(!n)return;n.addEventListener("click",function(t){1337!=t.detail&&t.preventDefault()},{capture:!0,passive:!1,once:!0});const o=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});n.dispatchEvent(o)},n),m){let t;(t=window.requestIdleCallback?t=>{requestIdleCallback(t,{timeout:1500})}:t=>{t()})(()=>{const t=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){const n=e.target;t.unobserve(n),v(n.href)}})});document.querySelectorAll("a").forEach(e=>{h(e)&&t.observe(e)})})}}function p(e){e.relatedTarget&&e.target.closest("a")==e.relatedTarget.closest("a")||t&&(clearTimeout(t),t=void 0)}function h(t){if(t&&t.href&&(!r||"instant"in t.dataset)&&(a||t.origin==location.origin||"instant"in t.dataset)&&["http:","https:"].includes(t.protocol)&&("http:"!=t.protocol||"https:"!=location.protocol)&&(s||!t.search||"instant"in t.dataset)&&!(t.hash&&t.pathname+t.search==location.pathname+location.search||"noInstant"in t.dataset))return!0}function v(t){if(n.has(t))return;const e=document.createElement("link");e.rel="prefetch",e.href=t,document.head.appendChild(e),n.add(t)}'; - document.head.appendChild(instantPageScript); -}); + // Override the default implementation from doctools.js to avoid this behavior. + Documentation.highlightSearchWords = function() { + // Nope. + } diff --git a/_templates/breadcrumbs.html b/_templates/breadcrumbs.html index 0a60a7a1f..d7e3dfd38 100644 --- a/_templates/breadcrumbs.html +++ b/_templates/breadcrumbs.html @@ -1,24 +1,40 @@ {%- extends "sphinx_rtd_theme/breadcrumbs.html" %} +{% block breadcrumbs %} +
  • +
    + {{ godot_docs_title | replace("%s", godot_version) }} +
    +
      + {{ super() }} +
    +
  • +{% endblock %} + {% block breadcrumbs_aside %} {% if not meta or meta.get('github_url') != 'hide' %} -{{ super() }} +
  • +
      + {{ super() }} +
    - - - Learn how to contribute! - + + @media screen and (max-width: 480px) { + .godot-edit-guidelines { + display: none; + } + } + + + Learn how to contribute! + +
  • {% endif %} {% endblock %} diff --git a/_templates/layout.html b/_templates/layout.html index fdec13a7b..268c4ca38 100644 --- a/_templates/layout.html +++ b/_templates/layout.html @@ -1,4 +1,15 @@ {% extends "!layout.html" -%} +{# Refer to https://github.com/readthedocs/sphinx_rtd_theme/blob/master/sphinx_rtd_theme/layout.html #} + +{% block htmltitle -%} +{{ godot_title_prefix }}{{ title|striptags|e }}{{ titlesuffix }} +{% endblock -%} + +{% block extrahead -%} + + +{% endblock -%} + {% block linktags -%} {% if godot_inject_language_links -%} @@ -14,6 +25,52 @@ {{ super() }} {% endblock -%} -{% block htmltitle -%} -{{ godot_title_prefix }}{{ title|striptags|e }}{{ titlesuffix }} -{% endblock -%} +{%- block document %} +
    + {% if godot_is_latest or godot_show_article_status %} +
    + {% if godot_is_latest %} +
    +

    Attention: Here be dragons

    +

    + This is the latest + (unstable) version of this documentation, which may document features + not available in or compatible with released stable versions of Godot. +

    + +
    + {% endif %} + + {% if godot_show_article_status and not godot_is_latest %} +
    + {% if meta and meta.get('article_outdated') == 'True' %} +

    Work in progress

    +

    + The content of this page was not yet updated for Godot + {{ godot_version }} + and may be outdated. If you know how to improve this page or you can confirm + that it's up to date, feel free to open a pull request. +

    + {% else %} +

    Up to date

    +

    + This page is up to date for Godot {{ godot_version }}. + If you still find outdated information, please open an issue. +

    + {% endif %} +
    + {% endif %} +
    + {% endif %} + + {% block body %}{% endblock %} +
    +{%- if self.comments()|trim %} +
    + {%- block comments %}{% endblock %} +
    +{%- endif%} + +{%- endblock %} diff --git a/_templates/versions.html b/_templates/versions.html new file mode 100644 index 000000000..e46ca819a --- /dev/null +++ b/_templates/versions.html @@ -0,0 +1,60 @@ +{# Add rst-badge after rst-versions for small badge style. #} +{% set display_version = version -%} +{% set listed_languages = ({"en":"#", "de":"#", "es":"#", "fr":"#"}).items() -%} +{% set listed_versions = ({"stable":"#", "latest":"#"}).items() -%} + +{% if READTHEDOCS and current_version %} + {% set display_version = current_version -%} +{% endif %} +{% if READTHEDOCS and versions %} + {% set listed_versions = versions -%} +{% endif %} + +
    + + Read the Docs + v: {{ display_version }}{% if display_version != godot_version %} ({{ godot_version }}){% endif %} + + +
    + {# + The contents of this element will be replaced in production. + But we can still have some mock data for testing. + #} + +
    +
    {{ _('Languages') }}
    + {% for slug, url in listed_languages %} +
    {{ slug }}
    + {% endfor %} +
    +
    +
    {{ _('Versions') }}
    + {% for slug, url in listed_versions %} +
    {{ slug }}
    + {% endfor %} +
    +
    + {# Translators: The phrase "Read the Docs" is not translated #} +
    {{ _('On Read the Docs') }}
    +
    + {{ _('Project Home') }} +
    +
    + {{ _('Builds') }} +
    +
    + {{ _('Downloads') }} +
    +
    + +
    + + Hosted by Read the Docs + · + Privacy Policy + + + {##} +
    +
    diff --git a/about/docs_changelog.rst b/about/docs_changelog.rst index 5f9ea448b..9edceffdb 100644 --- a/about/docs_changelog.rst +++ b/about/docs_changelog.rst @@ -5,7 +5,7 @@ Documentation changelog The documentation is continually being improved. The release of version 3.2 includes many new tutorials, many fixes and updates for old tutorials, and many updates -to the :ref:`class reference `. Below is a list of new tutorials +to the :ref:`class reference `. Below is a list of new tutorials added since version 3.1. .. note:: This document only contains new tutorials so not all changes are reflected, diff --git a/about/index.rst b/about/index.rst deleted file mode 100644 index 5a3f59959..000000000 --- a/about/index.rst +++ /dev/null @@ -1,18 +0,0 @@ -About -===== - -.. toctree:: - :maxdepth: 1 - :name: toc-about - - introduction - faq - troubleshooting - list_of_features - docs_changelog - release_policy - complying_with_licenses - -.. history -.. authors -.. license diff --git a/classes/index.rst b/classes/index.rst index 185946541..b0358f15b 100644 --- a/classes/index.rst +++ b/classes/index.rst @@ -1,5 +1,7 @@ :github_url: hide +.. _doc_class_reference: + Godot API ========= diff --git a/community/contributing/contributing_to_the_documentation.rst b/community/contributing/contributing_to_the_documentation.rst index 9158d698e..e5101a1c4 100644 --- a/community/contributing/contributing_to_the_documentation.rst +++ b/community/contributing/contributing_to_the_documentation.rst @@ -26,7 +26,7 @@ request triggers a rebuild of the online documentation upon merging. .. warning:: The class reference's source files are in the `Godot engine repository `_. We generate - the :ref:`Godot API ` section of this documentation + the :ref:`Godot API ` section of this documentation from them. If you want to update the description of a class, its methods, or properties, read :ref:`doc_updating_the_class_reference`. diff --git a/community/contributing/documentation_guidelines.rst b/community/contributing/documentation_guidelines.rst index 9320710e3..d5ceffb75 100644 --- a/community/contributing/documentation_guidelines.rst +++ b/community/contributing/documentation_guidelines.rst @@ -27,8 +27,8 @@ documentation. .. warning:: The class reference's source files are in the `Godot engine repository `_. We generate the :ref:`Godot API - ` section of this documentation from them. If you want to update the - description of a class, its methods, or properties, read + ` section of this documentation from them. If you want + to update the description of a class, its methods, or properties, read :ref:`doc_updating_the_class_reference`. .. warning:: If you want to edit the **API reference**, please note that it diff --git a/community/contributing/updating_the_class_reference.rst b/community/contributing/updating_the_class_reference.rst index 891e1633b..cbbdf89c5 100644 --- a/community/contributing/updating_the_class_reference.rst +++ b/community/contributing/updating_the_class_reference.rst @@ -5,7 +5,7 @@ Contributing to the class reference .. highlight:: shell -The class reference is available online in the :ref:`classes ` +The class reference is available online in the :ref:`classes ` section of the documentation and in the Godot editor, from the help menu. In the class reference, some methods, variables, and signals lack descriptions. @@ -45,7 +45,7 @@ repository: `doc/classes/ .. warning:: Always edit the API reference through these source XML files. Do not edit the generated ``.rst`` files :ref:`in the online documentation - `, hosted in the `godot-docs + `, hosted in the `godot-docs `_ repository. .. warning:: diff --git a/community/contributing/ways_to_contribute.rst b/community/contributing/ways_to_contribute.rst index ea22647dc..0c3e32011 100644 --- a/community/contributing/ways_to_contribute.rst +++ b/community/contributing/ways_to_contribute.rst @@ -197,7 +197,7 @@ There are two separate resources referred to as "documentation" in Godot: - **The class reference.** This is the documentation for the complete Godot API as exposed to GDScript and the other scripting languages. It can be consulted offline, directly in Godot's code editor, or online at :ref:`Godot API - `. To contribute to the class reference, you have to edit the + `. To contribute to the class reference, you have to edit the XML file corresponding to the class and make a pull request. See :ref:`doc_updating_the_class_reference` and :ref:`doc_class_reference_writing_guidelines` for more details. diff --git a/conf.py b/conf.py index 07cbf7d4b..a4bd24fef 100644 --- a/conf.py +++ b/conf.py @@ -2,6 +2,7 @@ # # Godot Engine documentation build configuration file +import sphinx import sphinx_rtd_theme import sys import os @@ -76,7 +77,7 @@ master_doc = "index" # General information about the project project = "Godot Engine" copyright = ( - "2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0)" + "2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0)" ) author = "Juan Linietsky, Ariel Manzur and the Godot community" @@ -96,20 +97,20 @@ if env_tags is not None: # Language / i18n supported_languages = { - "en": "Godot Engine (%s) documentation in English", - "de": "Godot Engine (%s) Dokumentation auf Deutsch", - "es": "Documentación de Godot Engine (%s) en español", - "fr": "Documentation de Godot Engine (%s) en français", - "fi": "Godot Engine (%s) dokumentaatio suomeksi", - "it": "Godot Engine (%s) documentazione in italiano", - "ja": "Godot Engine (%s)の日本語のドキュメント", - "ko": "Godot Engine (%s) 문서 (한국어)", - "pl": "Dokumentacja Godot Engine (%s) w języku polskim", - "pt_BR": "Documentação da Godot Engine (%s) em Português Brasileiro", - "ru": "Документация Godot Engine (%s) на русском языке", - "uk": "Документація до Godot Engine (%s) українською мовою", - "zh_CN": "Godot Engine (%s) 简体中文文档", - "zh_TW": "Godot Engine (%s) 正體中文 (台灣) 文件", + "en": "Godot Engine %s documentation in English", + "de": "Godot Engine %s Dokumentation auf Deutsch", + "es": "Documentación de Godot Engine %s en español", + "fr": "Documentation de Godot Engine %s en français", + "fi": "Godot Engine %s dokumentaatio suomeksi", + "it": "Godot Engine %s documentazione in italiano", + "ja": "Godot Engine %sの日本語のドキュメント", + "ko": "Godot Engine %s 문서 (한국어)", + "pl": "Dokumentacja Godot Engine %s w języku polskim", + "pt_BR": "Documentação da Godot Engine %s em Português Brasileiro", + "ru": "Документация Godot Engine %s на русском языке", + "uk": "Документація до Godot Engine %s українською мовою", + "zh_CN": "Godot Engine %s 简体中文文档", + "zh_TW": "Godot Engine %s 正體中文 (台灣) 文件", } language = os.getenv("READTHEDOCS_LANGUAGE", "en") @@ -154,9 +155,11 @@ html_theme_options = { "logo_only": True, # Collapse navigation (False makes it tree-like) "collapse_navigation": False, + # Hide the documentation version name/number under the logo + "display_version": False, } -html_title = supported_languages[language] % version +html_title = supported_languages[language] % ( "(" + version + ")" ) # VCS options: https://docs.readthedocs.io/en/latest/vcs.html#github html_context = { @@ -167,6 +170,7 @@ html_context = { "conf_py_path": "/", # Path in the checkout to the docs root "godot_inject_language_links": True, "godot_docs_supported_languages": list(supported_languages.keys()), + "godot_docs_title": supported_languages[language], "godot_docs_basepath": "https://docs.godotengine.org/", "godot_docs_suffix": ".html", "godot_default_lang": "en", @@ -174,9 +178,15 @@ html_context = { # Distinguish local development website from production website. # This prevents people from looking for changes on the production website after making local changes :) "godot_title_prefix": "" if on_rtd else "(DEV) ", + # Set this to `True` when in the `latest` branch to clearly indicate to the reader + # that they are not reading the `stable` documentation. + "godot_is_latest": False, + "godot_version": "3.5", + # Enables a banner that displays the up-to-date status of each article. + "godot_show_article_status": False, } -html_logo = "img/docs_logo.png" +html_logo = "img/docs_logo.svg" # These folders are copied to the documentation's HTML output html_static_path = ["_static"] @@ -186,11 +196,14 @@ html_extra_path = ["robots.txt"] # These paths are either relative to html_static_path # or fully qualified paths (e.g. https://...) html_css_files = [ - "css/custom.css", + "css/custom.css?1", # Increment the number at the end when the file changes to bust the cache. ] +if not on_rtd: + html_css_files.append("css/dev.css") + html_js_files = [ - "js/custom.js", + "js/custom.js?1", # Increment the number at the end when the file changes to bust the cache. ] # Output file base name for HTML help builder @@ -242,11 +255,11 @@ gettext_compact = False # https://github.com/sphinx-doc/sphinx/issues/7768 to see what would be relevant for us. figure_language_filename = "{root}.{language}{ext}" -import sphinx cwd = os.getcwd() sphinx_original_get_image_filename_for_language = sphinx.util.i18n.get_image_filename_for_language + def godot_get_image_filename_for_language(filename, env): """ Hack the absolute path returned by Sphinx based on `figure_language_filename` diff --git a/getting_started/introduction/learning_new_features.rst b/getting_started/introduction/learning_new_features.rst index c3689261d..bac0ea39e 100644 --- a/getting_started/introduction/learning_new_features.rst +++ b/getting_started/introduction/learning_new_features.rst @@ -33,7 +33,7 @@ from within the Godot editor. To do so, go to Help -> Search or press .. image:: img/manual_class_reference_search.png -To browse it online, head to the manual's :ref:`Class Reference ` +To browse it online, head to the manual's :ref:`Class Reference ` section. A class reference's page tells you: diff --git a/img/docs_logo.png b/img/docs_logo.png deleted file mode 100644 index c13b068856da1e97da895425b31c10ac4494638c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38506 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

    a8(Wu9JJbi)!f~sD?YZh%B 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 diff --git a/index.rst b/index.rst index 91df1626e..ec931fed1 100644 --- a/index.rst +++ b/index.rst @@ -10,7 +10,7 @@ Godot Docs – *3.5* branch .. only:: i18n .. note:: This documentation is translated from the `original English one - `_ by community members + `_ by community members on `Weblate `_. Depending on the translation effort's completion level, you may @@ -19,8 +19,9 @@ Godot Docs – *3.5* branch ones on Weblate. For the time being, localized translations are only available for - the "latest" (development) branch, but should be suitable to learn - how to use stable Godot releases nevertheless. + the "stable" branch. You can still view the English documentation for + other engine versions using the "Read the Docs" panel at the bottom + of the sidebar. Welcome to the official documentation of `Godot Engine `__, the free and open source community-driven 2D and 3D game engine! If you are new @@ -28,42 +29,62 @@ to this documentation, we recommend that you read the :ref:`introduction page ` to get an overview of what this documentation has to offer. -The table of contents below and in the sidebar should let you easily access the -documentation for your topic of interest. You can also use the search function -in the top left corner. +The table of contents in the sidebar should let you easily access the documentation +for your topic of interest. You can also use the search function in the top-left corner. -You can also `download an HTML copy `__ -for offline reading (updated every Monday). Extract the ZIP archive then open -the top-level ``index.html`` in a web browser. +Get involved +------------ -.. note:: Godot Engine is an open source project developed by a community of - volunteers. The documentation team can always use your - feedback and help to improve the tutorials and class reference. If - you don't understand something, or cannot find what you - are looking for in the docs, help us make the documentation better - by letting us know! +Godot Engine is an open source project developed by a community of volunteers. +The documentation team can always use your feedback and help to improve the +tutorials and class reference. If you don't understand something, or cannot find +what you are looking for in the docs, help us make the documentation better +by letting us know! - Submit an issue or pull request on the `GitHub repository - `_, - help us `translate the documentation - `_ into your - language, or talk to us on the - ``#documentation`` channel on the `Godot Contributors Chat - `_! +Submit an issue or pull request on the `GitHub repository `_, +help us `translate the documentation `_ +into your language, or talk to us on the ``#documentation`` channel on the +`Godot Contributors Chat `_! .. centered:: |weblate_widget| -The main documentation for the site is organized into the following sections: +Offline documentation +--------------------- + +To browse the documentation offline, you can use the mirror of the documentation +hosted on `DevDocs `__. To enable offline browsing on +DevDocs, you need to: + +- Click the three dots in the top-left corner, choose **Preferences**. +- Enable the desired version of the Godot documentation by checking the box + next to it in the sidebar. +- Click the three dots in the top-left corner, choose **Offline data**. +- Click the **Install** link next to the Godot documentation. + +You can also `download an HTML copy `__ +for offline reading (updated every Monday). Extract the ZIP archive then open +the top-level ``index.html`` in a web browser. + + +.. Below is the main table-of-content tree of the documentation website. + It is hidden on the page itself, but it makes up the sidebar for navigation. .. toctree:: + :hidden: :maxdepth: 1 - :caption: General + :caption: About :name: sec-general - about/index - + about/introduction + about/faq + about/troubleshooting + about/list_of_features + about/docs_changelog + about/release_policy + about/complying_with_licenses .. toctree:: + :hidden: :maxdepth: 1 :caption: Getting started :name: sec-learn @@ -74,19 +95,23 @@ The main documentation for the site is organized into the following sections: getting_started/first_3d_game/index -.. The sections below are sorted alphabetically. Please keep them that way. +.. Sections below are split into two groups. First come meta sections, covering + general matters. Below that different areas of the engine are listed. + These sections are sorted alphabetically. Please keep them that way. .. toctree:: + :hidden: :maxdepth: 1 - :caption: Tutorials + :caption: Manual :name: sec-tutorials + tutorials/best_practices/index + tutorials/editor/index + tutorials/2d/index tutorials/3d/index tutorials/animation/index tutorials/assets_pipeline/index tutorials/audio/index - tutorials/best_practices/index - tutorials/editor/index tutorials/export/index tutorials/i18n/index tutorials/inputs/index @@ -106,6 +131,7 @@ The main documentation for the site is organized into the following sections: .. toctree:: + :hidden: :maxdepth: 1 :caption: Development :name: sec-devel @@ -117,6 +143,7 @@ The main documentation for the site is organized into the following sections: .. toctree:: + :hidden: :maxdepth: 1 :caption: Community :name: sec-community @@ -128,16 +155,9 @@ The main documentation for the site is organized into the following sections: .. toctree:: + :hidden: :maxdepth: 1 :caption: Class reference :name: sec-class-ref classes/index - - -.. Indices and tables -.. ------------------ -.. -.. * :ref:`genindex` -.. * :ref:`modindex` -.. * :ref:`search`