summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.circleci/config.yml112
-rw-r--r--.github/CODEOWNERS1
-rw-r--r--.github/CODE_OF_CONDUCT.md5
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md34
-rw-r--r--.gitignore31
-rw-r--r--.readthedocs.yml15
-rw-r--r--.tx/config10
-rw-r--r--Apache-License-2.0.txt204
-rw-r--r--Dockerfile60
-rw-r--r--LICENSE20
-rw-r--r--MANIFEST.in17
-rw-r--r--Makefile19
-rw-r--r--OFL-License.txt96
-rw-r--r--README.rst74
-rw-r--r--babel.cfg10
-rwxr-xr-xbin/preinstall.js20
-rw-r--r--docker-compose.yaml26
-rw-r--r--docker-entrypoint.sh25
-rw-r--r--docs/Makefile20
-rw-r--r--docs/_static/debug.js7
-rw-r--r--docs/_templates/layout.html55
-rw-r--r--docs/changelog.rst514
-rw-r--r--docs/conf.py116
-rw-r--r--docs/configuring.rst236
-rw-r--r--docs/contributing.rst265
-rw-r--r--docs/demo/api.rst152
-rw-r--r--docs/demo/demo.rst477
-rw-r--r--docs/demo/level1/index.rst9
-rw-r--r--docs/demo/level1/level2/index.rst9
-rw-r--r--docs/demo/level1/level2/level3/index.rst9
-rw-r--r--docs/demo/level1/level2/level3/level4/index.rst9
-rw-r--r--docs/demo/level1/level2/level3/level4/level5/index.rst9
-rw-r--r--docs/demo/level1/level2/level3/level4/level5/level6/index.rst4
-rw-r--r--docs/demo/lists_tables.rst371
-rw-r--r--docs/demo/long.rst214
-rw-r--r--docs/demo/static/favicon.icobin0 -> 766 bytes
-rw-r--r--docs/demo/static/logo-wordmark-light.svg134
-rw-r--r--docs/demo/static/screen_desktop.pngbin0 -> 140497 bytes
-rw-r--r--docs/demo/static/screen_mobile.pngbin0 -> 85705 bytes
-rw-r--r--docs/demo/static/yi_jing_01_chien.jpgbin0 -> 6614 bytes
-rw-r--r--docs/demo/structure.rst101
-rw-r--r--docs/demo/test_py_module/__init__.py0
-rw-r--r--docs/demo/test_py_module/test.py148
-rw-r--r--docs/development.rst209
-rw-r--r--docs/index.rst90
-rw-r--r--docs/installing.rst60
-rw-r--r--docs/make.bat38
-rw-r--r--docs/requirements.txt1
-rw-r--r--docs/supported-browsers.csv5
-rw-r--r--package.json46
-rw-r--r--setup.cfg117
-rw-r--r--setup.py96
-rw-r--r--sphinx_rtd_theme/__init__.py77
-rw-r--r--sphinx_rtd_theme/breadcrumbs.html77
-rw-r--r--sphinx_rtd_theme/footer.html62
-rw-r--r--sphinx_rtd_theme/layout.html251
-rw-r--r--sphinx_rtd_theme/locale/da/LC_MESSAGES/sphinx.po206
-rw-r--r--sphinx_rtd_theme/locale/de/LC_MESSAGES/sphinx.po136
-rw-r--r--sphinx_rtd_theme/locale/en/LC_MESSAGES/sphinx.po201
-rw-r--r--sphinx_rtd_theme/locale/es/LC_MESSAGES/sphinx.po169
-rw-r--r--sphinx_rtd_theme/locale/et/LC_MESSAGES/sphinx.po166
-rw-r--r--sphinx_rtd_theme/locale/fa_IR/LC_MESSAGES/sphinx.po161
-rw-r--r--sphinx_rtd_theme/locale/fr/LC_MESSAGES/sphinx.po169
-rw-r--r--sphinx_rtd_theme/locale/hr/LC_MESSAGES/sphinx.po23
-rw-r--r--sphinx_rtd_theme/locale/hu/LC_MESSAGES/sphinx.po23
-rw-r--r--sphinx_rtd_theme/locale/it/LC_MESSAGES/sphinx.po192
-rw-r--r--sphinx_rtd_theme/locale/lt/LC_MESSAGES/sphinx.po188
-rw-r--r--sphinx_rtd_theme/locale/nl/LC_MESSAGES/sphinx.po188
-rw-r--r--sphinx_rtd_theme/locale/pl/LC_MESSAGES/sphinx.po137
-rw-r--r--sphinx_rtd_theme/locale/pt/LC_MESSAGES/sphinx.po161
-rw-r--r--sphinx_rtd_theme/locale/pt_BR/LC_MESSAGES/sphinx.po191
-rw-r--r--sphinx_rtd_theme/locale/ru/LC_MESSAGES/sphinx.po189
-rw-r--r--sphinx_rtd_theme/locale/sphinx.pot182
-rw-r--r--sphinx_rtd_theme/locale/sv/LC_MESSAGES/sphinx.po151
-rw-r--r--sphinx_rtd_theme/locale/tr/LC_MESSAGES/sphinx.po143
-rw-r--r--sphinx_rtd_theme/locale/zh_CN/LC_MESSAGES/sphinx.po188
-rw-r--r--sphinx_rtd_theme/locale/zh_TW/LC_MESSAGES/sphinx.po23
-rw-r--r--sphinx_rtd_theme/search.html56
-rw-r--r--sphinx_rtd_theme/searchbox.html9
-rw-r--r--sphinx_rtd_theme/theme.conf20
-rw-r--r--sphinx_rtd_theme/versions.html34
-rw-r--r--src/sass/_theme_badge.sass94
-rw-r--r--src/sass/_theme_badge_fa.sass67
-rw-r--r--src/sass/_theme_breadcrumbs.sass35
-rw-r--r--src/sass/_theme_font_awesome_compatibility.sass24
-rw-r--r--src/sass/_theme_font_local.sass44
-rw-r--r--src/sass/_theme_layout.sass424
-rw-r--r--src/sass/_theme_mathjax.sass5
-rw-r--r--src/sass/_theme_rst.sass617
-rw-r--r--src/sass/_theme_variables.sass72
-rw-r--r--src/sass/badge_only.sass16
-rw-r--r--src/sass/theme.sass50
-rw-r--r--src/theme.js266
-rw-r--r--tests/__init__.py0
-rw-r--r--tests/roots/test-basic/bar.rst2
-rw-r--r--tests/roots/test-basic/conf.py4
-rw-r--r--tests/roots/test-basic/foo.rst6
-rw-r--r--tests/roots/test-basic/index.rst12
-rw-r--r--tests/roots/test-empty/conf.py4
-rw-r--r--tests/roots/test-empty/index.rst10
-rw-r--r--tests/roots/test-missing-toctree/conf.py4
-rw-r--r--tests/roots/test-missing-toctree/index.rst2
-rw-r--r--tests/test_builders.py87
-rw-r--r--tests/util.py61
-rw-r--r--tox.ini33
-rw-r--r--webpack.common.js76
-rw-r--r--webpack.dev.js36
-rw-r--r--webpack.prod.js11
108 files changed, 10135 insertions, 0 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 0000000..d7aa9d7
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,112 @@
+version: 2.1
+
+orbs:
+ node: circleci/node@5.0.2
+
+commands:
+ run-tox:
+ description: "Run tox"
+ parameters:
+ version:
+ type: string
+ sphinx-version:
+ type: string
+ default: "latest"
+ steps:
+ - checkout
+ # We cannot upgrade to Tox4 because running generative environments doesn't work.
+ # I guess it has changed its syntax or similar.
+ # $ tox run -e "py310-sphinx{50,51}"
+ # ROOT: HandledError| provided environments not found in configuration file: ['51}']
+ - run: pip install --user 'tox~=3.27'
+ - run: tox -e "<<parameters.version>>-sphinx{<<parameters.sphinx-version>>}"
+ run-build:
+ description: "Ensure built assets are up to date"
+ steps:
+ - checkout
+ - node/install:
+ node-version: '14.20'
+ - run: npm ci
+ - run: npm run build
+ - run:
+ name: Ensure built assets are up to date
+ command: |
+ if [[ `git status sphinx_rtd_theme/ --porcelain` ]]
+ then
+ echo "ERROR: assets are out of date. Make sure to run 'npm run build' on your branch."
+ git status sphinx_rtd_theme/ --porcelain
+ exit 1
+ fi
+
+jobs:
+ build:
+ docker:
+ - image: 'cimg/python:3.9-node'
+ steps:
+ - run-build: {}
+ py36:
+ docker:
+ - image: 'cimg/python:3.6'
+ steps:
+ - run-tox:
+ version: py36
+ sphinx-version: "50,51,52,53"
+ py37:
+ docker:
+ - image: 'cimg/python:3.7'
+ steps:
+ - run-tox:
+ version: py37
+ sphinx-version: "50,51,52,53"
+ py38:
+ docker:
+ - image: 'cimg/python:3.8'
+ steps:
+ - run-tox:
+ version: py38
+ sphinx-version: "50,51,52,53,60,61,62,70,71,latest"
+ py39:
+ docker:
+ - image: 'cimg/python:3.9'
+ steps:
+ - run-tox:
+ version: py39
+ sphinx-version: "50,51,52,53,60,61,62,70,71,72,latest"
+ py310:
+ docker:
+ - image: 'cimg/python:3.10'
+ steps:
+ - run-tox:
+ version: py310
+ sphinx-version: "50,51,52,53,60,61,62,70,71,72,latest"
+ py311:
+ docker:
+ - image: 'cimg/python:3.11'
+ steps:
+ - run-tox:
+ version: py311
+ sphinx-version: "53,60,61,62,70,71,72,latest,dev"
+
+workflows:
+ version: 2
+ tests:
+ jobs:
+ - build
+ - py311:
+ requires:
+ - build
+ - py310:
+ requires:
+ - build
+ - py39:
+ requires:
+ - build
+ - py38:
+ requires:
+ - build
+ - py37:
+ requires:
+ - build
+ - py36:
+ requires:
+ - build
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 0000000..8fa0ef8
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1 @@
+* @readthedocs/theme
diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..a707608
--- /dev/null
+++ b/.github/CODE_OF_CONDUCT.md
@@ -0,0 +1,5 @@
+# Code of Conduct
+
+A copy of our code of conduct can be found on Read the Docs as seen below.
+
+http://docs.readthedocs.io/en/latest/code-of-conduct.html
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..0c0a530
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,34 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: 'Bug, Needed: replication'
+assignees: ''
+
+---
+
+### Problem
+
+Give details on your issue.
+
+### Reproducible Project
+
+Please give a link to a public reproducible project or provide an example of the Restructured Text that gives an issue.
+
+```rst
+Place RST code here (if any).
+```
+
+#### Error Logs/Results
+
+Place any images or error logs that might be able to help solve the issue here.
+
+#### Expected Results
+
+Please describe how this should work properly.
+
+### Environment Info
+
+- Python Version:
+- Sphinx Version:
+- RTD Theme Version:
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1622f8e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,31 @@
+*.pyc
+*.egg-info
+*.egg
+*build/
+.tox
+.coverage
+*.DS_Store
+*.sass-cache
+*.map
+.ropeproject/
+.ruby-version
+dist/
+bower_components/
+include/
+lib/
+local/
+node_modules
+npm-debug.log
+pip-selfcheck.json
+sphinx_rtd_theme/static/fonts/Lato/
+sphinx_rtd_theme/static/fonts/RobotoSlab/
+.python-version
+.node-version
+.tool-versions
+.nvmrc
+sphinx_rtd_theme/static/js/html5shiv.min.js
+sphinx_rtd_theme/static/js/html5shiv-printshiv.min.js
+.direnv/
+.envrc
+# Used for dockerized builds
+.container_id
diff --git a/.readthedocs.yml b/.readthedocs.yml
new file mode 100644
index 0000000..e0f00d7
--- /dev/null
+++ b/.readthedocs.yml
@@ -0,0 +1,15 @@
+version: 2
+
+build:
+ os: "ubuntu-22.04"
+ tools:
+ python: "3.10"
+
+python:
+ install:
+ - requirements: docs/requirements.txt
+ - method: pip
+ path: .
+
+sphinx:
+ configuration: docs/conf.py
diff --git a/.tx/config b/.tx/config
new file mode 100644
index 0000000..70bc775
--- /dev/null
+++ b/.tx/config
@@ -0,0 +1,10 @@
+[sphinx-rtd-theme.sphinx-rtd-theme]
+file_filter = sphinx_rtd_theme/locale/<lang>/LC_MESSAGES/sphinx.po
+minimum_perc = 60
+source_file = sphinx_rtd_theme/locale/en/LC_MESSAGES/sphinx.po
+source_lang = en
+
+[main]
+host = https://www.transifex.com
+type = PO
+
diff --git a/Apache-License-2.0.txt b/Apache-License-2.0.txt
new file mode 100644
index 0000000..ebae217
--- /dev/null
+++ b/Apache-License-2.0.txt
@@ -0,0 +1,204 @@
+/fonts/RobotoSlab/*
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..139779c
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,60 @@
+# This implicitely includes Python 3.10
+FROM node:14-alpine
+
+# Do not use --update since that will also fetch the
+# latest node-current package
+# 'make' is needed for building documentation
+RUN apk add npm make py3-pip py3-wheel
+
+# Add an extra verification that we have the right node
+# because the above caused issues
+RUN node -v && node -v | grep -q v14 &&\
+ python3 --version && python3 --version | grep -q "3.10"
+
+RUN pip install pip --upgrade
+
+RUN mkdir -p /project/src/ &&\
+ mkdir -p /project/docs/build/ &&\
+ mkdir -p /project-minimal-copy/sphinx_rtd_theme &&\
+ touch /project-minimal-copy/sphinx_rtd_theme/__init__.py
+
+# This is the main working directory where node_modules
+# gets built. During runtime, it's mixed with directories
+# from an external environment through a bind mount
+WORKDIR /project
+
+# Copy files necessary to run "npm install" and save
+# installed packages in the docker image (makes the runtime
+# so much faster)
+COPY package.json /project/
+COPY bin/preinstall.js /project/bin/preinstall.js
+
+RUN cd /project
+
+# It matters that the node environment is installed into the same
+# folder, i.e. /project where we will run the environment from
+# TODO: We don't want to update package-lock.json here, we
+# should use npm ci instead
+RUN npm install --package-lock-only &&\
+ npm audit fix &&\
+ npm install
+
+# This is strictly speaking not necessary, just makes
+# running the container faster...
+# Install dependencies, then uninstall project itself
+COPY setup.py README.rst /project-minimal-copy/
+RUN cd /project-minimal-copy &&\
+ pip install ".[dev]" &&\
+ /usr/bin/yes | pip uninstall sphinx_rtd_theme
+
+
+# Copy in files that we need to run the project. These files
+# will not be mounted into the runtime from external environment
+# so we copy them during build.
+COPY webpack.common.js webpack.dev.js webpack.prod.js /project/
+
+# Copy in the entrypoint and we're done
+COPY docker-entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+ENTRYPOINT ["/entrypoint.sh"]
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..211dd9c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013-2018 Dave Snider, Read the Docs, Inc. & contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..e4d7a2f
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,17 @@
+include *.txt
+include babel.cfg
+include LICENSE
+include bin/preinstall.js
+recursive-include sphinx_rtd_theme *.conf
+recursive-include sphinx_rtd_theme *.css
+recursive-include sphinx_rtd_theme *.eot
+recursive-include sphinx_rtd_theme *.html
+recursive-include sphinx_rtd_theme *.js
+recursive-include sphinx_rtd_theme *.svg
+recursive-include sphinx_rtd_theme *.ttf
+recursive-include sphinx_rtd_theme *.woff
+recursive-include sphinx_rtd_theme *.woff2
+recursive-include sphinx_rtd_theme/locale *.pot *.po *.mo
+recursive-include tests *.py
+recursive-include tests *.rst
+prune build
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..5af15e7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,19 @@
+SHELL := /bin/bash
+CWD := $(shell cd -P -- '$(shell dirname -- "$0")' && pwd -P)
+
+docker-images:
+ docker-compose build
+
+docker-npm-build:
+ rm -f .container_id
+ docker-compose run -d sphinx_rtd_theme build > .container_id
+ sleep 1s
+ docker container wait "$(shell cat .container_id)"
+ docker cp "$(shell cat .container_id):/project/sphinx_rtd_theme" .
+ docker cp "$(shell cat .container_id):/project/package-lock.json" .
+ @echo "Done building"
+
+docker-npm-dev:
+ docker-compose run sphinx_rtd_theme dev
+
+docker-build-all: docker-images docker-npm-build
diff --git a/OFL-License.txt b/OFL-License.txt
new file mode 100644
index 0000000..bb6c266
--- /dev/null
+++ b/OFL-License.txt
@@ -0,0 +1,96 @@
+sphinx_rtd_theme/static/fonts/Lato/*
+
+Copyright (c) 2010-2015, Łukasz Dziedzic (dziedzic@typoland.com),
+with Reserved Font Name Lato.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..f51d8b2
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,74 @@
+**************************
+Read the Docs Sphinx Theme
+**************************
+
+.. image:: https://img.shields.io/pypi/v/sphinx_rtd_theme.svg
+ :target: https://pypi.python.org/pypi/sphinx_rtd_theme
+ :alt: Pypi Version
+.. image:: https://circleci.com/gh/readthedocs/sphinx_rtd_theme.svg?style=svg
+ :alt: Build Status
+ :target: https://circleci.com/gh/readthedocs/sphinx_rtd_theme
+.. image:: https://img.shields.io/pypi/l/sphinx_rtd_theme.svg
+ :target: https://pypi.python.org/pypi/sphinx_rtd_theme/
+ :alt: License
+.. image:: https://readthedocs.org/projects/sphinx-rtd-theme/badge/?version=latest
+ :target: http://sphinx-rtd-theme.readthedocs.io/en/latest/?badge=latest
+ :alt: Documentation Status
+
+This Sphinx_ theme was designed to provide a great reader experience for
+documentation users on both desktop and mobile devices. This theme is used
+primarily on `Read the Docs`_ but can work with any Sphinx project. You can find
+a working demo of the theme in the `theme documentation`_
+
+.. _Sphinx: http://www.sphinx-doc.org
+.. _Read the Docs: http://www.readthedocs.org
+.. _theme documentation: https://sphinx-rtd-theme.readthedocs.io/en/stable/
+
+Installation
+============
+
+This theme is distributed on PyPI_ and can be installed with ``pip``:
+
+.. code:: console
+
+ $ pip install sphinx-rtd-theme
+
+To use the theme in your Sphinx project, you will need to edit
+your ``conf.py`` file's ``html_theme`` setting:
+
+.. code:: python
+
+ html_theme = "sphinx_rtd_theme"
+
+.. admonition:: See also:
+
+ `Supported browsers`_
+ Officially supported and tested browser/operating system combinations
+
+ `Supported dependencies`_
+ Supported versions of Python, Sphinx, and other dependencies.
+
+ `Example documentation`_
+ A full example of this theme output, with localized strings enabled.
+
+.. _PyPI: https://pypi.python.org/pypi/sphinx_rtd_theme
+.. _Supported browsers: https://sphinx-rtd-theme.readthedocs.io/en/stable/development.html#supported-browsers
+.. _Supported dependencies: https://sphinx-rtd-theme.readthedocs.io/en/stable/development.html#supported-dependencies
+.. _Example documentation: https://sphinx-rtd-theme.readthedocs.io/en/stable/
+
+Configuration
+=============
+
+This theme is highly customizable on both the page level and on a global level.
+To see all the possible configuration options, read the documentation on
+`configuring the theme`_.
+
+.. _configuring the theme: https://sphinx-rtd-theme.readthedocs.io/en/stable/configuring.html
+
+Contributing
+============
+
+If you would like to help modify or translate the theme, you'll find more
+information on contributing in our `contributing guide`_.
+
+.. _contributing guide: https://sphinx-rtd-theme.readthedocs.io/en/stable/contributing.html
diff --git a/babel.cfg b/babel.cfg
new file mode 100644
index 0000000..a1339b8
--- /dev/null
+++ b/babel.cfg
@@ -0,0 +1,10 @@
+# How setup this file
+# http://babel.pocoo.org/en/latest/setup.html
+# this file description:
+# http://babel.pocoo.org/en/latest/messages.html#extraction-method-mapping-and-configuration
+
+# Extraction from Jinja2 HTML templates
+[jinja2: **/**.html]
+encoding = utf-8
+ignore_tags = script,style
+include_attrs = alt title summary placeholder
diff --git a/bin/preinstall.js b/bin/preinstall.js
new file mode 100755
index 0000000..536fe5a
--- /dev/null
+++ b/bin/preinstall.js
@@ -0,0 +1,20 @@
+#!/usr/bin/env node
+
+const package = require('../package.json');
+
+// Sorry everyone, this is the closest we can get to commenting on package.json
+// dependencies :(
+if (package.devDependencies['bourbon-neat'] !== '~1.9') {
+ // Wyrm is not compatible with Neat 2.0+, and Neat 1.9 at least pins a
+ // node-sass version that doesn't require Python 2. The changes to Wyrm to
+ // support Neat 2.0+ are all fairly minor changes, but it deeply affects the
+ // grid system and might be more of a liability than an old release of Neat.
+ // See: https://github.com/readthedocs/sphinx_rtd_theme/pull/771
+ console.error(
+ 'bourbon-neat 1.9 is required, Wyrm is not compatible with Neat 2.0+.'
+ );
+ console.error(
+ 'The expected selector for the bourbon-neat dependency in package.json is "~1.9".'
+ );
+ process.exit(1);
+}
diff --git a/docker-compose.yaml b/docker-compose.yaml
new file mode 100644
index 0000000..dae10dd
--- /dev/null
+++ b/docker-compose.yaml
@@ -0,0 +1,26 @@
+version: "3.2"
+services:
+
+ sphinx_rtd_theme:
+ build: .
+ volumes:
+ - type: "bind"
+ source: "./"
+ target: "/project-readonly"
+ read_only: true
+ - type: "volume"
+ target: "/project-readonly/sphinx_rtd_theme.egg-info"
+ - type: "bind"
+ source: "./src"
+ target: "/project/src"
+ read_only: true
+ - type: "bind"
+ source: "./docs"
+ target: "/project/docs"
+ read_only: false #todo: fix this
+ - type: "volume"
+ target: "/project/docs/_build"
+
+ network_mode: host
+ ports:
+ - "1919:1919"
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
new file mode 100644
index 0000000..86762ad
--- /dev/null
+++ b/docker-entrypoint.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# Update latest Python dependencies in case they have changed
+# Notice that we are using the 'eager' strategy
+# This should only be relevant to development environments where
+# the theme is being used. For purposes of "production" or
+# building the sdist/wheel, installing dependencies should not
+# affect the outcome.
+cd /project-readonly
+pip install --upgrade --upgrade-strategy eager -e ".[dev]"
+
+# This helps a potential permission issue, but might be removed
+# pending some more investigation of docker host file system
+# permissions in the bind mount
+# npm cache clean --force
+# npm install
+
+cd /project
+
+# TODO: This is a bad approach, it copies from the image which
+# may be outdated to the current git tree
+cp -r /project-readonly/sphinx_rtd_theme .
+
+echo "Going to invoke: npm run $@"
+npm run $@
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..ea88050
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+SPHINXPROJ = ReadtheDocsSphinxTheme
+SOURCEDIR = .
+BUILDDIR = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/docs/_static/debug.js b/docs/_static/debug.js
new file mode 100644
index 0000000..338b241
--- /dev/null
+++ b/docs/_static/debug.js
@@ -0,0 +1,7 @@
+// Add debug actions to flyout menu
+
+$(function () {
+ $("[data-toggle='rst-debug-badge']").on("click", function () {
+ $("[data-toggle='rst-versions']").toggleClass("rst-badge");
+ });
+})
diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html
new file mode 100644
index 0000000..843122f
--- /dev/null
+++ b/docs/_templates/layout.html
@@ -0,0 +1,55 @@
+{%- extends "!layout.html" %}
+
+{#-
+
+This template exists as a way to implement a version menu without changing what
+the theme normally renders the menu on local builds and on builds on Read the
+Docs. This is for local testing purposes only.
+
+#}
+
+{%- block footer %}
+ {%- if not READTHEDOCS %}
+ <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="{{ _('Versions') }}">
+ <span class="rst-current-version" data-toggle="rst-current-version">
+ <span class="fa fa-book"> Read the Docs</span>
+ v: latest
+ <span class="fa fa-caret-down"></span>
+ </span>
+ <div class="rst-other-versions">
+ <dl>
+ <dt>{{ _('Versions') }}</dt>
+ {%- if test_versions %}
+ {%- for version in test_versions %}
+ <dd><a href="#">{{ version }}</a></dd>
+ {%- endfor %}
+ {%- else %}
+ <dd><a href="#">latest</a></dd>
+ <dd><a href="#">1.0</a></dd>
+ <dd><a href="#">1.1</a></dd>
+ {%- endif %}
+ </dl>
+ <dl>
+ <dt>{{ _('Downloads') }}</dt>
+ <dd><a href="#">PDF</a></dd>
+ <dd><a href="#">ePub</a></dd>
+ <dd><a href="#">HTML</a></dd>
+ </dl>
+ <dl>
+ {#- Translators: The phrase "Read the Docs" is not translated #}
+ <dt>{{ _('On Read the Docs') }}</dt>
+ <dd>
+ <a href="#">{{ _('Project Home') }}</a>
+ </dd>
+ <dd>
+ <a href="#">{{ _('Builds') }}</a>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Debug</dt>
+ <dd><a href="#" data-toggle="rst-debug-badge">Swap badge position</a></dd>
+ </dl>
+ </div>
+ </div>
+ {%- endif %}
+{%- endblock %}
diff --git a/docs/changelog.rst b/docs/changelog.rst
new file mode 100644
index 0000000..bf26848
--- /dev/null
+++ b/docs/changelog.rst
@@ -0,0 +1,514 @@
+*********
+Changelog
+*********
+
+.. seealso:: :ref:`howto_upgrade`
+
+.. |theme_version| replace:: 2.0.0
+
+.. _release-2.0.0:
+
+2.0.0
+=====
+
+Added
+-----
+
+* Support for Sphinx versions ``6.x`` and ``7.x``
+* Support for docutils ``<=0.20``
+
+Deprecations
+------------
+
+* The HTML4 writer is now officially deprecated. An error will be thrown if your
+ project configuration still uses the HTML4 writer.
+* Support for Sphinx versions < 5.0 was removed.
+* In addition, our supported dependencies will match the dependencies from our
+ lowest supported Sphinx release, version 5.0: Python >= 3.6 and docutils > 0.14 and < 0.19
+
+.. _release-1.3.0:
+
+1.3.0
+=====
+
+Added
+-----
+
+* Relaxed requirements to include Sphinx release ``7.0``
+
+.. _release-1.2.2:
+
+1.2.2
+=====
+
+Fixes
+-----
+
+* Require `sphinxcontrib-jquery>=4,<5` (#1446)
+
+Added
+-----
+
+* Styling for `:menuselection:` (#1426)
+
+
+.. _release-1.2.1:
+
+1.2.1
+=====
+
+Fixes
+-----
+
+* Load jQuery correctly when using latest sphinxcontrib-jquery release (#1448)
+
+
+.. _release-1.2.0:
+
+1.2.0
+=====
+
+Dependency changes
+------------------
+
+* docutils 0.18 is supported. (#1381)
+* Sphinx 6 support added
+* Added ``sphinxcontrib-jquery`` as a dependency (#1385 #1421)
+* Python 3.11 is officially supported and tested. (#1395)
+* Python 3.4 and 3.5 are officially not supported (#1395)
+
+Changes
+-------
+
+* Automatically use ``sphinxcontrib-jquery`` in Sphinx 6+ (#1399)
+* Use new context vars ``logo_url``, ``favicon_url`` and ``root_doc`` when available (#1405)
+* Translations updated: French, Hungarian, Croatian
+* Translations added: Danish, Chinese (Taiwan)
+
+Note for users of Sphinx<4
+--------------------------
+
+If you cannot use a more recent Sphinx release,
+you should at least ensure you are using the most recent release for your major version.
+Currently, these are Sphinx `1.8.6` and `2.4.5`.
+Older releases may install unsupported versions of several dependencies, including Jinja2 and docutils.
+
+Known issues
+------------
+
+In some cases, jQuery is not loaded with Sphinx 6 on Read the Docs.
+Workaround: You need to add ``sphinx_rtd_theme`` to ``extensions`` in your ``conf.py``.
+See `readthedocs.org issue #9654`_ for updates.
+
+.. _readthedocs.org issue #9654: https://github.com/readthedocs/readthedocs.org/pull/9654
+
+
+.. _release-1.1.1:
+
+1.1.1
+=====
+
+Fixes
+-----
+
+* Fix wrapping bug on cross references (#1368)
+
+.. _release-1.1.0:
+
+1.1.0
+=====
+
+Dependency Changes
+------------------
+
+Many documentation projects depend on ``sphinx-rtd-theme`` without specifying a version of the theme (unpinned) while also depending on unpinned versions of Sphinx. The latest version of ``sphinx-rtd-theme`` ideally always supports the latest version of Sphinx, but this is now guaranteed.
+
+This release adds upper bounds to direct dependencies ``Sphinx`` and ``docutils`` which will safeguard from mixing with possibly incompatible future versions of Sphinx & docutils.
+
+* Sphinx versions supported: 1.6 to 5.2.x
+* ``Sphinx<6`` (#1332)
+* ``docutils<0.18`` (unchanged, but will be bumped in an upcoming release)
+
+
+Features
+--------
+
+* Nicer styles for <kbd> (#967)
+* New styling for breadcrumbs (#1073)
+
+
+Fixes
+-----
+
+* Suffixes in Sphinx version caused build errors (#1345)
+* Table cells with multiple paragraphs gets wrong formatting (#289)
+* Definition lists rendered wrongly in api docs (#1052)
+* Citation not styled properly (#1078)
+* Long URLs did not wrap (#1193)
+
+
+Minor Changes
+-------------
+
+* Sphinx 5.2 added to test matrix (#1348)
+* Python 3.10 added to test matrix (#1334)
+* Supplemental Docker setup for development (#1319)
+* Most of setup.py migrated to setup.cfg (#1116)
+* Jinja2 context variable ``sphinx_version_info`` is now ``(major, minor, -1)``, the patch component is always ``-1``. Reason: It's complicated. (#1345)
+
+
+Incompatible Changes
+--------------------
+
+There are no known incompatible changes in this release. Support for ``docutils`` versions 0.18 and 0.19 are scheduled for our next release.
+
+
+.. _release-1.0.0:
+
+1.0.0
+=====
+
+Incompatible Changes
+--------------------
+
+* The minimum supported python version is now 2.7 or 3.4 and greater (#1093)
+* The minimum supported Sphinx version is now 1.6 (#1091)
+
+Deprecated
+----------
+
+* Support for Sphinx's HTML4 writer is deprecated and will be removed in version 2.0 (#1091)
+
+Features
+--------
+
+* Add support for Sphinx 4.x (#1123)
+* Add support for Docutils 0.17 (#1185 and #1199)
+* Fixed logo scaling on IE11 (#1183)
+* Added support for logos as URLs (#1171)
+* Align top and side navigation background colors on mobile (#1132)
+* Added support for deep toc levels (#1089)
+* Updated translations for Chinese, Dutch, Estonian, French, German, Italian,
+ Lithuanian, Persian, Polish, Portuguese, Russian, Spanish, Swedish, and
+ Turkish locales
+
+A number of accessibility features were added in this release:
+
+* Allow keyboard to toggle menu expansion (#1167)
+* Allow keyboard to activate permalink (#1162)
+* Show keyboard focus on buttons (#1161)
+* Maintain aria-expanded along with .current in menu (#1151)
+* Respect tab order for prev/next buttons (#1051)
+
+Fixes
+-----
+
+* Updated Google analytics integration (#1129)
+* Add classifier separation on Sphinx 2+ HTML4 writer (#1192)
+* Added missing space char in footer (#1188)
+* Fix navigation right padding on level2+ elements (#1068)
+* Fix navigation expansion button sizes (#1067)
+* Wrap inline literals (#1050)
+* Fix aria labels (#1056)
+* Don't toggle navigation terminal nodes (#1049)
+* Fix ``<pre>`` overflow (#1220)
+* Fix literal/ref style inside ``<dl>`` (#1088)
+
+Other Changes
+-------------
+
+* Update npm development dependencies (#1096)
+* Don't require npm to build from source (#1039)
+* Use regular toctree instead of toc for singlehtml builder (#507)
+* Cleanup whitespace in templates (#1060)
+
+.. _release-0.5.2:
+
+0.5.2
+=====
+
+:Date: April 5, 2021
+
+.. note:: This commit will not be in ``master``, but was branched directly off ``0.5.1`` to minimize issues.
+ The next full release will contain all PR's previously merged.
+
+* Depend on docutils < 0.17 (#1113)
+
+.. _release-0.5.1:
+
+0.5.1
+=====
+
+:Date: January 4, 2021
+
+Fixes
+-----
+
+* Set ``url_root`` properly on index (#1025)
+* Do not load ``language_data.js`` in non-search pages (#1021)
+* Hide the search box on any ``singlehtml`` like builder (#975)
+* Fix ``vcs_pageview_mode`` template parameter (#1010)
+* Mark nex/prev icons as aria-hidden (#1007)
+* Use well-formed XML syntax (#1006)
+* Footer: show both ``commit`` and ``last_updated`` if available (#897)
+* Search page: don't show "edit on" links (#935)
+
+New Features
+------------
+
+* New theme option to enable anonymous ip addresses when using Google Analytics (#889)
+
+Other Changes
+-------------
+
+* The ``canonical_url`` option was deprecated in favor of Sphinx's ``html_baseurl`` (#1003)
+* Add ``contentinfo`` block to ``footer.html`` template (#896)
+* Make Copyright template match sphinx's basic (#933)
+* Packaging: include ``bin/preinstall.js`` (#1005)
+
+.. _release-0.5.0:
+
+0.5.0
+=====
+
+:Date: Jun 17, 2020
+
+Fixes
+-----
+
+* Fix bullet list spacing to respect simple/complex list styles
+
+.. _release-0.5.0rc2:
+
+0.5.0rc2
+========
+
+:Date: June 5, 2020
+
+Fixes
+-----
+
+* Fix issue with simple definition lists that was missed
+* Change FOUT back to FOIT
+* Fix several margin issues with lists, nested lists, and nested content
+* Add colon back to field lists
+
+.. _release-0.5.0rc1:
+
+0.5.0rc1
+========
+
+:Date: May 6, 2020
+
+Fixes
+-----
+
+* Fix many styling issues that look different when using the Sphinx HTML5 writer
+
+Other Changes
+--------------
+
+* Add the ``navigation`` template block around the navigation area.
+* Added i18n support using Babel
+* Added translations for 10 new languages
+* Moved build system from Grunt and friends to Webpack
+* Remove Modernizr, but keep html5shiv (#724, #525)
+
+.. _release-0.4.3:
+
+0.4.3
+=====
+
+:Date: Feb 12, 2019
+
+New Features
+-------------
+
+Fixes
+-----
+
+* Fix scrolling to active item in sidebar on load (#214)
+* Style caption link for code and literal blocks
+* Fix inconsistent font size and line height for autodoc "raises" and "returns" (#267)
+* Fix last_updated notice appearing in same line as copyright notice (#704)
+
+
+Other Changes
+--------------
+
+.. _release-0.4.2:
+
+0.4.2
+=====
+
+:Date: Oct 5, 2018
+
+New Features
+-------------
+
+Fixes
+-----
+
+* Set base font size on <html> (#668)
+* Fix HTML search not working with Sphinx-1.8 (#672)
+
+Other Changes
+--------------
+
+* Upload signed packages to PyPI with twine (#651)
+* Do not enforce period at the end of copyright statement (666)
+
+0.4.1
+=====
+
+:Date: July 27, 2018
+
+New Features
+-------------
+
+Fixes
+-----
+
+* Line height adjustments for Liberation Mono (#656)
+
+Other Changes
+--------------
+
+* Add Sphinx as a dependency
+
+0.4.0
+=====
+
+This version made some changes to how JS and CSS were included
+when the theme is used on Read the Docs.
+
+
+New Features
+-------------
+
+Fixes
+-----
+
+* Do not rely on readthedocs.org for CSS/JS (#614)
+* Color accessibility improvements on the left navigation
+
+Other Changes
+---------------
+
+* Write theme version and build date at top of JavaScript and CSS
+* Changed code and literals to use a native font stack (#612)
+* Fix small styling issues
+
+0.3.1
+=====
+
+Fixes
+-----
+
+* Revert part of #576 causing display issues with version selector menu
+* Backwards compatibility fixes for pre-0.3.0 releases (#623)
+* Fix mkdocs version selector (#622)
+* Add open list spacing (#591)
+* Fix table centering (#599)
+
+0.3.0
+=====
+
+**Note**: this version resulted in some JavaScript incompatibilities when used on readthedocs.org
+
+New Features
+-------------
+
+* Add html language attribute
+* Allow setting 'rel' and 'title' attributes for stylesheets (#551)
+* Add option to style external links
+* Add github, gitlab, bitbucket page arguments option
+* Add pygments support
+* Add setuptools entry point allowing to use ``sphinx_rtd_theme`` as
+ Sphinx ``html_theme`` directly.
+* Add language to the JS output variable
+
+Fixes
+-----
+
+* Fix some HTML warnings and errors
+* Fix many styling issues
+* Fix many sidebar glitches
+* Fix line number spacing to align with the code lines
+* Hide Edit links on auto created pages
+* Include missing font files with the theme
+
+Other Changes
+--------------
+
+* Significant improvement of our documentation
+* Compress our Javascript files
+* Updated dependencies
+
+0.2.4
+=====
+
+* Yet another patch to deal with extra builders outside Spinx, such as the
+ singlehtml builders from the Read the Docs Sphinx extension
+
+0.2.3
+=====
+
+* Temporarily patch Sphinx issue with ``singlehtml`` builder by inspecting the
+ builder in template.
+
+0.2.2
+=====
+
+* Roll back toctree fix in 0.2.1 (#367). This didn't fix the issue and
+ introduced another bug with toctrees display.
+
+0.2.1
+=====
+
+* Add the ``rel`` HTML attribute to the footer links which point to
+ the previous and next pages.
+* Fix toctree issue caused by Sphinx singlehtml builder (#367)
+
+0.2.0
+=====
+
+* Adds the ``comments`` block after the ``body`` block in the template
+* Added "Edit on GitLab" support
+* Many bug fixes
+
+0.1.10-alpha
+============
+
+.. note:: This is a pre-release version
+
+* Removes Sphinx dependency
+* Fixes hamburger on mobile display
+* Adds a ``body_begin`` block to the template
+* Added ``prev_next_buttons_location``
+
+0.1.9
+=====
+
+* Intermittent scrollbar visibility bug fixed. This change introduces a
+ backwards incompatible change to the theme's layout HTML. This should only be
+ a problem for derivative themes that have overridden styling of nav elements
+ using direct descendant selectors. See `#215`_ for more information.
+* Safari overscroll bug fixed
+* Version added to the nav header
+* Revision id was added to the documentation footer if you are using RTD
+* An extra block, ``extrafooter`` was added to allow extra content in the
+ document footer block
+* Fixed modernizr URL
+* Small display style changes on code blocks, figure captions, and nav elements
+
+.. _#215: https://github.com/rtfd/sphinx_rtd_theme/pull/215
+
+0.1.8
+=====
+
+* Start keeping changelog :)
+* Support for third and fourth level headers in the sidebar
+* Add support for Sphinx 1.3
+* Add sidebar headers for :caption: in Sphinx toctree
+* Clean up sidebar scrolling behavior so it never scrolls out of view
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..25d002c
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,116 @@
+# -*- coding: utf-8 -*-
+
+import sys
+import os
+import re
+
+# Prefer to use the version of the theme in this repo
+# and not the installed version of the theme.
+sys.path.insert(0, os.path.abspath('..'))
+sys.path.append(os.path.abspath('./demo/'))
+
+from sphinx_rtd_theme import __version__ as theme_version
+from sphinx_rtd_theme import __version_full__ as theme_version_full
+from sphinx.locale import _
+
+project = u'Read the Docs Sphinx Theme'
+slug = re.sub(r'\W+', '-', project.lower())
+version = theme_version
+release = theme_version_full
+author = u'Dave Snider, Read the Docs, Inc. & contributors'
+copyright = author
+language = 'en'
+
+extensions = [
+ 'sphinx.ext.intersphinx',
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.autosummary',
+ 'sphinx.ext.mathjax',
+ 'sphinx.ext.viewcode',
+ 'sphinx_rtd_theme',
+]
+
+templates_path = ['_templates']
+source_suffix = '.rst'
+exclude_patterns = []
+locale_dirs = ['locale/']
+gettext_compact = False
+
+master_doc = 'index'
+suppress_warnings = ['image.nonlocal_uri']
+pygments_style = 'default'
+
+if sys.version_info < (3, 0):
+ tags.add("python2")
+else:
+ tags.add("python3")
+
+intersphinx_mapping = {
+ 'rtd': ('https://docs.readthedocs.io/en/stable/', None),
+ 'rtd-dev': ('https://dev.readthedocs.io/en/stable/', None),
+ 'sphinx': ('https://www.sphinx-doc.org/en/master/', None),
+}
+
+html_theme = 'sphinx_rtd_theme'
+html_theme_options = {
+ 'logo_only': True,
+ 'navigation_depth': 5,
+}
+html_context = {}
+
+if not 'READTHEDOCS' in os.environ:
+ html_static_path = ['_static/']
+ html_js_files = ['debug.js']
+
+ # Add fake versions for local QA of the menu
+ html_context['test_versions'] = list(map(
+ lambda x: str(x / 10),
+ range(1, 100)
+ ))
+
+html_logo = "demo/static/logo-wordmark-light.svg"
+html_show_sourcelink = True
+html_favicon = "demo/static/favicon.ico"
+
+htmlhelp_basename = slug
+
+
+latex_documents = [
+ ('index', '{0}.tex'.format(slug), project, author, 'manual'),
+]
+
+man_pages = [
+ ('index', slug, project, [author], 1)
+]
+
+texinfo_documents = [
+ ('index', slug, project, author, slug, project, 'Miscellaneous'),
+]
+
+
+# Extensions to theme docs
+def setup(app):
+ from sphinx.domains.python import PyField
+ from sphinx.util.docfields import Field
+
+ app.add_object_type(
+ 'confval',
+ 'confval',
+ objname='configuration value',
+ indextemplate='pair: %s; configuration value',
+ doc_field_types=[
+ PyField(
+ 'type',
+ label=_('Type'),
+ has_arg=False,
+ names=('type',),
+ bodyrolename='class'
+ ),
+ Field(
+ 'default',
+ label=_('Default'),
+ has_arg=False,
+ names=('default',),
+ ),
+ ]
+ )
diff --git a/docs/configuring.rst b/docs/configuring.rst
new file mode 100644
index 0000000..7e22c5b
--- /dev/null
+++ b/docs/configuring.rst
@@ -0,0 +1,236 @@
+*************
+Configuration
+*************
+
+Theme options
+=============
+
+The following options can be defined in your project's ``conf.py`` file, using
+the :confval:`html_theme_options <sphinx:html_theme_options>` configuration option.
+
+For example:
+
+.. code:: python
+
+ html_theme_options = {
+ 'analytics_id': 'G-XXXXXXXXXX', # Provided by Google in your dashboard
+ 'analytics_anonymize_ip': False,
+ 'logo_only': False,
+ 'display_version': True,
+ 'prev_next_buttons_location': 'bottom',
+ 'style_external_links': False,
+ 'vcs_pageview_mode': '',
+ 'style_nav_header_background': 'white',
+ # Toc options
+ 'collapse_navigation': True,
+ 'sticky_navigation': True,
+ 'navigation_depth': 4,
+ 'includehidden': True,
+ 'titles_only': False
+ }
+
+Table of contents options
+-------------------------
+
+The following options change how :rst:dir:`sphinx:toctree` directives generate
+documentation navigation.
+
+.. confval:: collapse_navigation
+
+ With this enabled, navigation entries are not expandable -- the ``[+]``
+ icons next to each entry are removed.
+
+ :type: boolean
+ :default: ``True``
+
+ .. note::
+ Setting :confval:`collapse_navigation` to ``False`` and using a high value
+ for :confval:`navigation_depth` on projects with many files and a deep file
+ structure can cause long compilation times and can result in HTML files that
+ are significantly larger in file size.
+
+.. confval:: sticky_navigation
+
+ Scroll the navigation with the main page content as you scroll the page.
+
+ :type: boolean
+ :default: ``True``
+
+.. confval:: navigation_depth
+
+ The maximum depth of the table of contents tree. Set
+ this to ``-1`` to allow unlimited depth.
+
+ :type: integer
+ :default: ``4``
+
+.. confval:: includehidden
+
+ Specifies if the navigation includes hidden table(s) of contents -- that is,
+ any :rst:dir:`sphinx:toctree` directive that is marked with the ``:hidden:``
+ option.
+
+ :type: boolean
+ :default: ``True``
+
+.. confval:: titles_only
+
+ When enabled, page subheadings are not included in the
+ navigation.
+
+ :type: boolean
+ :default: False
+
+.. _table of contents configuration options: http://www.sphinx-doc.org/en/stable/templating.html#toctree
+
+
+..
+ TODO
+ .
+ HTML context options
+ ~~~~~~~~~~~~~~~~~~~~
+
+
+Miscellaneous options
+---------------------
+
+.. confval:: analytics_id
+
+ If specified, Google Analytics' `gtag.js`_ is included in your pages.
+ Set the value to the ID provided to you by google (like ``UA-XXXXXXX`` or ``G-XXXXXXXXXX``).
+
+ :type: string
+
+ .. _gtag.js: https://developers.google.com/gtagjs
+
+.. confval:: analytics_anonymize_ip
+
+ Anonymize visitor IP addresses in Google Analytics.
+
+ :type: boolean
+ :default: ``False``
+
+.. confval:: canonical_url
+
+ This will specify a `canonical URL`_ meta link element to tell search
+ engines which URL should be ranked as the primary URL for your
+ documentation. This is important if you have multiple URLs that your
+ documentation is available through. The URL points to the root path of the
+ documentation and requires a trailing slash.
+
+ :type: URL
+
+ .. deprecated:: 0.6.0
+
+ Use :confval:`sphinx:html_baseurl` instead.
+
+ .. _canonical URL: https://en.wikipedia.org/wiki/Canonical_link_element
+
+.. confval:: display_version
+
+ If ``True``, the version number is shown at the top of the sidebar.
+
+ :type: boolean
+ :default: ``True``
+
+.. confval:: logo_only
+
+ Only display the logo image, do not display the project name at the top of
+ the sidebar
+
+ :type: boolean
+ :default: ``False``
+
+.. confval:: prev_next_buttons_location
+
+ Location to display :guilabel:`Next` and :guilabel:`Previous` buttons. This
+ can be either ``bottom``, ``top``, ``both`` , or ``None``.
+
+ :type: string
+ :default: ``bottom``
+
+.. confval:: style_external_links
+
+ Add an icon next to external links.
+
+ :type: boolean
+ :default: ``False``
+
+.. confval:: vcs_pageview_mode
+
+ Changes how to view files when using ``display_github``, ``display_gitlab``,
+ etc. When using GitHub or GitLab this can be: ``blob`` (default), ``edit``,
+ or ``raw``. On Bitbucket, this can be either: ``view`` (default) or
+ ``edit``.
+
+ :type: string
+ :default: ``blob`` or ``view``
+
+.. confval:: style_nav_header_background
+
+ Changes the background of the search area in the navigation bar. The value
+ can be anything valid in a CSS `background` property.
+
+ :type: string
+ :default: ``#2980B9``
+
+
+File-wide metadata
+==================
+
+The following options can be used as :ref:`file-wide metadata
+<sphinx:metadata>`:
+
+.. confval:: github_url
+
+ Force the :guilabel:`Edit on GitHub` button to use the configured URL.
+
+.. confval:: bitbucket_url
+
+ Force the :guilabel:`Edit on Bitbucket` button to use the configured URL.
+
+.. confval:: gitlab_url
+
+ Force the :guilabel:`Edit on GitLab` button to use the configured URL.
+
+Other configuration
+===================
+
+Adding a logo
+-------------
+
+Using the Sphinx standard option :py:confval:`html_logo <sphinx:html_logo>`,
+you can set an image file to be used as a logo at the top of the sidebar. The
+theme option :py:confval:`logo_only` also allows for *only* the logo to be shown
+at the top of the sidebar.
+
+Adding custom CSS or Javascript
+-------------------------------
+
+Adding custom CSS or Javascript can help you alter the look and feel of this
+theme without forking the theme for local use.
+
+In order to add custom CSS or Javascript without disrupting the existing theme
+files, you can :doc:`add files to be included in your documentation output
+<rtd:guides/adding-custom-css>`.
+
+How the table of contents displays
+==================================
+
+Currently the left menu will build based upon any ``toctree`` directives defined
+in your source files. It outputs 4 levels of depth by default, to allow for
+quick navigation through topics. If no TOC trees are defined, Sphinx's default
+behavior is to use the page headings instead.
+
+It's important to note that if you don't follow the same styling for your reST
+headings across your documents, the TOC tree will build incorrectly, and the
+resulting menu might not show the correct depth when it renders.
+
+Also note that by default the table of contents is set with
+``includehidden=True``. This allows you to set a hidden TOC in your index file
+with the :ref:`:hidden: <sphinx:toctree-directive>` property that will allow you
+to build a TOC without it rendering in your index.
+
+By default, the navigation will "stick" to the screen as you scroll. However if
+your TOC is not tall enough, it will revert to static positioning. To disable the
+sticky navigation altogether, change the :confval:`sticky_navigation` theme option.
diff --git a/docs/contributing.rst b/docs/contributing.rst
new file mode 100644
index 0000000..dd2eac1
--- /dev/null
+++ b/docs/contributing.rst
@@ -0,0 +1,265 @@
+************
+Contributing
+************
+
+This project follows the Read the Docs :doc:`code of conduct
+<rtd-dev:code-of-conduct>`. If you are not familiar with our code of conduct policy,
+take a minute to read the policy before starting with your first contribution.
+
+.. tip::
+ There is a new dockerized build environment, see :ref:`dockerized-build`.
+
+Modifying the theme
+===================
+
+The styles for this theme use SASS_ and a custom CSS framework called Wyrm_. We
+use Webpack_ and node-sass_ to build the CSS. Webpack_ is used to watch for
+changes, rebuild the static assets, and rebuild the Sphinx demo documentation.
+
+.. note::
+ The installation of Node is outside the scope of this documentation. You
+ will need Node version 10+ in order to make changes to this theme.
+
+Set up your environment
+-----------------------
+
+#. Install Sphinx_ and documentation build dependencies.
+
+ .. code:: console
+
+ $ pip install -e '.[dev]'
+
+#. Install Webpack_, node-sass_, and theme dependencies locally.
+
+ .. code:: console
+
+ $ npm install
+
+Making changes
+--------------
+
+Changes to the theme can be compiled and tested with Webpack_:
+
+.. code:: console
+
+ $ npm run dev
+
+This script will do the following:
+
+#. Install and update any dependencies.
+#. Build the static CSS from SASS source files.
+#. Build the demo documentation.
+#. Watch for changes to the SASS files and documentation and rebuild everything
+ on any detected changes.
+
+Alternatively, if you don't need to watch the files, the release build script
+can be used to test built assets:
+
+.. code:: console
+
+ $ npm run build
+
+.. _Webpack: https://webpack.js.org/
+.. _node-sass: https://github.com/sass/node-sass
+.. _SASS: http://www.sass-lang.com
+.. _Wyrm: http://www.github.com/snide/wyrm/
+.. _Sphinx: http://www.sphinx-doc.org/en/stable/
+
+
+.. _dockerized-build:
+
+Dockerized development
+======================
+
+If you have Docker available on your platform, you can get started building CSS and JS artifacts a bit faster and won't have to worry about any of the setup spilling over into your general environment.
+
+When building with Docker, we create an image containing the build dependencies. Some of these are quite outdated and therefore ideal to isolate a container. The image is tagged as ``sphinx_rtd_theme:latest``.
+
+Inside the running docker image, we mount the working copy of the repository, build the artifacts and finally observe that the artifacts have been built and left in your current git checkout.
+
+Use the following steps:
+
+.. code-block:: console
+
+ # Builds an updated version of the docker image
+ $ docker-compose build
+
+ # Runs the development webserver
+ $ docker-compose run sphinx_rtd_theme dev
+
+ # If you want to copy stuff out of the Docker environment, run this make
+ # target or read the actual Makefile to see what is going on.
+ # We suggest running this command every time that you want to quickly build
+ # new CSS/JS assets
+ $ make docker-build-all
+
+Every time you change the Node or Python requirements, you will need to rebuild images with ``docker-compose run sphinx_rtd_theme build``. If you change SASS or JS, you will need to rebuild assets.
+
+Testing
+=======
+
+QA testing theme changes and pull requests is complex, due to backwards
+compatibility.
+
+The following cases need to be tested with changes to CSS or JavaScript:
+
+* Multiple, modern browsers should be tested.
+* Multiple viewport sizes should be tested for changes.
+ We support large, tablet, and mobile viewport sizes
+* We currently support only HTML5 writer.
+* Multiple major versions of Sphinx should be tested.
+ We currently support Sphinx ``>=5.0``
+
+It's easiest to test combinations of dependency versions using ``tox``:
+
+.. code:: console
+
+ % tox -e py310-sphinx62
+
+If the tests and build are successful, you can view the built documentation at
+the directory noted by Sphinx:
+
+.. code:: console
+
+ build succeeded, 10 warnings.
+
+ The HTML pages are in .tox/py310-sphinx62/tmp/html.
+ ___________________________ summary ___________________________
+ py310-sphinx62: commands succeeded
+ congratulations :)
+
+You can then open up this path with a series of browsers to test.
+
+The best way to spot UI issues is to compare two or more builds. You can build
+multiple ``tox`` environments, and open both up for comparison:
+
+.. code:: console
+
+ % tox -e py310-sphinx62
+ ...
+ % tox -e py310-sphinx53
+ ...
+ % firefox .tox/py310-sphinx62/tmp/html/index.html
+ % firefox .tox/py310-sphinx53/tmp/html/index.html
+
+You can also use a separate ``tox`` environment for building output to compare
+against. All of the ``tox`` environments have an additional postfix, ``-qa``, to
+allow building the same environment twice, without overwriting any files. In
+this test scenario, you would build from a branch or tag before building the
+same ``tox`` environment for the pull request branch you are testing.
+
+For example, to test against the tag ``0.5.2``:
+
+.. code:: console
+
+ % git checkout 0.5.2
+ % tox -e py310-sphinx53-qa
+ ...
+ % git checkout feature/example-pull-request
+ % tox -e py310-sphinx53
+ ...
+ % firefox .tox/py310-sphinx53-qa/tmp/html/index.html
+ % firefox .tox/py310-sphinx53/tmp/html/index.html
+
+Currently, the most important environments to QA are:
+
+.. This list is purposely shorter than what we describe above. If we test all of
+ the cases above, we'll be here all day. Python 3, and latest
+ minor of each major Sphinx release should give us enough work.
+
+* ``py310-sphinx53``
+* ``py310-sphinx62``
+* ``py310-sphinx72``
+* ``py310-sphinxlatest``
+* ``py310-sphinxdev``
+
+Translations
+============
+
+Translations are managed using `Transifex`_. You can join any of the existing
+language teams or request a new language is added to the project. For more
+information on our translation standards, see our docs on
+:doc:`rtd-dev:i18n`
+
+Periodically, core team should update the translation files outside our normal
+releases. Someone from the core team, with write access to Transifex, should run
+the following:
+
+.. code:: console
+
+ $ python setup.py update_translations
+
+This will extract new messages, upload the messages to Transifex, and will
+update our local translation files. Changes can be checked in to a branch and
+put up for review.
+
+.. _Transifex: https://www.transifex.com/readthedocs/sphinx-rtd-theme
+
+Versioning
+==========
+
+..
+ TODO make these instructions organization wide. We've talked about
+ standardizing packaging version and tooling here (bumpver instead of
+ bump2version).
+
+In between releases, the package version specified will always be a alpha
+release, matching ``1.1.1alpha1``.
+
+As pull requests are merged and the release impact changes, this version will
+incremented ahead of release. For example, if we merge a new feature pull
+request, we'd run ``bump2version minor`` to increment ``1.1.1alpha1`` to
+``1.2.0alpha1``.
+
+To put out a release for testing, we will upload a release candidate. We would
+run ``bump2version release`` to increment ``1.2.0alpha1`` to ``1.2.0rc1``.
+
+After a testing period, the release candidate can become a full release. We
+would run ``bump2version release`` again to increment ``1.2.0rc1`` to ``1.2.0``.
+
+After the release process below, we increment the version again, so that the
+development version -- the version found in the repository -- is always greater
+than the most recent release. We follow up with another pull request by running
+``bump2version patch``, which increments ``1.2.0`` to ``1.2.1alpha1``.
+
+Releasing the theme
+===================
+
+To release a new version of the theme, core team will take the following steps:
+
+#. Bump the version by running ``bump2version [major|minor|patch|dev]``.
+ This will automatically increase the correct part(s) of the version number,
+ you do not need to specify the exact version number.
+ We follow `semantic versioning`_ and `PEP440`_
+ (with regards to alpha release and development versions). The version
+ increment should reflect these releases and any potentially breaking changes.
+#. New versions are by default ``alpha`` releases. If this is a release candidate,
+ run ``bump2version --allow-dirty release`` to update the release to an ``rc``
+ release. If this is a final release, run the command again.
+#. Update the changelog (``docs/changelog.rst``) with the version information.
+#. Run ``python setup.py update_translations`` to compile new translation files
+ and update Transifex.
+#. Run ``npm install && npm run build`` to rebuild all the theme assets,
+ notice that ``package-lock.json`` will be updated with a new package
+ version. But take care that it isn't also bumping versions of dependencies
+ in ways that are risky to the release. *If* ``package-lock.json`` changes, you
+ need to commit it to git and tag it together with your release.
+#. Commit these changes to a pull request.
+#. Merge the pull request after review.
+#. Check out ``master`` branch locally for tagging. **Remember to pull from remote**.
+#. Tag the release in git: ``git tag -s $NEW_VERSION``.
+#. Push the tag to GitHub: ``git push --tags origin``.
+#. Upload the package to PyPI:
+
+ .. code:: console
+
+ $ rm -rf dist/
+ $ python setup.py sdist bdist_wheel
+ $ twine upload --sign --identity security@readthedocs.org dist/*
+
+#. Finally, open a new pull request updating the development release version to
+ the next patch by running ``bump2version patch``. Open a pull request with
+ this change. See `Versioning`_ above for more details.
+
+.. _PEP440: https://www.python.org/dev/peps/pep-0440/
+.. _semantic versioning: http://semver.org/
diff --git a/docs/demo/api.rst b/docs/demo/api.rst
new file mode 100644
index 0000000..6c3163d
--- /dev/null
+++ b/docs/demo/api.rst
@@ -0,0 +1,152 @@
+***************************************
+API documentation and generated content
+***************************************
+
+.. contents:: Table of Contents
+
+:mod:`test_py_module`
+=====================
+
+.. automodule:: test_py_module.test
+ :members:
+ :private-members:
+ :special-members:
+
+
+C++ API
+=======
+
+.. cpp:type:: MyType
+
+ Some type
+
+.. cpp:function:: const MyType Foo(const MyType bar)
+
+ Some function type thing
+
+.. cpp:class:: template<typename T, std::size_t N> std::array
+
+ Some cpp class
+
+.. cpp:member:: float Sphinx::version
+
+ The description of Sphinx::version.
+
+.. cpp:var:: int version
+
+ The description of version.
+
+.. cpp:type:: std::vector<int> List
+
+ The description of List type.
+
+.. cpp:enum:: MyEnum
+
+ An unscoped enum.
+
+ .. cpp:enumerator:: A
+
+.. cpp:enum-class:: MyScopedEnum
+
+ A scoped enum.
+
+ .. cpp:enumerator:: B
+
+.. cpp:enum-struct:: protected MyScopedVisibilityEnum : std::underlying_type<MySpecificEnum>::type
+
+ A scoped enum with non-default visibility, and with a specified underlying type.
+
+ .. cpp:enumerator:: B
+
+
+JavaScript API
+==============
+
+.. Copied from sphinx-doc/sphinx/tests/roots
+
+.. js:module:: module_a.submodule
+
+* Link to :js:class:`ModTopLevel`
+
+.. js:class:: ModTopLevel
+
+ * Link to :js:meth:`mod_child_1`
+ * Link to :js:meth:`ModTopLevel.mod_child_1`
+
+.. js:method:: ModTopLevel.mod_child_1
+
+ * Link to :js:meth:`mod_child_2`
+
+.. js:method:: ModTopLevel.mod_child_2
+
+ * Link to :js:meth:`module_a.submodule.ModTopLevel.mod_child_1`
+
+.. js:module:: module_b.submodule
+
+* Link to :js:class:`ModTopLevel`
+
+.. js:class:: ModNested
+
+ .. js:method:: nested_child_1
+
+ * Link to :js:meth:`nested_child_2`
+
+ .. js:method:: nested_child_2
+
+ * Link to :js:meth:`nested_child_1`
+
+
+Generated Index
+===============
+
+Part of the sphinx build process is to generate an index file: :ref:`genindex`.
+
+
+Optional parameter args
+=======================
+
+At this point optional parameters `cannot be generated from code`_.
+However, some projects will manually do it, like so:
+
+This example comes from `django-payments module docs`_.
+
+.. class:: payments.dotpay.DotpayProvider(seller_id, pin[, channel=0[, lock=False], lang='pl'])
+
+ This backend implements payments using a popular Polish gateway, `Dotpay.pl <http://www.dotpay.pl>`_.
+
+ Due to API limitations there is no support for transferring purchased items.
+
+
+ :param seller_id: Seller ID assigned by Dotpay
+ :param pin: PIN assigned by Dotpay
+ :param channel: Default payment channel (consult reference guide)
+ :param lang: UI language
+ :param lock: Whether to disable channels other than the default selected above
+
+.. _cannot be generated from code: https://groups.google.com/forum/#!topic/sphinx-users/_qfsVT5Vxpw
+.. _django-payments module docs: http://django-payments.readthedocs.org/en/latest/modules.html#payments.authorizenet.AuthorizeNetProvide
+
+
+Data
+====
+
+.. data:: Data_item_1
+ Data_item_2
+ Data_item_3
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce congue elit eu hendrerit mattis.
+
+Some data link :data:`Data_item_1`.
+
+
+Sphinx Extensions
+=================
+
+sphinx.ext.autosummary
+----------------------
+
+.. autosummary::
+
+ test_py_module.test.add_numbers
+ test_py_module.test.subtract_numbers
+ test_py_module.test.Foo
diff --git a/docs/demo/demo.rst b/docs/demo/demo.rst
new file mode 100644
index 0000000..e9f470d
--- /dev/null
+++ b/docs/demo/demo.rst
@@ -0,0 +1,477 @@
+.. This is a comment. Note how any initial comments are moved by
+ transforms to after the document title, subtitle, and docinfo.
+
+.. demo.rst from: http://docutils.sourceforge.net/docs/user/rst/demo.txt
+
+.. |EXAMPLE| image:: static/yi_jing_01_chien.jpg
+ :width: 1em
+
+**********************
+Paragraph Level Markup
+**********************
+
+.. contents:: Table of Contents
+
+Inline Markup
+=============
+
+Paragraphs contain text and may contain inline markup: *emphasis*, **strong emphasis**, ``inline literals``,
+standalone hyperlinks (http://www.python.org), external hyperlinks (Python_), internal cross-references (example_),
+external hyperlinks with embedded URIs (`Python web site <http://www.python.org>`__), footnote references
+(manually numbered [1]_, anonymous auto-numbered [#]_, labeled auto-numbered [#label]_, or symbolic [*]_),
+citation references ([12]_), substitution references (|example|), and _`inline hyperlink targets`
+(see Targets_ below for a reference back to here). Character-level inline markup is also possible
+(although exceedingly ugly!) in *re*\ ``Structured``\ *Text*. Problems are indicated by |problematic|
+text (generated by processing errors; this one is intentional).
+
+Also with ``sphinx.ext.autodoc``, which I use in the demo, I can link to :class:`test_py_module.test.Foo`.
+It will link you right to my code documentation for it.
+
+The default role for [1]_ interpreted text is `Title Reference`. Here are some explicit interpreted text roles:
+a PEP reference (:PEP:`287`); an RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`;
+and explicit roles for :emphasis:`standard` :strong:`inline` :literal:`markup`.
+
+GUI labels are a useful way to indicate that :guilabel:`Some action` is to be taken by the user.
+The GUI label should not run over ``line-height`` so as not to :guilabel:`interfere` with text from adjacent lines.
+
+Key-bindings indicate that [1]_ the read is to press a button on the keyboard or mouse,
+for example :kbd:`MMB` and :kbd:`Shift-MMB`. Another useful markup to indicate a user action
+is to use ``menuselection`` this [1]_ can [1]_ be [1]_ used [1]_ to [1]_ show [1]_ short [1]_ and long menus in software.
+For example, and ``menuselection`` can be seen here that breaks is too long to fit on this line.
+:menuselection:`My --> Software --> Some menu --> Some sub menu 1 --> sub menu 2`.
+
+.. DO NOT RE-WRAP THE FOLLOWING PARAGRAPH!
+
+Let's test wrapping and whitespace significance in inline literals:
+``This is an example of --inline-literal --text, --including some--
+strangely--hyphenated-words. Adjust-the-width-of-your-browser-window
+to see how the text is wrapped. -- ---- -------- Now note the
+spacing between the words of this sentence (words
+should be grouped in pairs).``
+
+If the ``--pep-references`` option was supplied, there should be a live link to PEP 258 here.
+
+.. regression test for https://github.com/readthedocs/sphinx_rtd_theme/pull/1193
+
+Very long URLs should be wrapped so lines do not overflow and cause horizontal scrolling: https://www.google.com/search?hl=en&q=very%20long%20url%20example%20of%20a%20url%20that%20is%20extremely%20long%20you%20probably%20want%20to%20avoid%20it%20but%20here%20we%20are
+
+Math
+====
+
+This is a test. Here is an equation:
+:math:`X_{0:5} = (X_0, X_1, X_2, X_3, X_4)`.
+Here is another:
+
+.. math::
+ :label: This is a label
+
+ \nabla^2 f =
+ \frac{1}{r^2} \frac{\partial}{\partial r}
+ \left( r^2 \frac{\partial f}{\partial r} \right) +
+ \frac{1}{r^2 \sin \theta} \frac{\partial f}{\partial \theta}
+ \left( \sin \theta \, \frac{\partial f}{\partial \theta} \right) +
+ \frac{1}{r^2 \sin^2\theta} \frac{\partial^2 f}{\partial \phi^2}
+
+You can add a link to equations like the one above :eq:`This is a label` by using ``:eq:``.
+
+Meta
+====
+
+.. meta::
+ :keywords: reStructuredText, demonstration, demo, parser
+ :description lang=en: A demonstration of the reStructuredText
+ markup language, containing examples of all basic
+ constructs and many advanced constructs.
+
+Blocks
+======
+
+Literal Blocks
+--------------
+
+Literal blocks are indicated with a double-colon ("::") at the end of
+the preceding paragraph (over there ``-->``). They can be indented::
+
+ if literal_block:
+ text = 'is left as-is'
+ spaces_and_linebreaks = 'are preserved'
+ markup_processing = None
+
+Or they can be quoted without indentation::
+
+>> Great idea!
+>
+> Why didn't I think of that?
+
+Line Blocks
+-----------
+
+| This is a line block. It ends with a blank line.
+| Each new line begins with a vertical bar ("|").
+| Line breaks and initial indents are preserved.
+| Continuation lines are wrapped portions of long lines;
+ they begin with a space in place of the vertical bar.
+| The left edge of a continuation line need not be aligned with
+ the left edge of the text above it.
+
+| This is a second line block.
+|
+| Blank lines are permitted internally, but they must begin with a "|".
+
+Take it away, Eric the Orchestra Leader!
+
+ | A one, two, a one two three four
+ |
+ | Half a bee, philosophically,
+ | must, *ipso facto*, half not be.
+ | But half the bee has got to be,
+ | *vis a vis* its entity. D'you see?
+ |
+ | But can a bee be said to be
+ | or not to be an entire bee,
+ | when half the bee is not a bee,
+ | due to some ancient injury?
+ |
+ | Singing...
+
+Block Quotes
+------------
+
+Block quotes consist of indented body elements:
+
+ My theory by A. Elk. Brackets Miss, brackets. This theory goes
+ as follows and begins now. All brontosauruses are thin at one
+ end, much much thicker in the middle and then thin again at the
+ far end. That is my theory, it is mine, and belongs to me and I
+ own it, and what it is too.
+
+ -- Anne Elk (Miss)
+
+Doctest Blocks
+--------------
+
+>>> print 'Python-specific usage examples; begun with ">>>"'
+Python-specific usage examples; begun with ">>>"
+>>> print '(cut and pasted from interactive Python sessions)'
+(cut and pasted from interactive Python sessions)
+
+Code Blocks
+-----------
+
+.. parsed-literal::
+
+ # parsed-literal test
+ curl -O http://someurl/release-|version|.tar-gz
+
+
+.. code-block:: json
+ :caption: Code Blocks can have captions.
+
+ {
+ "windows": [
+ {
+ "panes": [
+ {
+ "shell_command": [
+ "echo 'did you know'",
+ "echo 'you can inline'"
+ ]
+ },
+ {
+ "shell_command": "echo 'single commands'"
+ },
+ "echo 'for panes'"
+ ],
+ "window_name": "long form"
+ }
+ ],
+ "session_name": "shorthands"
+ }
+
+Emphasized lines with line numbers
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: python
+ :linenos:
+ :emphasize-lines: 3,5
+
+ def some_function():
+ interesting = False
+ print 'This line is highlighted.'
+ print 'This one is not...'
+ print '...but this one is.'
+
+Sidebar
+=======
+
+.. sidebar:: Ch'ien / The Creative
+
+ .. image:: static/yi_jing_01_chien.jpg
+
+ *Above* CH'IEN THE CREATIVE, HEAVEN
+
+ *Below* CH'IEN THE CREATIVE, HEAVEN
+
+The first hexagram is made up of six unbroken lines. These unbroken lines stand for the primal power,
+which is light-giving, active, strong, and of the spirit. The hexagram is consistently strong in character,
+and since it is without weakness, its essence is power or energy. Its image is heaven.
+Its energy is represented as unrestricted by any fixed conditions in space and is therefore conceived of as motion.
+Time is regarded as the basis of this motion.
+Thus the hexagram includes also the power of time and the power of persisting in time, that is, duration.
+
+The power represented by the hexagram is to be interpreted in a dual sense in terms of its action
+on the universe and of its action on the world of men. In relation to the universe, the hexagram expresses the strong,
+creative action of the Deity. In relation to the human world, it denotes the creative action of the holy man or sage,
+of the ruler or leader of men, who through his power awakens and develops their higher nature.
+
+Code with Sidebar
+-----------------
+
+.. sidebar:: A code example
+
+ With a sidebar on the right.
+
+.. literalinclude:: test_py_module/test.py
+ :language: python
+ :caption: Literal includes can also have captions.
+ :linenos:
+ :lines: 1-40
+
+References
+==========
+
+Footnotes
+---------
+
+.. [1] A footnote contains body elements, consistently indented by at
+ least 3 spaces.
+
+ This is the footnote's second paragraph.
+
+.. [#label] Footnotes may be numbered, either manually (as in [1]_) or
+ automatically using a "#"-prefixed label. This footnote has a
+ label so it can be referred to from multiple places, both as a
+ footnote reference ([#label]_) and as a hyperlink reference
+ (label_).
+
+.. [#] This footnote is numbered automatically and anonymously using a
+ label of "#" only.
+
+.. [*] Footnotes may also use symbols, specified with a "*" label.
+ Here's a reference to the next footnote: [*]_.
+
+.. [*] This footnote shows the next symbol in the sequence.
+
+.. [4] Here's an unreferenced footnote, with a reference to a
+ nonexistent footnote: [5]_.
+
+Citations
+---------
+
+.. [Citation] This is the citation I made, let's make this extremely long so that we can tell that it doesn't follow the normal responsive table stuff.
+
+.. [12] This citation has some ``code blocks`` in it, maybe some **bold** and
+ *italics* too. Heck, lets put a link to a meta citation [13]_ too.
+
+.. [13] This citation will have two backlinks.
+
+
+Here's a reference to the above, [Citation]_, and a [nonexistent]_ citation.
+
+Glossary
+--------
+
+This is a glossary with definition terms for thing like :term:`Writing`:
+
+.. glossary::
+
+ Documentation
+ Provides users with the knowledge they need to use something.
+
+ Reading
+ The process of taking information into ones mind through the use of eyes.
+
+ Writing
+ The process of putting thoughts into a medium for other people to :term:`read <Reading>`.
+
+Targets
+-------
+
+.. _example:
+
+This paragraph is pointed to by the explicit "example" target.
+A reference can be found under `Inline Markup`_, above. `Inline
+hyperlink targets`_ are also possible.
+
+Section headers are implicit targets, referred to by name. See
+Targets_, which is a subsection of `References`_.
+
+Explicit external targets are interpolated into references such as "Python_".
+
+.. _Python: http://www.python.org/
+
+Targets may be indirect and anonymous. Thus `this phrase`__ may also
+refer to the Targets_ section.
+
+__ Targets_
+
+Here's a `hyperlink reference without a target`_, which generates an error.
+
+
+Directives
+==========
+
+Contents
+--------
+
+.. contents:: :local:
+
+These are just a sample of the many reStructuredText Directives. For others, please see:
+http://docutils.sourceforge.net/docs/ref/rst/directives.html.
+
+
+Centered text
+-------------
+
+You can create a statement with centered text with ``.. centered::``
+
+.. centered:: This is centered text!
+
+Images & Figures
+----------------
+
+Images
+^^^^^^
+
+An image directive (also clickable -- a hyperlink reference):
+
+.. image:: static/yi_jing_01_chien.jpg
+ :target: directives_
+
+Figures
+^^^^^^^
+
+.. figure:: static/yi_jing_01_chien.jpg
+ :alt: reStructuredText, the markup syntax
+
+ A figure is an image with a caption and/or a legend:
+
+ +------------+-----------------------------------------------+
+ | re | Revised, revisited, based on 're' module. |
+ +------------+-----------------------------------------------+
+ | Structured | Structure-enhanced text, structuredtext. |
+ +------------+-----------------------------------------------+
+ | Text | Well it is, isn't it? |
+ +------------+-----------------------------------------------+
+
+ This paragraph is also part of the legend.
+
+A figure directive with center alignment
+
+.. figure:: static/yi_jing_01_chien.jpg
+ :align: center
+
+ This caption should be centered.
+
+Admonitions
+-----------
+
+.. Attention:: Directives at large.
+
+.. Caution:: Don't take any wooden nickels.
+
+.. DANGER:: Mad scientist at work!
+
+.. Error:: Does not compute.
+
+.. Hint:: It's bigger than a bread box.
+
+.. Important::
+ - Wash behind your ears.
+ - Clean up your room.
+
+ - Including the closet.
+ - The bathroom too.
+
+ - Take the trash out of the bathroom.
+ - Clean the sink.
+ - Call your mother.
+ - Back up your data.
+
+.. Note:: This is a note.
+ Equations within a note:
+ :math:`G_{\mu\nu} = 8 \pi G (T_{\mu\nu} + \rho_\Lambda g_{\mu\nu})`.
+
+.. Tip:: 15% if the service is good.
+
+ +---------+
+ | Example |
+ +=========+
+ | Thing1 |
+ +---------+
+ | Thing2 |
+ +---------+
+ | Thing3 |
+ +---------+
+
+.. WARNING:: Strong prose may provoke extreme mental exertion.
+ Reader discretion is strongly advised.
+
+.. admonition:: And, by the way...
+
+ You can make up your own admonition too.
+
+Topics, Sidebars, and Rubrics
+-----------------------------
+
+.. sidebar:: Sidebar Title
+ :subtitle: Optional Subtitle
+
+ This is a sidebar. It is for text outside the flow of the main
+ text.
+
+ .. rubric:: This is a rubric inside a sidebar
+
+ Sidebars often appears beside the main text with a border and
+ background color.
+
+.. topic:: Topic Title
+
+ This is a topic.
+
+.. rubric:: This is a rubric
+
+Target Footnotes
+----------------
+
+.. target-notes::
+
+Replacement Text
+----------------
+
+I recommend you try |Python|_.
+
+.. |Python| replace:: Python, *the* best language around
+
+Compound Paragraph
+------------------
+
+.. compound::
+
+ This paragraph contains a literal block::
+
+ Connecting... OK
+ Transmitting data... OK
+ Disconnecting... OK
+
+ and thus consists of a simple paragraph, a literal block, and
+ another simple paragraph. Nonetheless it is semantically *one*
+ paragraph.
+
+This construct is called a *compound paragraph* and can be produced
+with the "compound" directive.
+
+Download Links
+==============
+
+:download:`This long long long long long long long long long long long long long long long download link should be blue, normal weight text with a leading icon, and should wrap white-spaces <static/yi_jing_01_chien.jpg>`
diff --git a/docs/demo/level1/index.rst b/docs/demo/level1/index.rst
new file mode 100644
index 0000000..e210638
--- /dev/null
+++ b/docs/demo/level1/index.rst
@@ -0,0 +1,9 @@
+
+******************
+Breadcrumb Level 1
+******************
+
+ .. toctree::
+ :maxdepth: 3
+
+ level2/index.rst
diff --git a/docs/demo/level1/level2/index.rst b/docs/demo/level1/level2/index.rst
new file mode 100644
index 0000000..26931c7
--- /dev/null
+++ b/docs/demo/level1/level2/index.rst
@@ -0,0 +1,9 @@
+
+******************************************
+:mod:`Breadcrumb Level 2 <test_py_module>`
+******************************************
+
+ .. toctree::
+ :maxdepth: 3
+
+ level3/index.rst
diff --git a/docs/demo/level1/level2/level3/index.rst b/docs/demo/level1/level2/level3/index.rst
new file mode 100644
index 0000000..bc3c195
--- /dev/null
+++ b/docs/demo/level1/level2/level3/index.rst
@@ -0,0 +1,9 @@
+
+******************
+Breadcrumb Level 3
+******************
+
+ .. toctree::
+ :maxdepth: 3
+
+ level4/index.rst
diff --git a/docs/demo/level1/level2/level3/level4/index.rst b/docs/demo/level1/level2/level3/level4/index.rst
new file mode 100644
index 0000000..9a8c0fa
--- /dev/null
+++ b/docs/demo/level1/level2/level3/level4/index.rst
@@ -0,0 +1,9 @@
+
+******************
+Breadcrumb Level 4
+******************
+
+ .. toctree::
+ :maxdepth: 3
+
+ level5/index.rst
diff --git a/docs/demo/level1/level2/level3/level4/level5/index.rst b/docs/demo/level1/level2/level3/level4/level5/index.rst
new file mode 100644
index 0000000..ca590c9
--- /dev/null
+++ b/docs/demo/level1/level2/level3/level4/level5/index.rst
@@ -0,0 +1,9 @@
+
+******************
+Breadcrumb Level 5
+******************
+
+ .. toctree::
+ :maxdepth: 3
+
+ level6/index.rst
diff --git a/docs/demo/level1/level2/level3/level4/level5/level6/index.rst b/docs/demo/level1/level2/level3/level4/level5/level6/index.rst
new file mode 100644
index 0000000..c9419dd
--- /dev/null
+++ b/docs/demo/level1/level2/level3/level4/level5/level6/index.rst
@@ -0,0 +1,4 @@
+
+******************
+Breadcrumb Level 6
+******************
diff --git a/docs/demo/lists_tables.rst b/docs/demo/lists_tables.rst
new file mode 100644
index 0000000..d63cf47
--- /dev/null
+++ b/docs/demo/lists_tables.rst
@@ -0,0 +1,371 @@
+
+**************
+Lists & Tables
+**************
+
+.. contents:: Table of Contents
+
+Lists
+=====
+
+Enumerated Lists
+----------------
+
+1. Arabic numerals.
+
+ a) lower alpha)
+
+ (i) (lower roman)
+
+ A. upper alpha.
+
+ I) upper roman)
+
+2. Lists that don't start at 1:
+
+ 3. Three
+
+ 4. Four
+
+ C. C
+
+ D. D
+
+ iii. iii
+
+ iv. iv
+
+#. List items may also be auto-enumerated.
+
+Definition Lists
+----------------
+
+Term
+ Definition
+Term : classifier
+ Definition paragraph 1.
+
+ Definition paragraph 2.
+Term
+ Definition
+
+I have no clue why the definition list below is classified as a different style
+of definition list than the one above.
+
+Is it the spaces in the term?
+ Maybe it was the multiple line paragraph
+ in the line below that caused this?
+
+Is it the paragraph above the list maybe?
+ I guess a lot of these lists don't have leading paragraphs?
+
+Is it everything all at once?
+ Who knows?!
+
+Option Lists
+------------
+
+For listing command-line options:
+
+-a command-line option "a"
+-b file options can have arguments
+ and long descriptions
+--long options can be long also
+--input=file long options can also have
+ arguments
+
+--very-long-option
+ The description can also start on the next line.
+
+ The description may contain multiple body elements,
+ regardless of where it starts.
+
+-x, -y, -z Multiple options are an "option group".
+-v, --verbose Commonly-seen: short & long options.
+-1 file, --one=file, --two file
+ Multiple options with arguments.
+/V DOS/VMS-style options too
+
+There must be at least two spaces between the option and the description.
+
+Field list
+----------
+
+.. bibliographic fields (which also require a transform):
+
+:Author: David Goodger
+:Address: 123 Example Street
+ Example, EX Canada
+ A1B 2C3
+:Contact: docutils-develop@lists.sourceforge.net
+:Authors: Me; Myself; I
+:organization: humankind
+:date: $Date: 2012-01-03 19:23:53 +0000 (Tue, 03 Jan 2012) $
+:status: This is a "work in progress"
+:revision: $Revision: 7302 $
+:version: 1
+:copyright: This document has been placed in the public domain. You
+ may do with it as you wish. You may copy, modify,
+ redistribute, reattribute, sell, buy, rent, lease,
+ destroy, or improve it, quote it at length, excerpt,
+ incorporate, collate, fold, staple, or mutilate it, or do
+ anything else to it that your or anyone else's heart
+ desires.
+:field name: This is a generic bibliographic field.
+:field name 2:
+ Generic bibliographic fields may contain multiple body elements.
+
+ Like this.
+
+:Dedication:
+
+ For Docutils users & co-developers.
+
+:abstract:
+
+ This document is a demonstration of the reStructuredText markup
+ language, containing examples of all basic reStructuredText
+ constructs and many advanced constructs.
+
+Bullet Lists
+------------
+
+..
+ Docutils supports two types of lists, "simple" and "complex". Complex lists
+ have item margins, simple lists do not.
+ https://docutils.sourceforge.io/sandbox/html4strict/data/simple-lists.html
+
+Simple
+^^^^^^
+
+- A simple list.
+- There are no margins between list items.
+- Simple lists do not contain multiple paragraphs. That's a complex list.
+- In the case of a nested list
+
+ - There are no margins between elements
+
+ - Still no margins
+
+ - Still no margins
+
+Complex
+^^^^^^^
+
+- A bullet list
+
+ + Nested bullet list.
+ + Nested item 2.
+
+- Item 2.
+
+ Paragraph 2 of item 2.
+
+ * Nested bullet list.
+ * Nested item 2.
+
+ - Third level.
+ - Item 2.
+
+ * Nested item 3.
+
+- ``inline literall``
+- ``inline literall``
+- ``inline literall``
+- This item has multiple paragraphs.
+
+ This item has multiple paragraphs.
+- This item has multiple paragraphs.
+
+ This item has multiple paragraphs.
+
+
+Second list level
+^^^^^^^^^^^^^^^^^
+
+- here is a list in a second-level section.
+- `yahoo <http://www.yahoo.com>`_
+- `yahoo <http://www.yahoo.com>`_
+
+ - `yahoo <http://www.yahoo.com>`_
+ - here is an inner bullet ``oh``
+
+ - one more ``with an inline literally``. `yahoo <http://www.yahoo.com>`_
+
+ heh heh. child. try to beat this embed:
+
+ .. literalinclude:: test_py_module/test.py
+ :language: python
+ :linenos:
+ :lines: 1-10
+ - and another. `yahoo <http://www.yahoo.com>`_
+ - `yahoo <http://www.yahoo.com>`_
+ - ``hi``
+- how about an admonition?
+
+ .. note::
+ This is a note nested in a list.
+
+- and hehe
+
+But deeper down the rabbit hole
+"""""""""""""""""""""""""""""""
+
+- I kept saying that, "deeper down the rabbit hole". `yahoo <http://www.yahoo.com>`_
+
+ - I cackle at night `yahoo <http://www.yahoo.com>`_.
+- I'm so lonely here in GZ ``guangzhou``
+- A man of python destiny, hopes and dreams. `yahoo <http://www.yahoo.com>`_
+
+ - `yahoo <http://www.yahoo.com>`_
+
+ - `yahoo <http://www.yahoo.com>`_ ``hi``
+ - ``destiny``
+
+Hlists
+------
+
+.. hlist::
+ :columns: 2
+
+ - First item
+ - Second item
+ - Third item
+ - Forth item
+ - Fifth item
+ - Sixths item
+
+.. rubric:: Hlist with images
+
+.. hlist::
+ :columns: 2
+
+ - .. figure:: static/yi_jing_01_chien.jpg
+
+ This is a short caption for a figure.
+
+ - .. figure:: static/yi_jing_01_chien.jpg
+
+ This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+ Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non.
+
+Numbered List
+-------------
+
+#. One,
+#. Two.
+#. Three with long text. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+ Sed feugiat sagittis neque quis eleifend. Duis rutrum lectus sit amet mattis suscipit.
+
+- A) Using bullets and letters. (A)
+- B) Using bullets and letters. (B)
+- C) Using bullets and letters. (C)
+
+Tables
+======
+
+Grid Tables
+-----------
+
+Here's a grid table followed by a simple table:
+
++------------------------+------------+----------+----------+
+| Header row, column 1 | Header 2 | Header 3 | Header 4 |
+| (header rows optional) | | | |
++========================+============+==========+==========+
+| body row 1, column 1 | column 2 | column 3 | column 4 |
++------------------------+------------+----------+----------+
+| body row 2 | Cells may span columns. |
++------------------------+------------+---------------------+
+| body row 3 | Cells may | - Table cells |
++------------------------+ span rows. | - contain |
+| body row 4 | | - body elements. |
++------------------------+------------+----------+----------+
+| body row 5 | Cells may also be | |
+| | empty: ``-->`` | |
++------------------------+-----------------------+----------+
+
+===== ===== ======
+ Inputs Output
+------------ ------
+ A B A or B
+===== ===== ======
+False False False
+True False True
+False True True
+True True True
+===== ===== ======
+
+Giant Tables
+^^^^^^^^^^^^
+
++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+
+| Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 | Header 1 | Header 2 | Header 3 |
++============+============+===========+============+============+===========+============+============+===========+============+============+===========+
+| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 |
++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+
+| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 |
++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+
+| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 |
++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+
+| body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 | body row 1 | column 2 | column 3 |
++------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+------------+------------+-----------+
+
+List Tables
+-----------
+
+.. list-table:: List tables can have captions like this one.
+ :widths: 10 5 10 50
+ :header-rows: 1
+ :stub-columns: 1
+
+ * - List table
+ - Header 1
+ - Header 2
+ - Header 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu.
+ * - Stub Row 1
+ - Row 1
+ - Column 2
+ - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu.
+ * - Stub Row 2
+ - Row 2
+ - Column 2
+ - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu.
+ * - Stub Row 3
+ - Row 3
+ - Column 2
+ - Column 3 long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet mauris arcu.
+
+.. list-table:: This is a list table with images in it.
+
+ * - .. figure:: static/yi_jing_01_chien.jpg
+
+ This is a short caption for a figure.
+
+ - .. figure:: static/yi_jing_01_chien.jpg
+
+ This is a long caption for a figure. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+ Donec porttitor dolor in odio posuere, vitae ornare libero mattis. In lobortis justo vestibulum nibh aliquet, non.
+
+
+Tables with paragraphs
+----------------------
+
+.. regression test for https://github.com/readthedocs/sphinx_rtd_theme/issues/289
+
+Test to see that tables behave well with nested paragraphs.
+
++------------+----------+-------------------------+
+| Precedence | Operator | Description |
++============+==========+=========================+
+| 1 | \:: | Scope resolution |
++------------+----------+-------------------------+
+| 2 | ( ) | Function call |
+| | | |
+| | [ ] | Subscript |
+| | | |
+| | . | Member access |
+| | | |
+| | .{ } | Bit-field concatenation |
++------------+----------+-------------------------+
+
diff --git a/docs/demo/long.rst b/docs/demo/long.rst
new file mode 100644
index 0000000..26b1add
--- /dev/null
+++ b/docs/demo/long.rst
@@ -0,0 +1,214 @@
+
+***************
+Long Sticky Nav
+***************
+
+.. contents:: Table of Contents
+
+This section demonstrates how the 'sticky_navigation' setting behaves when the menu is very long.
+When this section is selected, it will make the menu and the main area scroll when you are at the top of the page.
+
+
+Example Menu 1
+==============
+
+Just a place holder...
+
+
+Example Menu 2
+==============
+
+Just a place holder...
+
+
+Example Menu 3
+==============
+
+Just a place holder...
+
+
+Example Menu 4
+==============
+
+Just a place holder...
+
+
+Example Menu 5
+==============
+
+Just a place holder...
+
+
+Example Menu 6
+==============
+
+Just a place holder...
+
+
+Example Menu 7
+==============
+
+Just a place holder...
+
+
+Example Menu 8
+==============
+
+Just a place holder...
+
+
+Example Menu 9
+==============
+
+Just a place holder...
+
+
+Example Menu 10
+===============
+
+Just a place holder...
+
+
+Example Menu 11
+===============
+
+Just a place holder...
+
+
+Example Menu 12
+===============
+
+Just a place holder...
+
+
+Example Menu 13
+===============
+
+Just a place holder...
+
+
+Example Menu 14
+===============
+
+Just a place holder...
+
+
+Example Menu 15
+===============
+
+Just a place holder...
+
+
+Example Menu 16
+===============
+
+Just a place holder...
+
+
+Example Menu 17
+===============
+
+Just a place holder...
+
+
+Example Menu 18
+===============
+
+Just a place holder...
+
+
+Example Menu 19
+===============
+
+Just a place holder...
+
+
+Example Menu 20
+===============
+
+Just a place holder...
+
+Example Submenu 1
+=================
+
+Just a place holder...
+
+Submenu 1
+---------
+
+Just a place holder...
+
+Subsubmenu 1
+^^^^^^^^^^^^
+
+Just a place holder...
+
+Subsubmenu 2
+^^^^^^^^^^^^
+
+Just a place holder...
+
+Submenu 2
+---------
+
+Just a place holder...
+
+Subsubmenu 1
+^^^^^^^^^^^^
+
+Just a place holder...
+
+Submenu 3
+---------
+
+Just a place holder...
+
+Submenu 4
+---------
+
+Just a place holder...
+
+Submenu 5
+---------
+
+Just a place holder...
+
+Example Submenu 2
+=================
+
+Just a place holder...
+
+Submenu 1
+---------
+
+Just a place holder...
+
+Subsubmenu 1
+^^^^^^^^^^^^
+
+Just a place holder...
+
+Submenu 2
+---------
+
+Just a place holder...
+
+Subsubmenu 1
+^^^^^^^^^^^^
+
+Just a place holder...
+
+Submenu 3
+---------
+
+Just a place holder...
+
+Submenu 4
+---------
+
+Just a place holder...
+
+Submenu 5
+---------
+
+Just a place holder...
diff --git a/docs/demo/static/favicon.ico b/docs/demo/static/favicon.ico
new file mode 100644
index 0000000..42e8969
--- /dev/null
+++ b/docs/demo/static/favicon.ico
Binary files differ
diff --git a/docs/demo/static/logo-wordmark-light.svg b/docs/demo/static/logo-wordmark-light.svg
new file mode 100644
index 0000000..d0cbb66
--- /dev/null
+++ b/docs/demo/static/logo-wordmark-light.svg
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="2000"
+ height="400"
+ id="svg5241"
+ version="1.1"
+ inkscape:version="0.48.5 r10040"
+ sodipodi:docname="logo-wordmark-light.svg"
+ inkscape:export-filename="/Users/anthony/dev/readthedocs/guidelines/assets/logo-wordmark-light.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs5243" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#32322a"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.70710678"
+ inkscape:cx="774.9861"
+ inkscape:cy="86.360425"
+ inkscape:document-units="px"
+ inkscape:current-layer="text5298"
+ showgrid="false"
+ inkscape:window-width="1366"
+ inkscape:window-height="723"
+ inkscape:window-x="0"
+ inkscape:window-y="26"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata5246">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-652.3622)">
+ <g
+ id="g5310"
+ transform="translate(-7.2877533,-6.3546821e-5)"
+ style="fill:#fafafa;fill-opacity:1">
+ <g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/anthony/secure/docs/rtd/assets/rtd-logo-2.png"
+ transform="matrix(0.55753644,0,0,0.55753644,62.308135,1038.8762)"
+ id="g3990"
+ style="fill:#fafafa;fill-opacity:1" />
+ <g
+ id="g3878"
+ transform="matrix(8.4462802,0,0,8.4462802,-93.469267,-7827.1593)"
+ style="fill:#fafafa;fill-opacity:1">
+ <g
+ transform="matrix(0.55753644,0,0,0.55753644,68.308135,1050.1262)"
+ id="g3857"
+ style="fill:#fafafa;fill-opacity:1">
+ <path
+ id="path3929-8"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#fafafa;fill-opacity:1;stroke:none;stroke-width:3.22848844999999995;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="M -67.28125,-41.59375 A 1.6144056,1.6144056 0 0 0 -67.5,-38.4375 c 0,0 3.931695,1.301049 10.625,1.84375 5.374689,0.435786 11.46875,-0.375 11.46875,-0.375 a 1.6144056,1.6144056 0 1 0 -0.40625,-3.1875 c 0,0 -5.961605,0.737066 -10.8125,0.34375 C -63.013171,-40.330461 -66.5,-41.5 -66.5,-41.5 a 1.6144056,1.6144056 0 0 0 -0.78125,-0.09375 z m 0,-8 A 1.6144056,1.6144056 0 0 0 -67.5,-46.4375 c 0,0 3.931695,1.301049 10.625,1.84375 5.374689,0.435786 11.46875,-0.375 11.46875,-0.375 a 1.6144056,1.6144056 0 1 0 -0.40625,-3.1875 c 0,0 -5.961605,0.737066 -10.8125,0.34375 C -63.013171,-48.330461 -66.5,-49.5 -66.5,-49.5 a 1.6144056,1.6144056 0 0 0 -0.78125,-0.09375 z m 0,-8 A 1.6144056,1.6144056 0 0 0 -67.5,-54.4375 c 0,0 3.931695,1.301049 10.625,1.84375 5.374689,0.435786 11.46875,-0.375 11.46875,-0.375 a 1.6144056,1.6144056 0 1 0 -0.40625,-3.1875 c 0,0 -5.961605,0.737066 -10.8125,0.34375 C -63.013171,-56.330461 -66.5,-57.5 -66.5,-57.5 a 1.6144056,1.6144056 0 0 0 -0.78125,-0.09375 z m 0,-8 A 1.6144056,1.6144056 0 0 0 -67.5,-62.4375 c 0,0 3.931695,1.301049 10.625,1.84375 5.374689,0.435786 11.46875,-0.375 11.46875,-0.375 a 1.6144056,1.6144056 0 1 0 -0.40625,-3.1875 c 0,0 -5.961605,0.737066 -10.8125,0.34375 C -63.013171,-64.330461 -66.5,-65.5 -66.5,-65.5 a 1.6144056,1.6144056 0 0 0 -0.78125,-0.09375 z m -11.207892,-8.437005 c -8.407221,0.05606 -11.539425,2.645057 -11.539425,2.645057 l 0,62.7837755 c 0,0 3.05858,-2.6415165 12.905554,-2.2381255 9.846974,0.403391 11.878255,3.8552765 23.979914,4.0983855 12.101659,0.243109 15.143679,-1.86026 15.143679,-1.86026 l 0.174399,-64.0045705 c 0,0 -5.446133,1.541392 -16.044742,1.627727 -10.598609,0.08634 -13.146074,-2.696144 -22.875385,-3.022922 -0.608082,-0.02042 -1.183512,-0.0328 -1.743994,-0.02907 z m 7.034109,4.098386 c 0,0 5.094376,1.68402 14.504214,2.150925 7.953019,0.39462 15.928477,-0.784797 15.928477,-0.784797 l 0,56.883263 c 0,0 -4.036665,2.1158549 -14.12635,1.395195 -7.819331,-0.558499 -16.422608,-3.517054 -16.422608,-3.517054 l 0.116267,-56.127532 z m -4.912249,1.482394 a 1.6277275,1.6277275 0 0 1 0,3.255455 c 0,0 -2.634985,0.01353 -4.243719,0.1744 -2.701025,0.270103 -4.534383,1.249862 -4.534383,1.249862 a 1.6251955,1.6251955 0 1 1 -1.511462,-2.87759 c 0,0 2.391605,-1.26521 5.726113,-1.598661 1.926801,-0.192699 4.563451,-0.203466 4.563451,-0.203466 z m -1.569595,8.022372 c 0.899775,-0.02279 1.569595,0 1.569595,0 a 1.625,1.625 0 0 1 0,3.226388 c 0,0 -2.634985,0.01352 -4.243719,0.174399 -2.701025,0.270104 -4.534383,1.249863 -4.534383,1.249863 a 1.6251955,1.6251955 0 0 1 -1.511462,-2.87759 c 0,0 2.391605,-1.26521 5.726113,-1.598661 0.963401,-0.09635 2.094081,-0.151612 2.993856,-0.174399 z m 1.569595,7.993304 a 1.6277275,1.6277275 0 0 1 0,3.255455 c 0,0 -2.634985,-0.01554 -4.243719,0.145333 -2.701025,0.270103 -4.534383,1.249862 -4.534383,1.249862 a 1.6251952,1.6251952 0 0 1 -1.511462,-2.877589 c 0,0 2.391605,-1.265211 5.726113,-1.598661 1.926801,-0.1927 4.563451,-0.1744 4.563451,-0.1744 z"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:-1.99000001px;word-spacing:0px;fill:#fafafa;stroke:none;font-family:Bitter;-inkscape-font-specification:Bitter"
+ id="text5298">
+ <path
+ d="m 63.380232,1038.8522 0,-2.592 1.056,-0.096 c 0.618664,-0.064 0.927997,-0.3627 0.928,-0.896 l 0,-14.88 -1.824,-0.096 0,-2.72 8.736,0 c 2.474654,0 4.373319,0.4587 5.696,1.376 1.322649,0.9173 1.983982,2.4213 1.984,4.512 -1.8e-5,1.4507 -0.384018,2.6453 -1.152,3.584 -0.746683,0.9387 -1.642682,1.6213 -2.688,2.048 0.767985,0.2773 1.375985,0.928 1.824,1.952 l 2.304,5.024 1.824,0.064 0,2.72 -7.904,0 0,-2.592 0.928,-0.096 c 0.490653,-0.064 0.735986,-0.256 0.736,-0.576 -1.4e-5,-0.128 -0.04268,-0.2774 -0.128,-0.448 l -1.504,-3.2 c -0.234679,-0.5334 -0.501345,-0.9067 -0.8,-1.12 -0.277344,-0.2347 -0.682677,-0.352 -1.216,-0.352 l -2.912,0 0,5.568 2.08,0.096 0,2.72 -7.968,0 m 5.888,-11.424 2.784,0 c 2.623987,0 3.935986,-1.1733 3.936,-3.52 -1.4e-5,-1.344 -0.352014,-2.2187 -1.056,-2.624 -0.682679,-0.4053 -1.792011,-0.608 -3.328,-0.608 l -2.336,0 0,6.752"
+ style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold"
+ id="path3068" />
+ <path
+ d="m 90.310094,1022.2762 c 1.599989,0 2.869321,0.3947 3.808,1.184 0.938652,0.768 1.407985,1.856 1.408,3.264 -1.5e-5,0.9387 -0.202681,1.7706 -0.608,2.496 -0.405347,0.704 -0.90668,1.2586 -1.504,1.664 -0.597345,0.4053 -1.322678,0.736 -2.176,0.992 -1.429342,0.4266 -3.040007,0.64 -4.832,0.64 0.06399,1.1306 0.415994,2.048 1.056,2.752 0.639993,0.6826 1.621325,1.024 2.944,1.024 1.322656,0 2.645321,-0.4694 3.968,-1.408 l 1.216,2.592 c -0.426681,0.384 -1.152014,0.7786 -2.176,1.184 -1.002678,0.4053 -2.154677,0.608 -3.456,0.608 -2.602673,0 -4.512005,-0.7147 -5.728,-2.144 -1.216002,-1.4507 -1.824002,-3.4347 -1.824,-5.952 -2e-6,-2.5174 0.693331,-4.6293 2.08,-6.336 1.386662,-1.7067 3.327993,-2.56 5.824,-2.56 m -1.472,7.328 c 0.789325,-0.1494 1.514657,-0.4587 2.176,-0.928 0.661322,-0.4907 0.991989,-1.0667 0.992,-1.728 -1.1e-5,-1.3013 -0.640011,-1.952 -1.92,-1.952 -1.194675,0 -2.112007,0.48 -2.752,1.44 -0.640006,0.9387 -0.992006,2.0693 -1.056,3.392 0.93866,-0.021 1.791993,-0.096 2.56,-0.224"
+ style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold"
+ id="path3070" />
+ <path
+ d="m 110.8632,1023.3962 0,11.904 c -1e-5,0.3413 0.0533,0.576 0.16,0.704 0.12799,0.128 0.34132,0.2026 0.64,0.224 l 1.024,0.064 0,2.56 -5.088,0 0,-1.856 -0.096,-0.032 c -1.06668,1.536 -2.52801,2.304 -4.384,2.304 -2.176,0 -3.786669,-0.6934 -4.831999,-2.08 -1.045335,-1.3867 -1.568001,-3.2854 -1.568,-5.696 -10e-7,-2.9014 0.703998,-5.1627 2.112,-6.784 1.407999,-1.6213 3.519989,-2.432 6.335999,-2.432 1.81332,0 3.71199,0.3733 5.696,1.12 m -3.712,10.368 0,-8.288 c -0.59734,-0.2773 -1.41868,-0.416 -2.464,-0.416 -1.42934,0 -2.46401,0.576 -3.104,1.728 -0.64,1.152 -0.96,2.6773 -0.96,4.576 0,3.456 1.10933,5.184 3.328,5.184 0.93866,0 1.70666,-0.2774 2.304,-0.832 0.59732,-0.576 0.89599,-1.2267 0.896,-1.952"
+ style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold"
+ id="path3072" />
+ <path
+ d="m 121.12069,1022.2762 c 0.91733,0 1.79199,0.128 2.624,0.384 l 0,-3.232 c -1e-5,-0.4693 -0.27734,-0.7253 -0.832,-0.768 l -1.376,-0.096 0,-2.528 5.952,0 0,19.456 c 0.0213,0.4906 0.28799,0.736 0.8,0.736 l 1.12,0.064 0,2.56 -5.184,0 0,-1.888 -0.096,-0.032 c -0.96001,1.5573 -2.41067,2.336 -4.352,2.336 -2.432,0 -4.13867,-0.8107 -5.12,-2.432 -0.896,-1.472 -1.344,-3.2747 -1.344,-5.408 0,-2.7734 0.68267,-4.992 2.048,-6.656 1.38666,-1.664 3.30666,-2.496 5.76,-2.496 m 2.624,11.584 0,-8.288 c -0.76801,-0.3413 -1.57867,-0.512 -2.432,-0.512 -1.40801,0 -2.44267,0.5653 -3.104,1.696 -0.64,1.1307 -0.96,2.5706 -0.96,4.32 0,3.584 1.152,5.376 3.456,5.376 0.87466,0 1.59999,-0.2454 2.176,-0.736 0.57599,-0.512 0.86399,-1.1307 0.864,-1.856"
+ style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold"
+ id="path3074" />
+ <path
+ d="m 141.89219,1036.3322 c 0,0 -1.484,0.56 -2.268,0.56 -0.784,0 -1.092,-0.392 -1.092,-1.4 0,-0.448 0.056,-1.036 0.168,-1.764 l 1.204,-7.476 3.864,0 0.336,-2.1 -3.864,0 0.672,-4.088 -2.772,0.56 -0.56,3.528 -2.8,0.28 -0.308,1.82 2.772,0 -1.232,7.756 c -0.112,0.644 -0.168,1.26 -0.168,1.792 0,2.212 0.924,3.332 2.828,3.332 1.568,0 3.668,-1.288 3.668,-1.288 l -0.448,-1.512"
+ style="font-size:28px;font-style:italic;font-weight:normal;fill:#fafafa;font-family:Bitter;-inkscape-font-specification:Bitter Italic"
+ id="path3076" />
+ <path
+ d="m 150.57225,1017.2922 -5.124,0.14 -0.252,1.54 2.352,0.56 -3.08,19.32 2.66,0 0.924,-5.04 c 0,0 2.212,-7.7 5.852,-7.7 1.11999,0 1.456,0.812 1.456,1.848 0,0.392 -0.056,0.812 -0.112,1.232 l -1.596,9.66 5.124,-0.28 0.252,-1.54 -2.352,-0.42 1.26,-7.84 c 0.084,-0.588 0.14,-1.148 0.14,-1.652 0,-2.016 -0.81201,-3.388 -3.052,-3.388 -4.256,0 -6.496,5.404 -6.608,5.712 l 2.156,-12.152"
+ style="font-size:28px;font-style:italic;font-weight:normal;fill:#fafafa;font-family:Bitter;-inkscape-font-specification:Bitter Italic"
+ id="path3078" />
+ <path
+ d="m 170.69755,1035.6322 c 0,0 -2.548,1.26 -4.592,1.26 -2.1,0 -3.08,-0.924 -3.08,-2.912 0,-0.364 0.028,-0.784 0.084,-1.204 5.796,0 9.828,-2.184 9.828,-5.404 0,-2.212 -1.792,-3.64 -4.62,-3.64 -4.45199,0 -8.092,4.564 -8.092,10.36 0,3.08 1.96,5.04 5.04,5.04 3.304,0 6.272,-2.072 6.272,-2.072 l -0.84,-1.428 m -7.336,-4.816 c 0.728,-2.94 2.772,-4.984 4.816,-4.984 1.428,0 2.1,0.588 2.1,1.82 0,1.848 -2.94,3.164 -6.916,3.164"
+ style="font-size:28px;font-style:italic;font-weight:normal;fill:#fafafa;font-family:Bitter;-inkscape-font-specification:Bitter Italic"
+ id="path3080" />
+ <path
+ d="m 177.64305,1038.8522 0,-2.592 1.056,-0.096 c 0.61867,-0.064 0.928,-0.3627 0.928,-0.896 l 0,-14.88 -1.824,-0.096 0,-2.72 8.768,0 c 3.13599,0 5.57865,0.832 7.328,2.496 1.77065,1.664 2.65598,4.128 2.656,7.392 -2e-5,2.0266 -0.26668,3.7973 -0.8,5.312 -0.53335,1.4933 -1.25868,2.6666 -2.176,3.52 -1.83468,1.7066 -4.11734,2.56 -6.848,2.56 l -9.088,0 m 5.888,-18.176 0,15.104 3.264,0 c 1.83466,0 3.26399,-0.6614 4.288,-1.984 1.02399,-1.3227 1.53599,-3.2427 1.536,-5.76 -10e-6,-4.9067 -2.08001,-7.36 -6.24,-7.36 l -2.848,0"
+ style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold"
+ id="path3082" />
+ <path
+ d="m 205.62659,1036.5162 c 2.32532,0 3.48798,-1.8774 3.488,-5.632 -2e-5,-1.8987 -0.26668,-3.3387 -0.8,-4.32 -0.51201,-0.9813 -1.38668,-1.472 -2.624,-1.472 -1.21601,0 -2.11201,0.4693 -2.688,1.408 -0.57601,0.9387 -0.86401,2.2186 -0.864,3.84 -1e-5,3.008 0.55466,4.896 1.664,5.664 0.49066,0.3413 1.09866,0.512 1.824,0.512 m -7.36,-5.728 c 0,-1.5787 0.23466,-2.944 0.704,-4.096 0.46933,-1.1733 1.09866,-2.0693 1.888,-2.688 1.51466,-1.152 3.18932,-1.728 5.024,-1.728 1.27999,0 2.35732,0.2133 3.232,0.64 0.89598,0.4053 1.58932,0.8853 2.08,1.44 0.51198,0.5333 0.93865,1.3227 1.28,2.368 0.36265,1.024 0.54398,2.24 0.544,3.648 -2e-5,2.944 -0.71469,5.1733 -2.144,6.688 -1.42935,1.5146 -3.26401,2.272 -5.504,2.272 -2.21868,0 -3.95734,-0.7147 -5.216,-2.144 -1.25867,-1.4507 -1.888,-3.584 -1.888,-6.4"
+ style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold"
+ id="path3084" />
+ <path
+ d="m 218.42846,1030.6282 c -1e-5,1.8133 0.34133,3.2213 1.024,4.224 0.68266,1.0026 1.66399,1.504 2.944,1.504 1.30132,0 2.58132,-0.4587 3.84,-1.376 l 1.376,2.464 c -1.51468,1.2373 -3.41335,1.856 -5.696,1.856 -2.28268,0 -4.08534,-0.7147 -5.408,-2.144 -1.30134,-1.4507 -1.952,-3.584 -1.952,-6.4 0,-2.816 0.74666,-4.928 2.24,-6.336 1.51466,-1.4293 3.21066,-2.144 5.088,-2.144 1.89865,0 3.65865,0.4373 5.28,1.312 l 0,4.16 -2.944,0.224 0,-1.536 c -1e-5,-0.576 -0.21335,-0.928 -0.64,-1.056 -0.40535,-0.1493 -0.83201,-0.224 -1.28,-0.224 -2.58134,0 -3.87201,1.824 -3.872,5.472"
+ style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold"
+ id="path3086" />
+ <path
+ d="m 236.74521,1025.1882 c -0.51201,-0.192 -1.13068,-0.288 -1.856,-0.288 -0.72534,0 -1.31201,0.1707 -1.76,0.512 -0.42668,0.32 -0.64001,0.7253 -0.64,1.216 -1e-5,0.4693 0.0747,0.8427 0.224,1.12 0.17066,0.256 0.42666,0.48 0.768,0.672 0.53332,0.2773 1.17332,0.5226 1.92,0.736 0.74665,0.192 1.30132,0.352 1.664,0.48 0.36265,0.1066 0.81065,0.2986 1.344,0.576 0.55465,0.2773 0.97065,0.576 1.248,0.896 0.74665,0.7893 1.11998,1.8026 1.12,3.04 -2e-5,1.6 -0.58668,2.8586 -1.76,3.776 -1.15201,0.896 -2.62401,1.344 -4.416,1.344 -2.60268,0 -4.56534,-0.3307 -5.888,-0.992 l 0,-4.448 2.88,-0.224 0,1.536 c -1e-5,0.9386 0.89599,1.408 2.688,1.408 1.79199,0 2.68799,-0.6507 2.688,-1.952 -1e-5,-0.4694 -0.16001,-0.8534 -0.48,-1.152 -0.29868,-0.2987 -0.59735,-0.5014 -0.896,-0.608 -0.29868,-0.1067 -0.66134,-0.2134 -1.088,-0.32 -0.40534,-0.1067 -0.81068,-0.2134 -1.216,-0.32 -0.38401,-0.1067 -0.81068,-0.2454 -1.28,-0.416 -0.44801,-0.192 -0.94934,-0.4587 -1.504,-0.8 -1.08801,-0.704 -1.63201,-1.8774 -1.632,-3.52 -1e-5,-1.664 0.58666,-2.944 1.76,-3.84 1.17333,-0.896 2.64532,-1.344 4.416,-1.344 1.79199,0 3.56265,0.4267 5.312,1.28 l 0,3.84 -2.88,0.224 0,-1.344 c -1e-5,-0.5333 -0.24535,-0.896 -0.736,-1.088"
+ style="fill:#fafafa;font-family:Bree Serif;-inkscape-font-specification:Bree Serif Bold"
+ id="path3088" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/docs/demo/static/screen_desktop.png b/docs/demo/static/screen_desktop.png
new file mode 100644
index 0000000..dae4585
--- /dev/null
+++ b/docs/demo/static/screen_desktop.png
Binary files differ
diff --git a/docs/demo/static/screen_mobile.png b/docs/demo/static/screen_mobile.png
new file mode 100644
index 0000000..2383b7c
--- /dev/null
+++ b/docs/demo/static/screen_mobile.png
Binary files differ
diff --git a/docs/demo/static/yi_jing_01_chien.jpg b/docs/demo/static/yi_jing_01_chien.jpg
new file mode 100644
index 0000000..523dc2b
--- /dev/null
+++ b/docs/demo/static/yi_jing_01_chien.jpg
Binary files differ
diff --git a/docs/demo/structure.rst b/docs/demo/structure.rst
new file mode 100644
index 0000000..178ed63
--- /dev/null
+++ b/docs/demo/structure.rst
@@ -0,0 +1,101 @@
+
+*******************
+Structural Elements
+*******************
+
+.. contents:: Table of Contents
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lorem neque, interdum in ipsum nec,
+finibus dictum velit. Ut eu efficitur arcu, id aliquam erat. In sit amet diam gravida, imperdiet tellus eu,
+gravida nisl. Praesent aliquet odio eget libero elementum, quis rhoncus tellus tincidunt.
+Suspendisse quis volutpat ipsum. Sed lobortis scelerisque tristique. Aenean condimentum risus tellus,
+quis accumsan ipsum laoreet ut. Integer porttitor maximus suscipit. Mauris in posuere sapien.
+Aliquam accumsan feugiat ligula, nec fringilla libero commodo sed. Proin et erat pharetra.
+
+---------
+
+Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada.
+Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla.
+Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis.
+
+Document Section
+================
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis,
+nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla.
+Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor.
+Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet.
+Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed,
+luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec.
+
+Document Subsection
+-------------------
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus,
+nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl.
+Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac,
+hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor.
+Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius.
+Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum.
+Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum.
+Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed.
+
+Document Subsubsection
+^^^^^^^^^^^^^^^^^^^^^^
+
+Donec non rutrum lorem. Aenean sagittis metus at pharetra fringilla. Nunc sapien dolor, cursus sed nisi at,
+pretium tristique lectus. Sed pellentesque leo lectus, et convallis ipsum euismod a.
+Integer at leo vitae felis pretium aliquam fringilla quis odio. Sed pharetra enim accumsan feugiat pretium.
+Maecenas at pharetra tortor. Morbi semper eget mi vel finibus. Cras rutrum nulla eros, id feugiat arcu pellentesque ut.
+Sed finibus tortor ac nisi ultrices viverra. Duis feugiat malesuada sapien, at commodo ante porttitor ac.
+Curabitur posuere mauris mi, vel ornare orci scelerisque sit amet. Suspendisse nec fringilla dui.
+
+Document Paragraph
+""""""""""""""""""
+
+Pellentesque nec est in odio ultrices elementum. Vestibulum et hendrerit sapien, quis vulputate turpis.
+Suspendisse potenti. Curabitur tristique sit amet lectus non viverra. Phasellus rutrum dapibus turpis sed imperdiet.
+Mauris maximus viverra ante. Donec eu egestas mauris. Morbi vulputate tincidunt euismod. Integer vel porttitor neque.
+Donec at lacus suscipit, lacinia lectus vel, sagittis lectus.
+
+*********************
+Structural Elements 2
+*********************
+
+Etiam turpis ante, luctus sed velit tristique, finibus volutpat dui. Nam sagittis vel ante nec malesuada.
+Praesent dignissim mi nec ornare elementum. Nunc eu augue vel sem dignissim cursus sed et nulla.
+Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+Pellentesque dictum dui sem, non placerat tortor rhoncus in. Sed placerat nulla at rhoncus iaculis.
+
+Document Section
+================
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum nulla vel neque venenatis,
+nec placerat lorem placerat. Cras purus eros, gravida vitae tincidunt id, vehicula nec nulla.
+Fusce aliquet auctor cursus. Phasellus ex neque, vestibulum non est vitae, viverra fringilla tortor.
+Donec vestibulum convallis justo, a faucibus lorem vulputate vel. Aliquam cursus odio eu felis sodales aliquet.
+Aliquam erat volutpat. Maecenas eget dictum mauris. Suspendisse arcu eros, condimentum eget risus sed,
+luctus efficitur arcu. Cras ut dictum mi. Nulla congue interdum lorem, semper semper enim commodo nec.
+
+Document Subsection
+-------------------
+
+.. figure:: static/yi_jing_01_chien.jpg
+ :align: right
+ :figwidth: 200px
+
+ This is a caption for a figure. Text should wrap around the caption.
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur in eros et blandit. Nunc maximus,
+nisl at auctor vestibulum, justo ex sollicitudin ligula, id faucibus urna orci tristique nisl.
+Duis auctor rutrum orci, in ornare lacus condimentum quis. Quisque arcu velit, facilisis quis interdum ac,
+hendrerit auctor mauris. Curabitur urna nibh, porttitor at ante sit amet, vestibulum interdum dolor.
+Duis dictum elit orci, tincidunt imperdiet sem pellentesque et. In vehicula pellentesque varius.
+Phasellus a turpis sollicitudin, bibendum massa et, imperdiet neque. Integer quis sapien in magna rutrum bibendum.
+Integer cursus ex sed magna vehicula finibus. Proin tempus orci quis dolor tempus, nec condimentum odio vestibulum.
+Etiam efficitur sollicitudin libero, tincidunt volutpat ligula interdum sed. Praesent congue sagittis nisl et suscipit.
+Vivamus sagittis risus et egestas commodo.Cras venenatis arcu in pharetra interdum.
+Donec quis metus porttitor tellus cursus lobortis. Quisque et orci magna. Fusce rhoncus mi mi,
+at vehicula massa rhoncus quis. Mauris augue leo, pretium eget molestie vitae, efficitur nec nulla.
+In hac habitasse platea dictumst. Sed sit amet imperdiet purus.
diff --git a/docs/demo/test_py_module/__init__.py b/docs/demo/test_py_module/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/docs/demo/test_py_module/__init__.py
diff --git a/docs/demo/test_py_module/test.py b/docs/demo/test_py_module/test.py
new file mode 100644
index 0000000..426ec61
--- /dev/null
+++ b/docs/demo/test_py_module/test.py
@@ -0,0 +1,148 @@
+# -*- coding: utf-8 -*-
+"""Test Module for sphinx_rtd_theme."""
+
+
+class Foo:
+
+ """Docstring for class Foo.
+
+ This text tests for the formatting of docstrings generated from output
+ ``sphinx.ext.autodoc``. Which contain reST, but sphinx nests it in the
+ ``<dl>``, and ``<dt>`` tags. Also, ``<tt>`` is used for class, method names
+ and etc, but those will *always* have the ``.descname`` or
+ ``.descclassname`` class.
+
+ Term
+ It is also possible to include definitions inside docstrings.
+ They should be styled as a normal definition list.
+
+ :Field List:
+ It is also possible to include definitions inside docstrings.
+ They should be styled as a normal definition list.
+
+ .. [1] A footnote contains body elements, consistently indented by at
+ least 3 spaces.
+
+ .. [Citation] A citation contains body elements, consistently indented by at
+ least 3 spaces.
+
+ Normal ``<tt>`` (like the <tt> I just wrote here) needs to be shown with
+ the same style as anything else with ````this type of markup````.
+
+ It's common for programmers to give a code example inside of their
+ docstring::
+
+ from test_py_module import Foo
+
+ myclass = Foo()
+ myclass.dothismethod('with this argument')
+ myclass.flush()
+
+ print(myclass)
+
+
+ Here is a link to :py:meth:`capitalize`.
+ Here is a link to :py:meth:`__init__`.
+
+ """
+
+ #: Doc comment for class attribute Foo.bar.
+ #: It can have multiple lines.
+ bar = 1
+
+ flox = 1.5 #: Doc comment for Foo.flox. One line only.
+
+ baz = 2
+ """Docstring for class attribute Foo.baz."""
+
+ def __init__(self, qux, spam=False):
+ """Start the Foo.
+
+ :param qux: The first argument to initialize class.
+ :type qux: string
+ :param spam: Spam me yes or no...
+ :type spam: bool
+
+ """
+ #: Doc comment for instance attribute qux.
+ self.qux = 3
+
+ self.spam = 4
+ """Docstring for instance attribute spam."""
+
+ def add(self, val1, val2):
+ """Return the added values.
+
+ :param val1: First number to add.
+ :type val1: int
+ :param val2: Second number to add.
+ :type val2: int
+ :rtype: int
+
+ The parameters of this method are described in the parameter list.
+ """
+
+ return val1 + val2
+
+ def capitalize(self, myvalue):
+ """Return a string as uppercase.
+
+ :param myvalue: String to change
+ :type myvalue: string
+ :rtype: string
+
+ """
+
+ return myvalue.upper()
+
+ def another_function(self, a, b, **kwargs):
+ """
+ Here is another function.
+
+ :param a: The number of green hats you own.
+ :type a: int
+
+ :param b: The number of non-green hats you own.
+ :type b: int
+
+ :param kwargs: Additional keyword arguments. Each keyword parameter
+ should specify the name of your favorite cuisine.
+ The values should be floats, specifying the mean price
+ of your favorite dish in that cooking style.
+ :type kwargs: float
+
+ :returns: A 2-tuple. The first element is the mean price of all dishes
+ across cuisines. The second element is the total number of
+ hats you own: :math:`a + b`.
+ :rtype: tuple
+
+ :raises ValueError: When ``a`` is not an integer.
+
+ .. versionadded:: 1.0
+ This was added in 1.0
+ .. versionchanged:: 2.0
+ This was changed in 2.0
+ .. deprecated:: 3.0
+ This is deprecated since 3.0
+ """
+ return sum(kwargs.values()) / len(kwargs), a + b
+
+
+def add_numbers(a: int, b: int = 0) -> int:
+ """Add two numbers together
+
+ :param a: The first number
+ :param b: The second number
+
+ Here is some more text.
+ """
+ return a + b
+
+
+def subtract_numbers(a: int, b: int = 0) -> int:
+ """Subtract two numbers
+
+ :param a: The first number
+ :param b: The second number
+ """
+ return a - b
diff --git a/docs/development.rst b/docs/development.rst
new file mode 100644
index 0000000..c4ee9a4
--- /dev/null
+++ b/docs/development.rst
@@ -0,0 +1,209 @@
+Development
+===========
+
+The theme developers follow the guidelines below for development and release
+planning. Documentation authors can decide which theme release works best for
+their project based on required browser/operating system combinations or
+dependency support.
+
+.. _supported-browsers:
+
+Supported browsers
+------------------
+
+Official browser support is determined by the most popular browser/operating
+system combinations in our pageview analytics. Officially supported combinations
+are commonly tested during development, and are always tested before final
+release of a new version of the theme.
+
+Older releases of supported combinations, and some less common combinations, are
+considered partially supported. This means that we do not consistently test
+these combinations, however we do expect user experience to be comparable with
+supported combinations.
+
+.. csv-table:: Supported browser combinations
+ :widths: 6, 12, 4
+ :header-rows: 1
+ :file: supported-browsers.csv
+
+.. versionadded:: 1.0
+ Supported browser and operating system combinations added
+
+There are several browser/operating system combinations that are not supported
+by the theme developers at all. Unsupported combinations do not receive testing
+or development, and we likely won't accept major contributions for these
+combinations.
+
+Unsupported browser/operating system combinations include:
+
+Internet Explorer (any OS, versions <=10)
+ **Unsupported.** IE11 is the last partially supported version. We do no
+ testing on prior versions.
+
+Internet Explorer (any OS, version 11)
+ We currently only partially support IE11, and only test for major bugs.
+ Support will be removed in the :ref:`roadmap-release-3.0.0` release.
+
+Opera (any OS, any version)
+ **Community support only.** We do not receive enough traffic with this
+ browser to officially support it in testing and development.
+
+.. _supported-dependencies:
+
+Supported dependencies
+----------------------
+
+The theme officially supports the following dependencies in your Sphinx project:
+
+.. list-table:: Supported dependencies
+ :header-rows: 1
+ :widths: 10, 10
+
+ * - Dependency
+ - Versions
+ * - Python
+ - 3.6 or greater
+ * - Sphinx
+ - 5 or greater
+ * - docutils
+ - >= 0.14, < 0.19
+
+.. deprecated:: 2.0
+ Sphinx < 5 support removed
+
+.. deprecated:: 2.0
+ Python < 3.6 support removed
+
+.. deprecated:: 2.0
+ docutils < 0.14 support removed
+
+.. versionadded:: 1.0
+ Sphinx 4.0 support added
+
+.. deprecated:: 1.0
+ Sphinx 1.6 support removed
+
+.. versionadded:: 1.0
+ docutils 0.17 support added
+
+Roadmap
+-------
+
+We currently have several releases planned on our development roadmap. Backward
+incompatible changes, deprecations, and major features are noted for each of
+these releases.
+
+Releases follow `semantic versioning`_, and so it is generally recommended that
+authors pin dependency on ``sphinx_rtd_theme`` to a version below the next major
+version:
+
+.. code:: console
+
+ $ pip install "sphinx_rtd_theme<2.0.0"
+
+.. _semantic versioning: http://semver.org/
+
+.. _roadmap-release-1.0.0:
+
+1.0.0
+~~~~~
+
+:Planned release date: August 2021
+
+This release will be a slightly backwards incompatible release to follow the
+:ref:`release-0.5.2` release. It will drop support for Sphinx 1.6, which is a rather old
+release at this point.
+
+This version will add official support for the Sphinx 4.x release series and
+it resolves bugs with the latest release of Docutils, version 0.17.
+
+Starting with this release, several deprecation warnings will be emitted at
+build time:
+
+Direct installation is deprecated
+ Support for direct installation through GitHub is no longer a suggested
+ installation method. In an effort to ease maintenance, compiled assets will
+ eventually be removed from the theme repository. These files will only be
+ included in the built packages/releases available on PyPI.
+
+ We plan to start putting development releases up on PyPI more frequently, so
+ that installation from the theme source repository is no longer necessary.
+
+ Built assets are tentatively planned to be removed in version :ref:`roadmap-release-3.0.0`:.
+
+HTML4 support is deprecated
+ Support for the Sphinx HTML4 writer will be removed in the :ref:`roadmap-release-2.0.0`
+ release.
+
+.. _roadmap-release-1.1.0:
+
+1.1.0
+~~~~~
+
+:Planned release date: 2021 Q3
+
+We aim to follow up release :ref:`release-1.0.0` with at least one bug fix release in
+the 1.x release series. The 1.1 release will not be adding any major features
+and will instead mark the last release targeting projects with old dependencies
+like Sphinx 1.8, HTML4, or required support for IE11.
+
+.. _roadmap-release-2.0.0:
+
+2.0.0
+~~~~~
+
+:Planned release date: 2023 Q3
+
+This release will drop support for old Python and Sphinx versions.
+
+Note the following backwards incompatible changes are planned for this
+release:
+
+Python < 3.6, Sphinx < 5 and Docutils < 0.14 will not be tested
+ Official support will drop for these version, though they may still continue
+ to work. Theme developers will not be testing these versions any longer.
+
+HTML4 support will be removed
+ Starting with this release, we will only support the HTML5 writer output,
+ and builds attempting to use the HTML4 writer will fail. If you are still
+ using the HTML4 writer, or have the ``html4_writer = True`` option in your
+ Sphinx configuration file, you will need to either remove this option or pin
+ your dependency to ``sphinx_rtd_theme<=3`` until you can.
+
+ This option was suggested in the past to work around issues with HTML5
+ support and should no longer be required to use a modern combination of this
+ theme and Sphinx.
+
+.. _roadmap-release-3.0.0:
+
+3.0.0
+~~~~~
+
+:Planned release date: 2024 Q1
+
+This release is not yet fully planned.
+However, we already know that we will be dropping support for older version of different dependencies and browsers.
+
+Sphinx 5, Python < 3.8 and docutils < 0.18 support will be removed
+ Sphinx 5 is the latest version that supports Python 3.6 and 3.7,
+ and docutils < 0.18.
+
+Internet Explorer 11 support will be dropped
+ `IE11 reached end of life on 14 June 20222 <https://endoflife.date/internet-explorer>`_,
+ so we are not supporting it on newer versions,
+ starting on 3.0.0.
+
+.. _roadmap-release-4.0.0:
+
+4.0.0
+~~~~~
+
+:Planned release date: 2024 Q2
+
+This release is not yet planned.
+There are plans to potentially replace Wyrm with Bootstrap in a release after 3.0.
+
+Also tentatively planned for this release is finally removing built CSS and
+JavaScript assets from our repository. This will remove the ability to install
+the package directly from GitHub, and instead users will be advised to install
+development releases from PyPI.
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 0000000..7296d5f
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,90 @@
+Read the Docs Sphinx Theme
+==========================
+
+This Sphinx_ theme was designed to provide a great reader experience for
+documentation users on both desktop and mobile devices. This theme is commonly
+used with projects on `Read the Docs`_ but can work with any Sphinx project.
+
+.. _Sphinx: http://www.sphinx-doc.org
+.. _Read the Docs: http://www.readthedocs.org
+
+Using this theme
+----------------
+
+:doc:`installing`
+ How to install this theme on your Sphinx project.
+
+:doc:`configuring`
+ Theme configuration and customization options.
+
+:ref:`supported-browsers`
+ Supported browser/operating system combinations.
+
+:ref:`supported-dependencies`
+ Supported project dependencies, like Python and Sphinx.
+
+Development
+-----------
+
+:doc:`contributing`
+ How to contribute changes to the theme.
+
+:doc:`Development guidelines <development>`
+ Guidelines the theme developers use for developing and testing changes.
+
+`Read the Docs contributor guide`_
+ Our contribution guidelines extend to all projects maintained by Read the
+ Docs core team.
+
+:doc:`changelog`
+ The theme development changelog.
+
+:doc:`Demo documentation <demo/structure>`
+ The theme's styleguide test environment, where new changes are tested.
+
+
+.. _Read the Docs contributor guide: https://docs.readthedocs.io/en/stable/contribute.html
+
+
+.. Hidden TOCs
+
+.. toctree::
+ :caption: Theme Documentation
+ :maxdepth: 2
+ :hidden:
+
+ installing
+ configuring
+ development
+ contributing
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ changelog
+
+.. toctree::
+ :maxdepth: 2
+ :numbered:
+ :caption: Demo Documentation
+ :hidden:
+
+ demo/structure
+ demo/demo
+ demo/lists_tables
+ demo/api
+
+.. toctree::
+ :maxdepth: 3
+ :numbered:
+ :caption: This is an incredibly long caption for a long menu
+ :hidden:
+
+ demo/long
+
+.. toctree::
+ :maxdepth: 3
+ :caption: Breadcrumbs
+
+ demo/level1/index.rst
diff --git a/docs/installing.rst b/docs/installing.rst
new file mode 100644
index 0000000..87c0c66
--- /dev/null
+++ b/docs/installing.rst
@@ -0,0 +1,60 @@
+Installation
+============
+
+How to install and use the theme
+--------------------------------
+
+Install the ``sphinx_rtd_theme`` package (or add it to your ``requirements.txt`` file):
+
+.. code:: console
+
+ $ pip install sphinx_rtd_theme
+
+In your Sphinx project's ``conf.py`` file, add ``sphinx_rtd_theme`` to the list of enabled extensions and as the active theme:
+
+.. code:: python
+
+ extensions = [
+ ...
+ 'sphinx_rtd_theme',
+ ]
+
+ html_theme = "sphinx_rtd_theme"
+
+.. seealso::
+ :ref:`supported-browsers`
+ Officially supported and tested browser/operating system combinations
+
+ :ref:`supported-dependencies`
+ Officially Supported versions of Python, Sphinx, and other dependencies.
+
+
+.. note::
+
+ Adding this theme as an extension is what enables localization of theme
+ strings in your translated output. If these strings are not translated in
+ your output, either we lack the localized strings for your locale, or you
+ are using an old version of the theme.
+
+ ..
+ comment about this note: it's possibly not necessary to add the theme as an extension.
+ Rather, this is an issue caused by setting html_theme_path.
+ See: https://github.com/readthedocs/readthedocs.org/pull/9654
+
+
+.. _howto_upgrade:
+
+How to upgrade
+--------------
+
+Adding ``sphinx-rtd-theme`` to your project's dependencies will make pip install the latest compatible version of the theme.
+
+If you want to test a **pre-release**, you need to be explicit about the version you specify.
+Otherwise, pip will ignore pre-releases. Add for instance ``sphinx-rtd-theme==1.1.0b3`` to test a pre-release.
+
+.. tip::
+ We recommend that you pin the version of Sphinx that your project is built with.
+ We won't release sphinx-rtd-theme without marking its compatibility with Sphinx. So if you do not pin ``sphinx-rtd-theme`` itself, you will always get the *latest compatible* release.
+
+ More information is available in Read the Docs' documentation on :doc:`rtd:guides/reproducible-builds`.
+
diff --git a/docs/make.bat b/docs/make.bat
new file mode 100644
index 0000000..bc934aa
--- /dev/null
+++ b/docs/make.bat
@@ -0,0 +1,38 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=python -msphinx
+)
+set SPHINXOPTS=
+set SPHINXBUILD=sphinx-build
+set SOURCEDIR=.
+set BUILDDIR=build
+set SPHINXPROJ=ReadtheDocsSphinxTheme
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The Sphinx module was not found. Make sure you have Sphinx installed,
+ echo.then set the SPHINXBUILD environment variable to point to the full
+ echo.path of the 'sphinx-build' executable. Alternatively you may add the
+ echo.Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.http://sphinx-doc.org/
+ exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+
+:end
+popd
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 0000000..a6760f7
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1 @@
+sphinx>=7.1,<7.2
diff --git a/docs/supported-browsers.csv b/docs/supported-browsers.csv
new file mode 100644
index 0000000..7e446d9
--- /dev/null
+++ b/docs/supported-browsers.csv
@@ -0,0 +1,5 @@
+Browser,Operating System,Versions
+Chrome,"Windows, MacOS, Linux, Android",>=90
+Firefox,"Linux, Windows",>=90
+Edge,Windows,>=90
+Safari,"MacOS, iOS",>=13
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..b5c7f07
--- /dev/null
+++ b/package.json
@@ -0,0 +1,46 @@
+{
+ "name": "sphinx_rtd_theme",
+ "main": "js/theme.js",
+ "version": "2.0.0",
+ "scripts": {
+ "dev": "webpack-dev-server --open --config webpack.dev.js",
+ "build": "webpack --config webpack.prod.js",
+ "preinstall": "bin/preinstall.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/readthedocs/sphinx_rtd_theme.git"
+ },
+ "author": "Read the Docs",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/readthedocs/sphinx_rtd_theme/issues"
+ },
+ "homepage": "https://github.com/readthedocs/sphinx_rtd_theme",
+ "dependencies": {},
+ "devDependencies": {
+ "bourbon": "~4.3",
+ "bourbon-neat": "~1.9",
+ "copy-webpack-plugin": "^5.1.2",
+ "css-loader": "^3.6.0",
+ "file-loader": "^3.0.1",
+ "font-awesome": "^4.7.0",
+ "html5shiv": "^3.7.3",
+ "imports-loader": "^0.8.0",
+ "jquery": "^3.6.0",
+ "lato-font": "^3.0.0",
+ "mini-css-extract-plugin": "^0.6.0",
+ "node-sass": "^4.14.1",
+ "optimize-css-assets-webpack-plugin": "^5.0.4",
+ "roboto-fontface": "^0.10.0",
+ "sass-loader": "^7.3.0",
+ "style-loader": "^0.23.1",
+ "webpack": "^4.46.0",
+ "webpack-cli": "^3.3.12",
+ "webpack-dev-server": "^3.11.2",
+ "webpack-merge": "^4.2.1",
+ "webpack-shell-plugin": "^0.5.0",
+ "webpack-watch-files-plugin": "^1.1.0",
+ "wyrm": "^1.0.9"
+ }
+}
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..bbe705a
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,117 @@
+[bumpversion]
+current_version = 2.0.0
+commit = false
+tag = false
+parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)((?P<release>[a-z]+)(?P<dev>\d+))?
+serialize =
+ {major}.{minor}.{patch}{release}{dev}
+ {major}.{minor}.{patch}
+
+[metadata]
+name = sphinx_rtd_theme
+url = https://github.com/readthedocs/sphinx_rtd_theme
+license = MIT
+author = Dave Snider, Read the Docs, Inc. & contributors
+author_email = dev@readthedocs.org
+description = Read the Docs theme for Sphinx
+long_description = file: README.rst
+project_urls =
+ Homepage = https://sphinx-rtd-theme.readthedocs.io/
+ Source Code = https://github.com/readthedocs/sphinx_rtd_theme
+ Issue Tracker = https://github.com/readthedocs/sphinx_rtd_theme/issues
+classifiers =
+ Framework :: Sphinx
+ Framework :: Sphinx :: Theme
+ Development Status :: 5 - Production/Stable
+ License :: OSI Approved :: MIT License
+ Environment :: Console
+ Environment :: Web Environment
+ Intended Audience :: Developers
+ Programming Language :: Python :: 3
+ Programming Language :: Python :: 3 :: Only
+ Programming Language :: Python :: 3.6
+ Programming Language :: Python :: 3.7
+ Programming Language :: Python :: 3.8
+ Programming Language :: Python :: 3.9
+ Programming Language :: Python :: 3.10
+ Programming Language :: Python :: 3.11
+ Operating System :: OS Independent
+ Topic :: Documentation
+ Topic :: Software Development :: Documentation
+
+[options]
+include_package_data = True
+zip_safe = False
+packages = sphinx_rtd_theme
+python_requires = >=3.6
+install_requires =
+ sphinx >=5,<8
+ docutils <0.21
+ sphinxcontrib-jquery >=4,<5
+tests_require =
+ pytest
+
+[options.extras_require]
+dev =
+ transifex-client
+ sphinxcontrib-httpdomain
+ bump2version
+ wheel
+
+[options.entry_points]
+sphinx.html_themes =
+ sphinx_rtd_theme = sphinx_rtd_theme
+
+[options.package_data]
+sphinx_rtd_theme =
+ theme.conf
+ *.html
+ static/css/*.css
+ static/css/fonts/*.*
+ static/js/*.js
+
+[bdist_wheel]
+universal = 1
+
+[extract_messages]
+mapping_file = babel.cfg
+output_file = sphinx_rtd_theme/locale/sphinx.pot
+keywords = _ l_ lazy_gettext
+add_comments = Translators:
+
+[init_catalog]
+domain = sphinx
+input_file = sphinx_rtd_theme/locale/sphinx.pot
+output_dir = sphinx_rtd_theme/locale/
+
+[update_catalog]
+domain = sphinx
+input_file = sphinx_rtd_theme/locale/sphinx.pot
+output_dir = sphinx_rtd_theme/locale/
+
+[compile_catalog]
+domain = sphinx
+directory = sphinx_rtd_theme/locale/
+
+[bumpversion:part:release]
+optional_value = release
+first_value = alpha
+values =
+ alpha
+ rc
+ release
+
+[bumpversion:part:dev]
+first_value = 1
+
+[bumpversion:file:setup.py]
+
+[bumpversion:file:sphinx_rtd_theme/__init__.py]
+
+[bumpversion:file:package.json]
+search = "version": "{current_version}",
+replace = "version": "{new_version}",
+
+[bumpversion:file:docs/changelog.rst]
+search = .. |theme_version| replace:: {current_version}
+replace = .. |theme_version| replace:: {new_version}
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..f11bbc8
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-
+
+import distutils.cmd
+import os
+import subprocess
+from io import open
+
+from setuptools import setup
+
+
+class WebpackBuildCommand(distutils.cmd.Command):
+
+ description = "Generate static assets"
+
+ user_options = []
+
+ def initialize_options(self):
+ pass
+
+ def finalize_options(self):
+ pass
+
+ def run(self):
+ if not 'CI' in os.environ and not 'TOX_ENV_NAME' in os.environ:
+ subprocess.run(['npm', 'install'], check=True)
+ subprocess.run(['node_modules/.bin/webpack', '--config', 'webpack.prod.js'], check=True)
+
+
+class WebpackDevelopCommand(distutils.cmd.Command):
+
+ description = "Run Webpack dev server"
+
+ user_options = []
+
+ def initialize_options(self):
+ pass
+
+ def finalize_options(self):
+ pass
+
+ def run(self):
+ subprocess.run(
+ ["node_modules/.bin/webpack-dev-server", "--open", "--config", "webpack.dev.js"],
+ check=True
+ )
+
+
+class UpdateTranslationsCommand(distutils.cmd.Command):
+
+ description = "Run all localization commands"
+
+ user_options = []
+ sub_commands = [
+ ('extract_messages', None),
+ ('update_catalog', None),
+ ('transifex', None),
+ ('compile_catalog', None),
+ ]
+
+ def initialize_options(self):
+ pass
+
+ def finalize_options(self):
+ pass
+
+ def run(self):
+ for cmd_name in self.get_sub_commands():
+ self.run_command(cmd_name)
+
+
+class TransifexCommand(distutils.cmd.Command):
+
+ description = "Update translation files through Transifex"
+
+ user_options = []
+
+ def initialize_options(self):
+ pass
+
+ def finalize_options(self):
+ pass
+
+ def run(self):
+ subprocess.run(['tx', 'push', '--source'], check=True)
+ subprocess.run(['tx', 'pull', '--mode', 'onlyreviewed', '-f', '-a'], check=True)
+
+
+setup(
+ version='2.0.0',
+ cmdclass={
+ 'update_translations': UpdateTranslationsCommand,
+ 'transifex': TransifexCommand,
+ 'build_assets': WebpackBuildCommand,
+ 'watch': WebpackDevelopCommand,
+ },
+)
diff --git a/sphinx_rtd_theme/__init__.py b/sphinx_rtd_theme/__init__.py
new file mode 100644
index 0000000..2ce88a2
--- /dev/null
+++ b/sphinx_rtd_theme/__init__.py
@@ -0,0 +1,77 @@
+"""
+Sphinx Read the Docs theme.
+
+From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
+"""
+
+from os import path
+from sys import version_info as python_version
+
+from sphinx import version_info as sphinx_version
+from sphinx.locale import _
+from sphinx.util.logging import getLogger
+
+
+__version__ = '2.0.0'
+__version_full__ = __version__
+
+logger = getLogger(__name__)
+
+
+def get_html_theme_path():
+ """Return list of HTML theme paths."""
+ cur_dir = path.abspath(path.dirname(path.dirname(__file__)))
+ return cur_dir
+
+
+def config_initiated(app, config):
+ theme_options = config.html_theme_options or {}
+ if theme_options.get('canonical_url'):
+ logger.warning(
+ _('The canonical_url option is deprecated, use the html_baseurl option from Sphinx instead.')
+ )
+
+
+def extend_html_context(app, pagename, templatename, context, doctree):
+ # Add ``sphinx_version_info`` tuple for use in Jinja templates
+ context['sphinx_version_info'] = sphinx_version
+
+
+# See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package
+def setup(app):
+ if python_version[0] < 3:
+ logger.error("Python 2 is not supported with sphinx_rtd_theme, update to Python 3.")
+
+ app.require_sphinx('5.0')
+ if app.config.html4_writer:
+ logger.error("'html4_writer' is not supported with sphinx_rtd_theme.")
+
+ # Since Sphinx 6, jquery isn't bundled anymore and we need to ensure that
+ # the sphinxcontrib-jquery extension is enabled.
+ # See: https://dev.readthedocs.io/en/latest/design/sphinx-jquery.html
+ if sphinx_version >= (6, 0, 0):
+ # Documentation of Sphinx guarantees that an extension is added and
+ # enabled at most once.
+ # See: https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.setup_extension
+ app.setup_extension("sphinxcontrib.jquery")
+ # However, we need to call the extension's callback since setup_extension doesn't do it
+ # See: https://github.com/sphinx-contrib/jquery/issues/23
+ from sphinxcontrib.jquery import add_js_files as jquery_add_js_files
+ jquery_add_js_files(app, app.config)
+
+ # Register the theme that can be referenced without adding a theme path
+ app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))
+
+ # Add Sphinx message catalog for newer versions of Sphinx
+ # See http://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_message_catalog
+ rtd_locale_path = path.join(path.abspath(path.dirname(__file__)), 'locale')
+ app.add_message_catalog('sphinx', rtd_locale_path)
+ app.connect('config-inited', config_initiated)
+
+ # sphinx emits the permalink icon for headers, so choose one more in keeping with our theme
+ app.config.html_permalinks_icon = "\uf0c1"
+
+ # Extend the default context when rendering the templates.
+ app.connect("html-page-context", extend_html_context)
+
+ return {'parallel_read_safe': True, 'parallel_write_safe': True}
diff --git a/sphinx_rtd_theme/breadcrumbs.html b/sphinx_rtd_theme/breadcrumbs.html
new file mode 100644
index 0000000..bd45b6d
--- /dev/null
+++ b/sphinx_rtd_theme/breadcrumbs.html
@@ -0,0 +1,77 @@
+{%- if meta is defined and meta is not none %}
+ {%- set check_meta = True %}
+{%- else %}
+ {%- set check_meta = False %}
+{%- endif %}
+
+{%- if check_meta and 'github_url' in meta %}
+ {%- set display_github = True %}
+{%- endif %}
+
+{%- if check_meta and 'bitbucket_url' in meta %}
+ {%- set display_bitbucket = True %}
+{%- endif %}
+
+{%- if check_meta and 'gitlab_url' in meta %}
+ {%- set display_gitlab = True %}
+{%- endif %}
+
+{%- set display_vcs_links = display_vcs_links if display_vcs_links is defined else True %}
+
+{#- Translators: This is an ARIA section label for page links, including previous/next page link and links to GitHub/GitLab/etc. -#}
+<div role="navigation" aria-label="{{ _('Page navigation') }}">
+ <ul class="wy-breadcrumbs">
+ {%- block breadcrumbs %}
+ <li><a href="{{ pathto(master_doc) }}" class="icon icon-home" aria-label="Home"></a></li>
+ {%- for doc in parents %}
+ <li class="breadcrumb-item"><a href="{{ doc.link|e }}">{{ doc.title }}</a></li>
+ {%- endfor %}
+ <li class="breadcrumb-item active">{{ title }}</li>
+ {%- endblock %}
+ {%- block breadcrumbs_aside %}
+ <li class="wy-breadcrumbs-aside">
+ {%- if hasdoc(pagename) and display_vcs_links %}
+ {%- if display_github %}
+ {%- if check_meta and 'github_url' in meta %}
+ <!-- User defined GitHub URL -->
+ <a href="{{ meta['github_url'] }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
+ {%- else %}
+ <a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
+ {%- endif %}
+ {%- elif display_bitbucket %}
+ {%- if check_meta and 'bitbucket_url' in meta %}
+ <!-- User defined Bitbucket URL -->
+ <a href="{{ meta['bitbucket_url'] }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
+ {%- else %}
+ <a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}?mode={{ theme_vcs_pageview_mode or "view" }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
+ {%- endif %}
+ {%- elif display_gitlab %}
+ {%- if check_meta and 'gitlab_url' in meta %}
+ <!-- User defined GitLab URL -->
+ <a href="{{ meta['gitlab_url'] }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
+ {%- else %}
+ <a href="https://{{ gitlab_host|default("gitlab.com") }}/{{ gitlab_user }}/{{ gitlab_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ gitlab_version }}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
+ {%- endif %}
+ {%- elif show_source and source_url_prefix %}
+ <a href="{{ source_url_prefix }}{{ pagename }}{{ page_source_suffix }}">{{ _('View page source') }}</a>
+ {%- elif show_source and has_source and sourcename %}
+ <a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a>
+ {%- endif %}
+ {%- endif %}
+ </li>
+ {%- endblock %}
+ </ul>
+
+ {%- if (theme_prev_next_buttons_location == 'top' or theme_prev_next_buttons_location == 'both') and (next or prev) %}
+ {#- Translators: This is an ARIA section label for sequential page links, such as previous and next page links. -#}
+ <div class="rst-breadcrumbs-buttons" role="navigation" aria-label="{{ _('Sequential page navigation') }}">
+ {%- if prev %}
+ <a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> {{ _('Previous') }}</a>
+ {%- endif %}
+ {%- if next %}
+ <a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n">{{ _('Next') }} <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+ {%- endif %}
+ </div>
+ {%- endif %}
+ <hr/>
+</div>
diff --git a/sphinx_rtd_theme/footer.html b/sphinx_rtd_theme/footer.html
new file mode 100644
index 0000000..7b831c1
--- /dev/null
+++ b/sphinx_rtd_theme/footer.html
@@ -0,0 +1,62 @@
+<footer>
+ {%- if (theme_prev_next_buttons_location == 'bottom' or theme_prev_next_buttons_location == 'both') and (next or prev) %}
+ {#- Translators: This is an ARIA section label for the footer section of the page. -#}
+ <div class="rst-footer-buttons" role="navigation" aria-label="{{ _('Footer') }}">
+ {%- if prev %}
+ <a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> {{ _('Previous') }}</a>
+ {%- endif %}
+ {%- if next %}
+ <a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n" rel="next">{{ _('Next') }} <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+ {%- endif %}
+ </div>
+ {%- endif %}
+
+ <hr/>
+
+ <div role="contentinfo">
+ {%- block contentinfo %}
+ <p>
+ {%- if show_copyright %}
+ {%- if hasdoc('copyright') %}
+ {%- trans path=pathto('copyright'), copyright=copyright|e %}&#169; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
+ {%- else %}
+ {%- trans copyright=copyright|e %}&#169; Copyright {{ copyright }}.{% endtrans %}
+ {%- endif %}
+ {%- endif %}
+
+ {%- if build_id and build_url %}
+ <span class="build">
+ {#- Translators: Build is a noun, not a verb -#}
+ {%- trans %}Build{% endtrans -%}
+ <a href="{{ build_url }}">{{ build_id }}</a>.
+ </span>
+ {%- elif commit %}
+ <span class="commit">
+ {#- Translators: the phrase "revision" comes from Git, referring to a commit #}
+ {%- trans %}Revision{% endtrans %} <code>{{ commit }}</code>.
+ </span>
+ {%- endif %}
+ {%- if last_updated %}
+ <span class="lastupdated">
+ {%- trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
+ </span>
+ {%- endif -%}
+
+ </p>
+ {%- endblock %}
+ </div>
+
+ {% if show_sphinx %}
+ {%- set sphinx_web = '<a href="https://www.sphinx-doc.org/">Sphinx</a>' %}
+ {%- set readthedocs_web = '<a href="https://readthedocs.org">Read the Docs</a>' %}
+ {#- Translators: the variable "sphinx_web" is a link to the Sphinx project documentation with the text "Sphinx" #}
+ {%- trans sphinx_web=sphinx_web, readthedocs_web=readthedocs_web %}Built with {{ sphinx_web }} using a{% endtrans %}
+ {#- Translators: "theme" refers to a theme for Sphinx, which alters the appearance of the generated documentation #}
+ <a href="https://github.com/readthedocs/sphinx_rtd_theme">{% trans %}theme{% endtrans %}</a>
+ {#- Translators: this is always used as "provided by Read the Docs", and should not imply Read the Docs is an author of the generated documentation. #}
+ {% trans %}provided by {{ readthedocs_web }}{% endtrans %}.
+ {% endif %}
+
+ {%- block extrafooter %} {% endblock %}
+
+</footer>
diff --git a/sphinx_rtd_theme/layout.html b/sphinx_rtd_theme/layout.html
new file mode 100644
index 0000000..c8a3076
--- /dev/null
+++ b/sphinx_rtd_theme/layout.html
@@ -0,0 +1,251 @@
+{# TEMPLATE VAR SETTINGS #}
+{%- set url_root = pathto('', 1) %}
+{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
+{%- if not embedded and docstitle %}
+ {%- set titlesuffix = " &mdash; "|safe + docstitle|e %}
+{%- else %}
+ {%- set titlesuffix = "" %}
+{%- endif %}
+{%- set lang_attr = 'en' if language == None else (language | replace('_', '-')) %}
+{%- set sphinx_writer = 'writer-html5' if html5_doctype else 'writer-html4' -%}
+
+{# Build sphinx_version_info tuple from sphinx_version string in pure Jinja #}
+{%- set (_ver_major, _ver_minor) = (sphinx_version.split('.') | list)[:2] | map('int') -%}
+{%- set sphinx_version_info = (_ver_major, _ver_minor, -1) -%}
+
+<!DOCTYPE html>
+<html class="{{ sphinx_writer }}" lang="{{ lang_attr }}"{% if sphinx_version_info >= (7, 2) %} data-content_root="{{ content_root }}"{% endif %}>
+<head>
+ <meta charset="utf-8" />
+ {{- metatags }}
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ {%- block htmltitle %}
+ <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
+ {%- endblock -%}
+
+ {#- CSS #}
+ {%- if sphinx_version_info < (4, 0) -%}
+ <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
+ <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
+ {%- endif %}
+ {%- for css_file in css_files %}
+ {%- if css_file|attr("filename") %}
+ {{ css_tag(css_file) }}
+ {%- else %}
+ <link rel="stylesheet" href="{{ pathto(css_file, 1)|escape }}" type="text/css" />
+ {%- endif %}
+ {%- endfor %}
+
+ {# "extra_css_files" is a theme option and it's always a string #}
+ {%- for css_file in extra_css_files %}
+ <link rel="stylesheet" href="{{ pathto(css_file, 1)|escape }}" type="text/css" />
+ {%- endfor -%}
+
+ {#- FAVICON
+ favicon_url is the only context var necessary since Sphinx 4.
+ In Sphinx<4, we use favicon but need to prepend path info.
+ #}
+ {%- set _favicon_url = favicon_url | default(pathto('_static/' + (favicon or ""), 1)) %}
+ {%- if favicon_url or favicon %}
+ <link rel="shortcut icon" href="{{ _favicon_url }}"/>
+ {%- endif %}
+
+ {#- CANONICAL URL (deprecated) #}
+ {%- if theme_canonical_url and not pageurl %}
+ <link rel="canonical" href="{{ theme_canonical_url }}{{ pagename }}.html"/>
+ {%- endif -%}
+
+ {#- CANONICAL URL #}
+ {%- if pageurl %}
+ <link rel="canonical" href="{{ pageurl|e }}" />
+ {%- endif -%}
+
+ {#- JAVASCRIPTS #}
+ {%- block scripts %}
+ <!--[if lt IE 9]>
+ <script src="{{ pathto('_static/js/html5shiv.min.js', 1) }}"></script>
+ <![endif]-->
+ {%- if not embedded %}
+ {# XXX Sphinx 1.8.0 made this an external js-file, quick fix until we refactor the template to inherert more blocks directly from sphinx #}
+ {%- if sphinx_version_info >= (1, 8) -%}
+ {%- if sphinx_version_info < (4, 0) -%}
+ <script id="documentation_options" data-url_root="{{ url_root }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script>
+ {%- endif -%}
+ {%- for scriptfile in script_files %}
+ {{ js_tag(scriptfile) }}
+ {%- endfor %}
+ {%- else %}
+ <script>
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT:'{{ url_root }}',
+ VERSION:'{{ release|e }}',
+ LANGUAGE:'{{ language }}',
+ COLLAPSE_INDEX:false,
+ FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
+ HAS_SOURCE: {{ has_source|lower }},
+ SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}'
+ };
+ </script>
+ {%- for scriptfile in script_files %}
+ <script src="{{ pathto(scriptfile, 1) }}"></script>
+ {%- endfor %}
+ {%- endif %}
+ <script src="{{ pathto('_static/js/theme.js', 1) }}"></script>
+
+ {#- OPENSEARCH #}
+ {%- if use_opensearch %}
+ <link rel="search" type="application/opensearchdescription+xml"
+ title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
+ href="{{ pathto('_static/opensearch.xml', 1) }}"/>
+ {%- endif %}
+ {%- endif %}
+ {%- endblock %}
+
+ {%- block linktags %}
+ {%- if hasdoc('about') %}
+ <link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
+ {%- endif %}
+ {%- if hasdoc('genindex') %}
+ <link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
+ {%- endif %}
+ {%- if hasdoc('search') %}
+ <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
+ {%- endif %}
+ {%- if hasdoc('copyright') %}
+ <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
+ {%- endif %}
+ {%- if next %}
+ <link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
+ {%- endif %}
+ {%- if prev %}
+ <link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
+ {%- endif %}
+ {%- endblock %}
+ {%- block extrahead %} {% endblock %}
+</head>
+
+<body class="wy-body-for-nav">
+
+ {%- block extrabody %} {% endblock %}
+ <div class="wy-grid-for-nav">
+ {#- SIDE NAV, TOGGLES ON MOBILE #}
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+ <div class="wy-side-scroll">
+ <div class="wy-side-nav-search" {% if theme_style_nav_header_background %} style="background: {{theme_style_nav_header_background}}" {% endif %}>
+ {%- block sidebartitle %}
+
+ {# the logo helper function was removed in Sphinx 6 and deprecated since Sphinx 4 #}
+ {# the master_doc variable was renamed to root_doc in Sphinx 4 (master_doc still exists in later Sphinx versions) #}
+ {%- set _logo_url = logo_url|default(pathto('_static/' + (logo or ""), 1)) %}
+ {%- set _root_doc = root_doc|default(master_doc) %}
+ <a href="{{ pathto(_root_doc) }}"{% if not theme_logo_only %} class="icon icon-home"{% endif %}>
+ {% if not theme_logo_only %}{{ project }}{% endif %}
+ {%- if logo or logo_url %}
+ <img src="{{ _logo_url }}" class="logo" alt="{{ _('Logo') }}"/>
+ {%- endif %}
+ </a>
+
+ {%- if theme_display_version %}
+ {%- set nav_version = version %}
+ {%- if READTHEDOCS and current_version %}
+ {%- set nav_version = current_version %}
+ {%- endif %}
+ {%- if nav_version %}
+ <div class="version">
+ {{ nav_version }}
+ </div>
+ {%- endif %}
+ {%- endif %}
+
+ {%- include "searchbox.html" %}
+
+ {%- endblock %}
+ </div>
+
+ {%- block navigation %}
+ {#- Translators: This is an ARIA section label for the main navigation menu -#}
+ <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="{{ _('Navigation menu') }}">
+ {%- block menu %}
+ {%- set toctree = toctree(maxdepth=theme_navigation_depth|int,
+ collapse=theme_collapse_navigation|tobool,
+ includehidden=theme_includehidden|tobool,
+ titles_only=theme_titles_only|tobool) %}
+ {%- if toctree %}
+ {{ toctree }}
+ {%- else %}
+ <!-- Local TOC -->
+ <div class="local-toc">{{ toc }}</div>
+ {%- endif %}
+ {%- endblock %}
+ </div>
+ {%- endblock %}
+ </div>
+ </nav>
+
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+ {#- MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
+ {#- Translators: This is an ARIA section label for the navigation menu that is visible when viewing the page on mobile devices -#}
+ <nav class="wy-nav-top" aria-label="{{ _('Mobile navigation menu') }}" {% if theme_style_nav_header_background %} style="background: {{theme_style_nav_header_background}}" {% endif %}>
+ {%- block mobile_nav %}
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+ <a href="{{ pathto(master_doc) }}">{{ project }}</a>
+ {%- endblock %}
+ </nav>
+
+ <div class="wy-nav-content">
+ {%- block content %}
+ {%- if theme_style_external_links|tobool %}
+ <div class="rst-content style-external-links">
+ {%- else %}
+ <div class="rst-content">
+ {%- endif %}
+ {% include "breadcrumbs.html" %}
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+ {%- block document %}
+ <div itemprop="articleBody">
+ {% block body %}{% endblock %}
+ </div>
+ {%- if self.comments()|trim %}
+ <div class="articleComments">
+ {%- block comments %}{% endblock %}
+ </div>
+ {%- endif%}
+ </div>
+ {%- endblock %}
+ {% include "footer.html" %}
+ </div>
+ {%- endblock %}
+ </div>
+ </section>
+ </div>
+ {% include "versions.html" -%}
+
+ <script>
+ jQuery(function () {
+ SphinxRtdTheme.Navigation.enable({{ 'true' if theme_sticky_navigation|tobool else 'false' }});
+ });
+ </script>
+
+ {#- Do not conflict with RTD insertion of analytics script #}
+ {%- if not READTHEDOCS %}
+ {%- if theme_analytics_id %}
+ <!-- Theme Analytics -->
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ theme_analytics_id }}"></script>
+ <script>
+ window.dataLayer = window.dataLayer || [];
+ function gtag(){dataLayer.push(arguments);}
+ gtag('js', new Date());
+
+ gtag('config', '{{ theme_analytics_id }}', {
+ 'anonymize_ip': {{ 'true' if theme_analytics_anonymize_ip|tobool else 'false' }},
+ });
+ </script>
+
+ {%- endif %}
+ {%- endif %}
+
+ {%- block footer %} {% endblock %}
+
+</body>
+</html>
diff --git a/sphinx_rtd_theme/locale/da/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/da/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..d045ada
--- /dev/null
+++ b/sphinx_rtd_theme/locale/da/LC_MESSAGES/sphinx.po
@@ -0,0 +1,206 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Benjamin Bach <benjaoming@gmail.com>, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Benjamin Bach <benjaoming@gmail.com>, 2023\n"
+"Language-Team: Danish (https://www.transifex.com/readthedocs/teams/101354/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr "Navigation"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Ret på GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Ret på Bitbucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Ret på GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Vis sidekilde"
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr "Sekventiel navigation"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Forrige"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Næste"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Sidefod"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Copyright %(copyright)s."
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Build"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Version"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Last updated on %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Baseret på %(sphinx_web)s med et"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "tema"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "udviklet af%(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Søg i %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Om disse dokumenter"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Indeks"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Søg"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Copyright"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr "Navigation"
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr "Mobil navigation"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "Venligst aktivér JavaScript for at anvende søgefunktionen"
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Søgeresultater"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Din søgning matchede ingen dokumenter. Tjek at alle ord er stavet korrekt og"
+" at du har valgt tilstrækkeligt med kategorier."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Søg i dokumentation"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versioner"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Downloads"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "På Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Projektets startside"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Builds"
+
+#~ msgid "Docs"
+#~ msgstr "Dokumentation"
+
+#~ msgid "Free document hosting provided by"
+#~ msgstr "Gratis hosting af dokumentation leveret af"
+
+#~ msgid "Documentation Home"
+#~ msgstr "Dokumentationens startside"
+
+#~ msgid "Breadcrumbs"
+#~ msgstr "Sti"
+
+#~ msgid "Main"
+#~ msgstr "Primær"
+
+#~ msgid "Top"
+#~ msgstr "Top"
diff --git a/sphinx_rtd_theme/locale/de/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/de/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..2596d53
--- /dev/null
+++ b/sphinx_rtd_theme/locale/de/LC_MESSAGES/sphinx.po
@@ -0,0 +1,136 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Tom Kunze <transifex.com@tomabrafix.de>, 2019
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Tom Kunze <transifex.com@tomabrafix.de>, 2019\n"
+"Language-Team: German (https://www.transifex.com/readthedocs/teams/101354/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Auf GitHub bearbeiten"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Auf Bitbucket bearbeiten"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Auf GitLab bearbeiten"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Quelltext anzeigen"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Zurück"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Weiter"
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Build"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Zuletzt aktualisiert am %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Erstellt mit %(sphinx_web)s mit einem"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "bereitgestellt von %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "%(docstitle)s durchsuchen"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Über diese Dokumentation"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Index"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Suche"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Copyright"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "Bitte aktiviere JavaScript, um die Suchfunktion zu nutzen."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Suchergebnisse"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Es wurden keine mit deiner Suchanfrage übereinstimmenden Dokumente gefunden."
+" Achte darauf, dass alle Wörter richtig geschrieben sind und dass genug "
+"Kategorien ausgewählt sind."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Dokumentation durchsuchen"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versionen"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "Auf Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Projektübersicht"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Builds"
diff --git a/sphinx_rtd_theme/locale/en/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/en/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..2ac34f5
--- /dev/null
+++ b/sphinx_rtd_theme/locale/en/LC_MESSAGES/sphinx.po
@@ -0,0 +1,201 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 15:43-0600\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language: en\n"
+"Language-Team: en <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr ""
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr ""
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr ""
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr ""
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr ""
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr ""
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr ""
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr ""
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr ""
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr ""
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr ""
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr ""
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr ""
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr ""
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr ""
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words "
+"are spelled correctly and that you've selected enough categories."
+msgstr ""
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr ""
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr ""
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr ""
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr ""
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr ""
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr ""
+
+#~ msgid "Docs"
+#~ msgstr ""
+
+#~ msgid "Free document hosting provided by"
+#~ msgstr ""
+
+#~ msgid "Documentation Home"
+#~ msgstr ""
+
+#~ msgid "Breadcrumbs"
+#~ msgstr ""
+
+#~ msgid "Main"
+#~ msgstr ""
+
+#~ msgid "Top"
+#~ msgstr ""
+
diff --git a/sphinx_rtd_theme/locale/es/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/es/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..6a6f8ce
--- /dev/null
+++ b/sphinx_rtd_theme/locale/es/LC_MESSAGES/sphinx.po
@@ -0,0 +1,169 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Anthony <aj@ohess.org>, 2019
+# Radina Matic <radina.matic@gmail.com>, 2021
+# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2022
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2022\n"
+"Language-Team: Spanish (https://www.transifex.com/readthedocs/teams/101354/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: es\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Editar en GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Editar en Bitbucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Editar en GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Ver código fuente de la página"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Anterior"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Siguiente"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Pie de página"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Derechos de autor</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Derechos de autor %(copyright)s."
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Compilación"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Revisión"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Actualizado por última vez el %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Compilado con %(sphinx_web)s usando un"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "tema"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "proporcionado por %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Buscar en %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Sobre esta documentación"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Índice"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Búsqueda"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Derechos de autor"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logotipo"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr ""
+"Por favor, active JavaScript para habilitar la funcionalidad de búsqueda."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Resultados de la búsqueda"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Su búsqueda no coincide con ningún documento. Por favor, asegúrese de que "
+"todas las palabras estén correctamente escritas y que usted haya "
+"seleccionado las suficientes categorías."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Buscar documentos"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versiones"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Descargas"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "En Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Página de Proyecto"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Compilaciones"
diff --git a/sphinx_rtd_theme/locale/et/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/et/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..7ce3ad7
--- /dev/null
+++ b/sphinx_rtd_theme/locale/et/LC_MESSAGES/sphinx.po
@@ -0,0 +1,166 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Anthony <aj@ohess.org>, 2020
+# Ivar Smolin <okul@linux.ee>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Ivar Smolin <okul@linux.ee>, 2021\n"
+"Language-Team: Estonian (https://www.transifex.com/readthedocs/teams/101354/et/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: et\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Muuda GitHubis"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Muuda Bitbucketis"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Muuda GitLabis"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Vaata lehe lähtekoodi"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Eelmine"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Järgmine"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Jalus"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Autoriõigus</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Autoriõigus %(copyright)s."
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Ehitus"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Redaktsioon"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Viimati uuendatud %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Ehitatud %(sphinx_web)s'iga,"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "kujundusteema"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "on loonud %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Otsi dokumendist %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Nende dokumentide kirjeldused"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Indeks"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Otsing"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Autoriõigus"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "Otsimisfunktsiooni lubamiseks aktiveeri palun JavaScript"
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Otsingu tulemused"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Sinu otsingule ei vastanud ükski dokument. Palun veendu, et kõik sisestatud "
+"sõnad on õigesti kirjutatud ja sa oled valikud piisaval hulgal kategooriaid."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Otsi dokumente"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versioonid"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Allalaadimised"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "Saidil Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Projekti kodu"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Ehitused"
diff --git a/sphinx_rtd_theme/locale/fa_IR/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/fa_IR/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..d353a0b
--- /dev/null
+++ b/sphinx_rtd_theme/locale/fa_IR/LC_MESSAGES/sphinx.po
@@ -0,0 +1,161 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Anthony <aj@ohess.org>, 2021
+# Peyman M., 2022
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Peyman M., 2022\n"
+"Language-Team: Persian (Iran) (https://www.transifex.com/readthedocs/teams/101354/fa_IR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: fa_IR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "ویرایش در GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "ویرایش در Bitbucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "ویرایش در GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "نمایش متن منبع صفحه"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "پیشین"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "بعدی"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">حق انتشار</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; حق انتشار%(copyright)s."
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "ساخت"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "بازبینی"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "آخرین بروز رسانی در %(last_updated)s ."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "ساخته شده با %(sphinx_web)s"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "پوسته"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "تهیّه شده با %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "جستجو در %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "درباره این مستندات"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "فهرست"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "جستجوی"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "کپی رایت"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "آرم"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "لطفاً جاوا اسکریپت را فعّال کنید تا قابلیّت جستجو فعّال شود."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "نتایج جستجو"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"جستجوی شما با هیچ سندی مطابقت نداشت. لطفاً از درستی املای واژگان مطمئن شوید."
+" هم‌چنین بررسی کنید آیا به اندازه کافی دسته بندی انتخاب کرده‌اید."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "جستجوی مستندات"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "نگارش‌ها"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "بارگیری‌ها"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "درباره‌ی خواندن مستندات"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "صفحه خانگی پروژه"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "ساخت‌ها"
diff --git a/sphinx_rtd_theme/locale/fr/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/fr/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..3bc076b
--- /dev/null
+++ b/sphinx_rtd_theme/locale/fr/LC_MESSAGES/sphinx.po
@@ -0,0 +1,169 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Anthony <aj@ohess.org>, 2020
+# Radina Matic <radina.matic@gmail.com>, 2021
+# Jérémie Tarot <silopolis@gmail.com>, 2023
+# CapitainFlam, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: CapitainFlam, 2023\n"
+"Language-Team: French (https://www.transifex.com/readthedocs/teams/101354/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Éditer sur GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Éditer sur Bitbucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Éditer sur GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Afficher la source de la page"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Précédent"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Suivant"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Pied de page"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Droits d'auteur</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Droits d'auteur %(copyright)s."
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Compilation"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Révision"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Dernière mise à jour le %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Compilé avec %(sphinx_web)s en utilisant un"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "thème"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "fourni par %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Rechercher dans %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "À propos de cette documentation"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Index"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Rechercher"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Droits d'auteur"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "Activez JavaScript pour accéder à la fonction de recherche."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Résultats de la recherche"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Votre recherche ne correspond à aucun document. Assurez-vous que tous les "
+"mots sont correctement orthographiés et que vous avez sélectionné "
+"suffisamment de catégories."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Rechercher docs"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versions"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Téléchargements"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "À propos de Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Accueil du projet"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Compilations"
diff --git a/sphinx_rtd_theme/locale/hr/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/hr/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..a8201c9
--- /dev/null
+++ b/sphinx_rtd_theme/locale/hr/LC_MESSAGES/sphinx.po
@@ -0,0 +1,23 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Ivan Bratović, 2022
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Ivan Bratović, 2022\n"
+"Language-Team: Croatian (https://www.transifex.com/readthedocs/teams/101354/hr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: hr\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
diff --git a/sphinx_rtd_theme/locale/hu/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/hu/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..bf3d642
--- /dev/null
+++ b/sphinx_rtd_theme/locale/hu/LC_MESSAGES/sphinx.po
@@ -0,0 +1,23 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Balázs Úr, 2022
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Balázs Úr, 2022\n"
+"Language-Team: Hungarian (https://www.transifex.com/readthedocs/teams/101354/hu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
diff --git a/sphinx_rtd_theme/locale/it/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/it/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..55003ff
--- /dev/null
+++ b/sphinx_rtd_theme/locale/it/LC_MESSAGES/sphinx.po
@@ -0,0 +1,192 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Anthony <aj@ohess.org>, 2021
+# Maurizio Paglia <mpaglia0@gmail.com>, 2021
+# albanobattistella <albano_battistella@hotmail.com>, 2022
+# Benjamin Bach <benjaoming@gmail.com>, 2022
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Benjamin Bach <benjaoming@gmail.com>, 2022\n"
+"Language-Team: Italian (https://www.transifex.com/readthedocs/teams/101354/it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: it\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr "Naviga tra le pagine"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Modifica su GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Modifica su Bitbucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Modifica su GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Visualizza sorgente pagina"
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr "Naviga sequenzialmente tra le pagine"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Precedente"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Prossimo"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Piè di pagina"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Copyright %(copyright)s."
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Rev."
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Revisione"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Ultimo aggiornamento il %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Realizzato con %(sphinx_web)s usando un"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "tema"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "fornito da %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Cerca in %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Nota sulla documentazione"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Indice"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Ricerca"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Copyright"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr "Menu di navigazione"
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr "Menu navigazione dispositivi mobili"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "Devi attivare JavaScript per attivare la funzione di ricerca."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Risultati della ricerca"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"La tua ricerca non ha prodotto nessun risultato. Assicurati di aver scritto "
+"correttamente tutti i termini cercati e di aver selezionato sufficienti "
+"categorie."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Cerca documenti"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versioni"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Downloads"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "Riguardo Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Home progetto"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Rev."
diff --git a/sphinx_rtd_theme/locale/lt/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/lt/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..c319eca
--- /dev/null
+++ b/sphinx_rtd_theme/locale/lt/LC_MESSAGES/sphinx.po
@@ -0,0 +1,188 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Tomas Straupis, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Tomas Straupis, 2021\n"
+"Language-Team: Lithuanian (https://www.transifex.com/readthedocs/teams/101354/lt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr "Puslapių navigacija"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Keisti GitHub'e"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Keisti Bitbucket'e"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Keisti GitLab'e"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Žiūrėti puslapio šaltinį"
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr "Puslapių navigacija iš eilės"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Ankstesnis"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Kitas"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Poraštė"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Copyright %(copyright)s."
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Surinkimas"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Versija"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Atnaujinta %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Surinkta su %(sphinx_web)s naudojant"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "temą"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "pateiktą %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Ieškoti %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Apie šiuos dokumentus"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Indeksas"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Paieška"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Autorių teisės"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr "Navigacijos meniu"
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr "Mobilios navigacijos meniu"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "Prašome įjungti JavaScript, kad veiktų paieškos funkcionalumas."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Paieškos rezultatai"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Jūsų paieškai neatitiko nei vienas dokumentas. Prašome įsitikinti, kad visi "
+"žodžiai parašyti teisingai ir kad parinkote pakankamai kategorijų."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Ieškoti dokumentuose"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versijos"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Atsisiuntimai"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "Apie Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Projekto namai"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Surinkimai"
diff --git a/sphinx_rtd_theme/locale/nl/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/nl/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..ded8a30
--- /dev/null
+++ b/sphinx_rtd_theme/locale/nl/LC_MESSAGES/sphinx.po
@@ -0,0 +1,188 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Jesse Tan, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Jesse Tan, 2021\n"
+"Language-Team: Dutch (https://www.transifex.com/readthedocs/teams/101354/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr "Paginanavigatie"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Bewerk op GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Bewerk op BitBucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Bewerk op GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Bekijk paginabron"
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr "Navigatie voor gerelateerde pagina's"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Vorige"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Volgende"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Voettekst"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Copyright %(copyright)s."
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Bouwresultaat"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Revisie"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Laatste update op %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Gebouwd met %(sphinx_web)s met een"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "thema"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "geleverd door %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Zoek binnen %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Over deze documenten"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Index"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Zoek"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Copyright"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr "Navigatiemenu"
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr "Navigatiemenu voor mobiel"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "Zet JavaScript aan om de zoekfunctie mogelijk te maken."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Zoekresultaten"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Zoekpoging vond geen documenten. Zorg ervoor dat alle woorden correct zijn "
+"gespeld en dat voldoende categorieën zijn geselecteerd."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Zoek in documentatie"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versies"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Downloads"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "Op Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Project Home"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Bouwresultaten"
diff --git a/sphinx_rtd_theme/locale/pl/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/pl/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..de9fc0e
--- /dev/null
+++ b/sphinx_rtd_theme/locale/pl/LC_MESSAGES/sphinx.po
@@ -0,0 +1,137 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Michal Sniatala, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Michal Sniatala, 2021\n"
+"Language-Team: Polish (https://www.transifex.com/readthedocs/teams/101354/pl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: pl\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Edytuj na GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Edytuj na Bitbucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Edytuj na GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Zobacz źródło strony"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Poprzedni"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Następny"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Prawa zastrzeżone</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Prawa zastrzeżone %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Ostatnia aktualizacja %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Zbudowano w %(sphinx_web)s używając"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "dostarczone przez %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Szukaj w %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "O tych dokumentach"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Indeks"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Szukaj"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Prawa zastrzeżone"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr ""
+"Proszę aktywować obsługę JavaScript, aby włączyć funkcję wyszukiwania."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Wyniki wyszukiwania"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Nie znaleziono szukanej frazy. Upewnij się, że wszystkie słowa są napisane "
+"poprawnie i że wybrałeś wystarczającą liczbę kategorii."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Szukaj"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Wersje"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Pobrania"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "Na Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Strona projektu"
diff --git a/sphinx_rtd_theme/locale/pt/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/pt/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..d033d81
--- /dev/null
+++ b/sphinx_rtd_theme/locale/pt/LC_MESSAGES/sphinx.po
@@ -0,0 +1,161 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Ana Costa <anacosta.xl@gmail.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Ana Costa <anacosta.xl@gmail.com>, 2021\n"
+"Language-Team: Portuguese (https://www.transifex.com/readthedocs/teams/101354/pt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: pt\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr "Navegação da página"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Editar no GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Editar no Bitbucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Editar no GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Ver código-fonte da página"
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr "Navegação sequencial da página"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Anterior"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Seguinte"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Rodapé"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Revisão"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Última actualização em %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Compilado com %(sphinx_web)s usando um"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "tema"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "fornecido por %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Procurar em %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Sobre estes documentos"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Índice"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Pesquisar"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr "Menu de navegação"
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr "Menu de navegação móvel"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "Por favor, active o JavaScript para permitir a função de pesquisa."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Resultados de Pesquisa"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"A sua pesquisa não encontrou nenhum documento. Por favor confirme que todas "
+"as palavras estão bem escritas e que selecionou categorias suficientes."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Pesquisar docs"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versões"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Transferências"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "No Read the Docs"
diff --git a/sphinx_rtd_theme/locale/pt_BR/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/pt_BR/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..11eaa0e
--- /dev/null
+++ b/sphinx_rtd_theme/locale/pt_BR/LC_MESSAGES/sphinx.po
@@ -0,0 +1,191 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Rafael Fontenelle <rffontenelle@gmail.com>, 2021
+# Wellington Uemura <wellingtonuemura@gmail.com>, 2022
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Wellington Uemura <wellingtonuemura@gmail.com>, 2022\n"
+"Language-Team: Portuguese (Brazil) (https://www.transifex.com/readthedocs/teams/101354/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr "Navegação da página"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Editar no GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Editar no Bitbucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Editar no GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Ver código-fonte da página"
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr "Navegação sequencial da página"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Anterior"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Próximo"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Rodapé"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Direitos autorais</a> %(copyright)s."
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Direitos autorais %(copyright)s."
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Compilação"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Revisão"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Última atualização em %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Compilado com %(sphinx_web)s usando um"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "tema"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "fornecido por %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Pesquisar em %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Sobre esses documentos"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Índice"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Pesquisar"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Copyright"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr "Menu de navegação"
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr "Menu de navegação móvel"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr ""
+"Por favor, ative JavaScript para habilitar a funcionalidade de pesquisa."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Resultados da pesquisa"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"A sua pesquisa não encontrou nenhum documento correspondente. Verifique se "
+"todas as palavras estão escritas corretamente e se você selecionou "
+"categorias suficientes."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Pesquisar documentos"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versões"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Downloads"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "No Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Página inicial"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Compilações"
diff --git a/sphinx_rtd_theme/locale/ru/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/ru/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..91d261e
--- /dev/null
+++ b/sphinx_rtd_theme/locale/ru/LC_MESSAGES/sphinx.po
@@ -0,0 +1,189 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# lvv83 <vlozhkin83@gmail.com>, 2019
+# Dmitry Shachnev <mitya57@gmail.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Dmitry Shachnev <mitya57@gmail.com>, 2021\n"
+"Language-Team: Russian (https://www.transifex.com/readthedocs/teams/101354/ru/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr "Навигация по страницам"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Редактировать на GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Редактировать на BitBucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Редактировать на GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Просмотреть исходный код страницы"
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr "Навигация по соседним страницам"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Предыдущая"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Следующая"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "Нижняя область"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">Авторские права</a> %(copyright)s. "
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; Авторские права %(copyright)s. "
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Сборка"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Ревизия"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Последний раз обновлено %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Собрано при помощи %(sphinx_web)s с использованием"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "темы,"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "предоставленной %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Поиск в %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Об этих документах"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Алфавитный указатель"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Поиск"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Авторские права"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Логотип"
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr "Меню навигации"
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr "Меню навигации для мобильных устройств"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "Активируйте JavaScript, чтобы использовать функционал поиска."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Результаты поиска"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"По Вашему запросу не найдено результатов. Пожалуйста, проверьте, что все "
+"слова написаны правильно, и Вы выбрали нужные категории."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Поиск в документации"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Версии"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Загрузки"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "На Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Домашняя страница проекта"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Сборки"
diff --git a/sphinx_rtd_theme/locale/sphinx.pot b/sphinx_rtd_theme/locale/sphinx.pot
new file mode 100644
index 0000000..7e443c5
--- /dev/null
+++ b/sphinx_rtd_theme/locale/sphinx.pot
@@ -0,0 +1,182 @@
+# Translations template for sphinx_rtd_theme.
+# Copyright (C) 2023 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 1.2.0rc4\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr ""
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr ""
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr ""
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr ""
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr ""
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr ""
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr ""
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr ""
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr ""
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr ""
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr ""
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr ""
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr ""
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr ""
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr ""
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr ""
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr ""
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words "
+"are spelled correctly and that you've selected enough categories."
+msgstr ""
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr ""
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr ""
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr ""
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr ""
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr ""
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr ""
+
diff --git a/sphinx_rtd_theme/locale/sv/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/sv/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..794458a
--- /dev/null
+++ b/sphinx_rtd_theme/locale/sv/LC_MESSAGES/sphinx.po
@@ -0,0 +1,151 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Daniel Holmberg <daniel.holmberg97@gmail.com>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Daniel Holmberg <daniel.holmberg97@gmail.com>, 2020\n"
+"Language-Team: Swedish (https://www.transifex.com/readthedocs/teams/101354/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "Editera på GitHub"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Editera på Bitbucket"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "Editera på GitLab"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Visa sidkälla"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Tillbaka"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Nästa"
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Bygg"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Ändra"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Senast uppdaterad %(last_updated)s."
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "Gjord med %(sphinx_web)s med hjälp av"
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "tema"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "erhållet av %(readthedocs_web)s"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Sök i %(docstitle)s"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Om dessa dokument"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Index"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Sök"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Upphovsrätt"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr ""
+"Var vänlig och aktivera JavaScript för att möjliggöra sökfunktionaliteten."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Sökresultat"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Din sökning gav inga träffar. Var vänlig och se till att alla ord är rätt "
+"stavade och att du har valt tillräckligt många kategorier."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Sök i dokumentationen"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Versioner"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "Nerladdningar"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "På Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Projekt Hem"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Versioner"
diff --git a/sphinx_rtd_theme/locale/tr/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/tr/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..f33c5f5
--- /dev/null
+++ b/sphinx_rtd_theme/locale/tr/LC_MESSAGES/sphinx.po
@@ -0,0 +1,143 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# BouRock, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: BouRock, 2020\n"
+"Language-Team: Turkish (https://www.transifex.com/readthedocs/teams/101354/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "GitHub'da Düzenle"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "Bitbucket'ta Düzenle"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "GitLab'ta Düzenle"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "Sayfa kaynağını görüntüle"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "Önceki"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "Sonraki"
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "Oluşturma"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "Gözden geçirme"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Son olarak %(last_updated)s tarihinde güncellendi."
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "tema"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "kullanılarak %(readthedocs_web)s tarafından sağlanmasıyla oluşturuldu"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "%(docstitle)s içinde ara"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "Bu belgeler hakkında"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "Dizin"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "Arama"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "Telif hakkı"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr ""
+"Arama işlevselliğini etkinleştirmek için lütfen JavaScript'i etkinleştirin."
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "Arama Sonuçları"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+"Aramanız hiçbir belgeyle eşleşmedi. Lütfen tüm kelimelerin doğru "
+"yazıldığından ve yeterli kategori seçtiğinizden emin olun."
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "Belgeleri arayın"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "Sürümler"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "İndirmeler"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "Read the Docs Üzerinde"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "Proje Ana Sayfa"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "Oluşturmalar"
diff --git a/sphinx_rtd_theme/locale/zh_CN/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/zh_CN/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..314b601
--- /dev/null
+++ b/sphinx_rtd_theme/locale/zh_CN/LC_MESSAGES/sphinx.po
@@ -0,0 +1,188 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# 王赛 <wangsai@bootcss.com>, 2019
+# Anthony <aj@ohess.org>, 2022
+# JY3, 2022
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: JY3, 2022\n"
+"Language-Team: Chinese (China) (https://www.transifex.com/readthedocs/teams/101354/zh_CN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. This is an ARIA section label for page links, including previous/next page
+#. link and links to GitHub/GitLab/etc.
+#: sphinx_rtd_theme/breadcrumbs.html:22
+msgid "Page navigation"
+msgstr "页面导航"
+
+#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
+msgid "Edit on GitHub"
+msgstr "在 GitHub 上编辑"
+
+#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
+msgid "Edit on Bitbucket"
+msgstr "在 Bitbucket 上编辑"
+
+#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
+msgid "Edit on GitLab"
+msgstr "在 GitLab 上编辑"
+
+#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
+msgid "View page source"
+msgstr "查看页面源码"
+
+#. This is an ARIA section label for sequential page links, such as previous
+#. and next page links.
+#: sphinx_rtd_theme/breadcrumbs.html:67
+msgid "Sequential page navigation"
+msgstr "顺序式页面导航"
+
+#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
+msgid "Previous"
+msgstr "上一页"
+
+#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
+msgid "Next"
+msgstr "下一页"
+
+#. This is an ARIA section label for the footer section of the page.
+#: sphinx_rtd_theme/footer.html:4
+msgid "Footer"
+msgstr "页脚"
+
+#: sphinx_rtd_theme/footer.html:21
+#, python-format
+msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&#169; <a href=\"%(path)s\">版权所有</a> %(copyright)s。"
+
+#: sphinx_rtd_theme/footer.html:23
+#, python-format
+msgid "&#169; Copyright %(copyright)s."
+msgstr "&#169; 版权所有 %(copyright)s。"
+
+#. Build is a noun, not a verb
+#: sphinx_rtd_theme/footer.html:30
+msgid "Build"
+msgstr "构建"
+
+#. the phrase "revision" comes from Git, referring to a commit
+#: sphinx_rtd_theme/footer.html:36
+msgid "Revision"
+msgstr "版本"
+
+#: sphinx_rtd_theme/footer.html:41
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "最后更新时间 %(last_updated)s。"
+
+#. the variable "sphinx_web" is a link to the Sphinx project documentation
+#. with
+#. the text "Sphinx"
+#: sphinx_rtd_theme/footer.html:53
+#, python-format
+msgid "Built with %(sphinx_web)s using a"
+msgstr "利用 %(sphinx_web)s 构建,使用的 "
+
+#. "theme" refers to a theme for Sphinx, which alters the appearance of the
+#. generated documentation
+#: sphinx_rtd_theme/footer.html:55
+msgid "theme"
+msgstr "主题"
+
+#. this is always used as "provided by Read the Docs", and should not imply
+#. Read the Docs is an author of the generated documentation.
+#: sphinx_rtd_theme/footer.html:57
+#, python-format
+msgid "provided by %(readthedocs_web)s"
+msgstr "由 %(readthedocs_web)s 开发"
+
+#: sphinx_rtd_theme/layout.html:97
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "在 %(docstitle)s 中搜索"
+
+#: sphinx_rtd_theme/layout.html:105
+msgid "About these documents"
+msgstr "关于此文档"
+
+#: sphinx_rtd_theme/layout.html:108
+msgid "Index"
+msgstr "索引"
+
+#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
+msgid "Search"
+msgstr "搜索"
+
+#: sphinx_rtd_theme/layout.html:114
+msgid "Copyright"
+msgstr "版权所有"
+
+#: sphinx_rtd_theme/layout.html:143
+msgid "Logo"
+msgstr "Logo"
+
+#. This is an ARIA section label for the main navigation menu
+#: sphinx_rtd_theme/layout.html:166
+msgid "Navigation menu"
+msgstr "导航菜单"
+
+#. This is an ARIA section label for the navigation menu that is visible when
+#. viewing the page on mobile devices
+#: sphinx_rtd_theme/layout.html:188
+msgid "Mobile navigation menu"
+msgstr "移动版导航菜单"
+
+#: sphinx_rtd_theme/search.html:31
+msgid "Please activate JavaScript to enable the search functionality."
+msgstr "请启用 JavaScript 以便使用搜索功能"
+
+#. Search is a noun, not a verb
+#: sphinx_rtd_theme/search.html:39
+msgid "Search Results"
+msgstr "搜索结果"
+
+#: sphinx_rtd_theme/search.html:41
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "您的搜索没有匹配到任何文档。请确保所有单词拼写正确,并选择了足够多的类别。"
+
+#: sphinx_rtd_theme/searchbox.html:4
+msgid "Search docs"
+msgstr "搜索文档"
+
+#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
+msgid "Versions"
+msgstr "版本"
+
+#: sphinx_rtd_theme/versions.html:17
+msgid "Downloads"
+msgstr "下载"
+
+#. The phrase "Read the Docs" is not translated
+#: sphinx_rtd_theme/versions.html:24
+msgid "On Read the Docs"
+msgstr "托管于 Read the Docs"
+
+#: sphinx_rtd_theme/versions.html:26
+msgid "Project Home"
+msgstr "项目主页"
+
+#: sphinx_rtd_theme/versions.html:29
+msgid "Builds"
+msgstr "构建"
diff --git a/sphinx_rtd_theme/locale/zh_TW/LC_MESSAGES/sphinx.po b/sphinx_rtd_theme/locale/zh_TW/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..f42213f
--- /dev/null
+++ b/sphinx_rtd_theme/locale/zh_TW/LC_MESSAGES/sphinx.po
@@ -0,0 +1,23 @@
+# English translations for sphinx_rtd_theme.
+# Copyright (C) 2019 ORGANIZATION
+# This file is distributed under the same license as the sphinx_rtd_theme
+# project.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
+#
+# Translators:
+# Jason Zhou, 2023
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2023-02-06 15:36+0100\n"
+"PO-Revision-Date: 2019-07-16 21:44+0000\n"
+"Last-Translator: Jason Zhou, 2023\n"
+"Language-Team: Chinese (Taiwan) (https://www.transifex.com/readthedocs/teams/101354/zh_TW/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.11.0\n"
+"Language: zh_TW\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
diff --git a/sphinx_rtd_theme/search.html b/sphinx_rtd_theme/search.html
new file mode 100644
index 0000000..4c282db
--- /dev/null
+++ b/sphinx_rtd_theme/search.html
@@ -0,0 +1,56 @@
+{#
+ basic/search.html
+ ~~~~~~~~~~~~~~~~~
+
+ Template for the search page.
+
+ :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :license: BSD, see https://github.com/sphinx-doc/sphinx/blob/master/LICENSE for details.
+#}
+{%- extends "layout.html" %}
+{% set title = _('Search') %}
+{% set display_vcs_links = False %}
+{%- block scripts %}
+ {{ super() }}
+ <script src="{{ pathto('_static/searchtools.js', 1) }}"></script>
+ <script src="{{ pathto('_static/language_data.js', 1) }}"></script>
+{%- endblock %}
+{% block footer %}
+ <script>
+ jQuery(function() { Search.loadIndex("{{ pathto('searchindex.js', 1) }}"); });
+ </script>
+ {# this is used when loading the search index using $.ajax fails,
+ such as on Chrome for documents on localhost #}
+ <script id="searchindexloader"></script>
+ {{ super() }}
+{% endblock %}
+{% block body %}
+ <noscript>
+ <div id="fallback" class="admonition warning">
+ <p class="last">
+ {% trans trimmed %}Please activate JavaScript to enable the search
+ functionality.{% endtrans %}
+ </p>
+ </div>
+ </noscript>
+
+ {% if search_performed %}
+ {# Translators: Search is a noun, not a verb #}
+ <h2>{{ _('Search Results') }}</h2>
+ {% if not search_results %}
+ <p>{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}</p>
+ {% endif %}
+ {% endif %}
+ <div id="search-results">
+ {% if search_results %}
+ <ul>
+ {% for href, caption, context in search_results %}
+ <li>
+ <a href="{{ pathto(item.href) }}">{{ caption }}</a>
+ <p class="context">{{ context|e }}</p>
+ </li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+ </div>
+{% endblock %}
diff --git a/sphinx_rtd_theme/searchbox.html b/sphinx_rtd_theme/searchbox.html
new file mode 100644
index 0000000..a16ab2c
--- /dev/null
+++ b/sphinx_rtd_theme/searchbox.html
@@ -0,0 +1,9 @@
+{%- if 'singlehtml' not in builder %}
+<div role="search">
+ <form id="rtd-search-form" class="wy-form" action="{{ pathto('search') }}" method="get">
+ <input type="text" name="q" placeholder="{{ _('Search docs') }}" aria-label="{{ _('Search docs') }}" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+</div>
+{%- endif %}
diff --git a/sphinx_rtd_theme/theme.conf b/sphinx_rtd_theme/theme.conf
new file mode 100644
index 0000000..5cc687d
--- /dev/null
+++ b/sphinx_rtd_theme/theme.conf
@@ -0,0 +1,20 @@
+[theme]
+inherit = basic
+stylesheet = css/theme.css
+pygments_style = default
+
+[options]
+canonical_url =
+analytics_id =
+analytics_anonymize_ip = False
+collapse_navigation = True
+sticky_navigation = True
+navigation_depth = 4
+includehidden = True
+titles_only =
+logo_only =
+display_version = True
+prev_next_buttons_location = bottom
+style_external_links = False
+style_nav_header_background =
+vcs_pageview_mode =
diff --git a/sphinx_rtd_theme/versions.html b/sphinx_rtd_theme/versions.html
new file mode 100644
index 0000000..bab969e
--- /dev/null
+++ b/sphinx_rtd_theme/versions.html
@@ -0,0 +1,34 @@
+{% if READTHEDOCS %}
+{# Add rst-badge after rst-versions for small badge style. #}
+ <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="{{ _('Versions') }}">
+ <span class="rst-current-version" data-toggle="rst-current-version">
+ <span class="fa fa-book"> Read the Docs</span>
+ v: {{ current_version }}
+ <span class="fa fa-caret-down"></span>
+ </span>
+ <div class="rst-other-versions">
+ <dl>
+ <dt>{{ _('Versions') }}</dt>
+ {% for slug, url in versions %}
+ <dd><a href="{{ url }}">{{ slug }}</a></dd>
+ {% endfor %}
+ </dl>
+ <dl>
+ <dt>{{ _('Downloads') }}</dt>
+ {% for type, url in downloads %}
+ <dd><a href="{{ url }}">{{ type }}</a></dd>
+ {% endfor %}
+ </dl>
+ <dl>
+ {# Translators: The phrase "Read the Docs" is not translated #}
+ <dt>{{ _('On Read the Docs') }}</dt>
+ <dd>
+ <a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">{{ _('Project Home') }}</a>
+ </dd>
+ <dd>
+ <a href="//{{ PRODUCTION_DOMAIN }}/builds/{{ slug }}/?fromdocs={{ slug }}">{{ _('Builds') }}</a>
+ </dd>
+ </dl>
+ </div>
+ </div>
+{% endif %}
diff --git a/src/sass/_theme_badge.sass b/src/sass/_theme_badge.sass
new file mode 100644
index 0000000..b24ec10
--- /dev/null
+++ b/src/sass/_theme_badge.sass
@@ -0,0 +1,94 @@
+.rst-versions
+ position: fixed
+ bottom: 0
+ left: 0
+ width: $nav-desktop-width
+ color: $section-background-color
+ background: darken($menu-background-color, 8%)
+ font-family: $base-font-family
+ z-index: $z-index-tray
+ a
+ color: $link_color
+ text-decoration: none
+ .rst-badge-small
+ display: none
+ .rst-current-version
+ padding: $base-line-height / 2
+ background-color: darken($menu-background-color, 5%)
+ display: block
+ text-align: right
+ font-size: 90%
+ cursor: pointer
+ color: $green
+ +clearfix
+ .fa
+ color: $section-background-color
+ .fa-book
+ float: left
+ .icon-book
+ float: left
+ &.rst-out-of-date
+ background-color: $red
+ color: $white
+ &.rst-active-old-version
+ background-color: $yellow
+ color: $black
+ &.shift-up
+ height: auto
+ max-height: 100%
+ overflow-y: scroll
+ &.shift-up .rst-other-versions
+ display: block
+ .rst-other-versions
+ font-size: 90%
+ padding: $base-line-height / 2
+ color: $text-medium
+ display: none
+ hr
+ display: block
+ height: 1px
+ border: 0
+ margin: 20px 0
+ padding: 0
+ border-top: solid 1px lighten($menu-background-color, 5%)
+ dd
+ display: inline-block
+ margin: 0
+ a
+ display: inline-block
+ padding: $base-line-height / 4
+ color: $section-background-color
+ &.rst-badge
+ width: auto
+ bottom: 20px
+ right: 20px
+ left: auto
+ border: none
+ max-width: $nav-desktop-width
+ max-height: 90%
+ .icon-book
+ float: none
+ line-height: 30px
+ .fa-book
+ float: none
+ line-height: 30px
+ &.shift-up .rst-current-version
+ text-align: right
+ .fa-book
+ float: left
+ .icon-book
+ float: left
+ > .rst-current-version
+ width: auto
+ height: 30px
+ line-height: 30px
+ padding: 0 $base-line-height / 4
+ display: block
+ text-align: center
+
++media($tablet)
+ .rst-versions
+ width: 85%
+ display: none
+ &.shift
+ display: block
diff --git a/src/sass/_theme_badge_fa.sass b/src/sass/_theme_badge_fa.sass
new file mode 100644
index 0000000..e2e54a5
--- /dev/null
+++ b/src/sass/_theme_badge_fa.sass
@@ -0,0 +1,67 @@
+// Slimmer version of FA for use on the badge_only.sass file.
+
++font-face(FontAwesome, '#{$fa-font-path}/fontawesome-webfont')
+
+.fa:before
+ display: inline-block
+ font-family: FontAwesome
+ font-style: normal
+ font-weight: normal
+ line-height: 1
+ text-decoration: inherit
+
+a .fa
+ display: inline-block
+ text-decoration: inherit
+
+
+li
+ .fa
+ display: inline-block
+ .fa-large:before,
+ .fa-large:before
+ /* 1.5 increased font size for fa-large * 1.25 width
+ width: 1.5 * 1.25em
+
+ul.fas
+ list-style-type: none
+ margin-left: 2em
+ text-indent: -0.8em
+ li
+ .fa
+ width: 0.8em
+ .fa-large:before,
+ .fa-large:before
+ /* 1.5 increased font size for fa-large * 1.25 width
+ vertical-align: baseline
+ // width: 1.5*1.25em
+
+.fa-book:before
+ content: "\f02d"
+
+.icon-book:before
+ content: "\f02d"
+
+.fa-caret-down:before
+ content: "\f0d7"
+
+.icon-caret-down:before
+ content: "\f0d7"
+
+.fa-caret-up:before
+ content: "\f0d8"
+
+.icon-caret-up:before
+ content: "\f0d8"
+
+.fa-caret-left:before
+ content: "\f0d9"
+
+.icon-caret-left:before
+ content: "\f0d9"
+
+.fa-caret-right:before
+ content: "\f0da"
+
+.icon-caret-right:before
+ content: "\f0da"
diff --git a/src/sass/_theme_breadcrumbs.sass b/src/sass/_theme_breadcrumbs.sass
new file mode 100644
index 0000000..7050d6b
--- /dev/null
+++ b/src/sass/_theme_breadcrumbs.sass
@@ -0,0 +1,35 @@
+.wy-breadcrumbs
+ +clearfix
+
+.wy-breadcrumbs > li
+ display: inline-block
+ padding-top: 5px
+ &.wy-breadcrumbs-aside
+ float: right
+ /* Style literals as links */
+ code
+ all: inherit
+ color: inherit
+
+.breadcrumb-item::before
+ content: "/"
+ color: #bbb
+ font-size: 13px
+ padding: 0 6px 0 3px
+
+.wy-breadcrumbs-extra
+ margin-bottom: 0
+ color: $text-light
+ font-size: 80%
+ display: inline-block
+
+
++media($mobile)
+ .wy-breadcrumbs-extra
+ display: none
+ .wy-breadcrumbs li.wy-breadcrumbs-aside
+ display: none
+
+@media print
+ .wy-breadcrumbs li.wy-breadcrumbs-aside
+ display: none
diff --git a/src/sass/_theme_font_awesome_compatibility.sass b/src/sass/_theme_font_awesome_compatibility.sass
new file mode 100644
index 0000000..5857956
--- /dev/null
+++ b/src/sass/_theme_font_awesome_compatibility.sass
@@ -0,0 +1,24 @@
+.icon
+ @extend .fa
+.icon-home
+ @extend .fa-home
+.icon-search
+ @extend .fa-search
+.icon-book
+ @extend .fa-book
+.icon-caret-down
+ @extend .fa-caret-down
+.icon-github
+ @extend .fa-github
+.icon-bitbucket
+ @extend .fa-bitbucket
+.icon-gitlab
+ @extend .fa-gitlab
+.icon-fire
+ @extend .fa-fire
+.icon-circle-arrow-right
+ @extend .fa-arrow-circle-right
+.icon-circle-arrow-left
+ @extend .fa-arrow-circle-left
+.icon-link
+ @extend .fa-link
diff --git a/src/sass/_theme_font_local.sass b/src/sass/_theme_font_local.sass
new file mode 100644
index 0000000..48f22e7
--- /dev/null
+++ b/src/sass/_theme_font_local.sass
@@ -0,0 +1,44 @@
+$lato-font-path: "~lato-font/fonts"
+$roboto-font-path: "~roboto-fontface/fonts/roboto-slab"
+
+@font-face
+ font-family: 'Lato'
+ src: url('#{$lato-font-path}/lato-normal/lato-normal.woff2') format('woff2'), url('#{$lato-font-path}/lato-normal/lato-normal.woff') format('woff')
+ font-weight: 400
+ font-style: normal
+ font-display: $font-display
+
+@font-face
+ font-family: 'Lato'
+ src: url('#{$lato-font-path}/lato-bold/lato-bold.woff2') format('woff2'), url('#{$lato-font-path}/lato-bold/lato-bold.woff') format('woff')
+ font-weight: 700
+ font-style: normal
+ font-display: $font-display
+
+@font-face
+ font-family: 'Lato'
+ src: url('#{$lato-font-path}/lato-bold-italic/lato-bold-italic.woff2') format('woff2'), url('#{$lato-font-path}/lato-bold-italic/lato-bold-italic.woff') format('woff')
+ font-weight: 700
+ font-style: italic
+ font-display: $font-display
+
+@font-face
+ font-family: 'Lato'
+ src: url('#{$lato-font-path}/lato-normal-italic/lato-normal-italic.woff2') format('woff2'), url('#{$lato-font-path}/lato-normal-italic/lato-normal-italic.woff') format('woff')
+ font-weight: 400
+ font-style: italic
+ font-display: $font-display
+
+@font-face
+ font-family: 'Roboto Slab'
+ font-style: normal
+ font-weight: 400
+ src: url('#{$roboto-font-path}/Roboto-Slab-Regular.woff2') format('woff2'), url('#{$roboto-font-path}/Roboto-Slab-Regular.woff') format('woff')
+ font-display: $font-display
+
+@font-face
+ font-family: 'Roboto Slab'
+ font-style: normal
+ font-weight: 700
+ src: url('#{$roboto-font-path}/Roboto-Slab-Bold.woff2') format('woff2'), url('#{$roboto-font-path}/Roboto-Slab-Bold.woff') format('woff')
+ font-display: $font-display
diff --git a/src/sass/_theme_layout.sass b/src/sass/_theme_layout.sass
new file mode 100644
index 0000000..e23b1f0
--- /dev/null
+++ b/src/sass/_theme_layout.sass
@@ -0,0 +1,424 @@
+// Set uniform (but not relative) base font size
+html
+ font-size: $base-font-size
+
+.wy-affix
+ position: fixed
+ top: $gutter
+
+.wy-menu
+ a:hover
+ text-decoration: none
+
+.wy-menu-horiz
+ +clearfix
+ ul, li
+ display: inline-block
+ li:hover
+ background: rgba(255, 255, 255, 0.1)
+ li
+ &.divide-left
+ border-left: solid 1px hsl(0, 0%, 25%)
+ &.divide-right
+ border-right: solid 1px hsl(0, 0%, 25%)
+ a
+ height: $base-font-size * 2
+ display: inline-block
+ line-height: $base-font-size * 2
+ padding: 0 $base-font-size
+
+.wy-menu-vertical
+ width: $nav-desktop-width
+
+ header, p.caption
+ color: $nav-caption
+ height: $base-font-size * 2
+ line-height: $base-font-size * 2
+ padding: 0 $gutter
+ margin: ($base-line-height / 2) 0 0 0
+ display: block
+ font-weight: bold
+ text-transform: uppercase
+ font-size: 85%
+ white-space: nowrap
+
+ ul
+ margin-bottom: 0
+ li
+ &.divide-top
+ border-top: solid 1px hsl(0, 0%, 25%)
+ &.divide-bottom
+ border-bottom: solid 1px hsl(0, 0%, 25%)
+ &.current
+ background: darken($menu-vertical-background-color, 10%)
+ a
+ color: $menu-link-medium
+ border-right: solid 1px darken($menu-vertical-background-color, 20%)
+ padding: ($gutter / 4) ($gutter * 1.5)
+ &:hover
+ background: darken($menu-vertical-background-color, 15%)
+ code
+ border: none
+ background: inherit
+ color: inherit
+ padding-left: 0
+ padding-right: 0
+ // Expand links
+ button.toctree-expand
+ display: block
+ float: left
+ margin-left: -1.2em
+ @extend .fa
+ @extend .fa-plus-square-o
+ line-height: 18px
+ color: darken($menu-link-medium, 20%)
+ border: none
+ background: none
+ padding: 0
+
+ // On state for the first level
+ li.on a, li.current > a
+ color: $menu-link-color
+ padding: ($gutter / 4) $gutter
+ font-weight: bold
+ position: relative
+ background: $menu-vertical-background-color
+ border: none
+ padding-left: $gutter -4px
+ &:hover
+ background: $menu-vertical-background-color
+ button.toctree-expand
+ color: $menu-link-medium
+ button.toctree-expand
+ @extend .fa
+ @extend .fa-minus-square-o
+ display: block
+ line-height: 18px
+ color: darken($menu-link-medium, 30%)
+
+ li.toctree-l1.current > a
+ border-bottom: solid 1px darken($menu-vertical-background-color, 20%)
+ border-top: solid 1px darken($menu-vertical-background-color, 20%)
+
+ // This is the on state for pages beyond second level
+
+ %hide_show_toctree_ul
+ > ul
+ display: none
+ &.current > ul
+ display: block
+
+ %shrink_toctree_element
+ font-size: 0.9em
+
+ %toctree_link_color
+ color: $menu-link-color
+
+ %toctree_hover_link_color
+ color: $menu-link-medium
+
+ %display_current_toctree_element
+ display: block
+
+ @for $toc_level from 1 through 10
+ .toctree-l#{$toc_level}.current .toctree-l#{$toc_level + 1}
+ @extend %hide_show_toctree_ul
+
+ @if $toc_level > 1
+ li.toctree-l#{$toc_level}
+ a
+ @extend %toctree_link_color
+ &.current
+ > a
+ padding: ($gutter / 4) ($gutter * ($toc_level - 1 + 0.5))
+
+ li.toctree-l#{$toc_level + 1} > a
+ @extend %display_current_toctree_element
+ padding: ($gutter / 4) ($gutter * ($toc_level + 0.5))
+ padding-right: $gutter
+ a:hover button.toctree-expand
+ @extend %toctree_hover_link_color
+ @if $toc_level > 2 and $toc_level < 5
+ li.toctree-l#{$toc_level}
+ @extend %shrink_toctree_element
+
+ li.toctree-l2
+ &.current
+ > a
+ background: darken($menu-vertical-background-color, 20%)
+ li.toctree-l3 > a
+ background: darken($menu-vertical-background-color, 20%)
+ button.toctree-expand
+ color: darken($menu-vertical-background-color, 35%)
+ li.toctree-l3
+ &.current
+ > a
+ background: darken($menu-vertical-background-color, 25%)
+ li.toctree-l4 > a
+ background: darken($menu-vertical-background-color, 25%)
+ button.toctree-expand
+ color: darken($menu-vertical-background-color, 40%)
+
+ li.current ul
+ display: block
+ li ul
+ margin-bottom: 0
+ display: none
+ li ul li a
+ margin-bottom: 0
+ color: $menu-link-light
+ font-weight: normal
+ a
+ line-height: 18px
+ padding: ($gutter / 4) $gutter
+ display: block
+ position: relative
+ font-size: 90%
+ color: $menu-link-light
+ &:hover
+ background-color: lighten($menu-background-color, 10%)
+ cursor: pointer
+ button.toctree-expand
+ color: $menu-link-light
+ &:active
+ background-color: $menu-logo-color
+ cursor: pointer
+ color: $menu-link-active
+ button.toctree-expand
+ color: $menu-link-active
+
+.wy-side-nav-search
+ display: block
+ width: $nav-desktop-width
+ padding: $gutter / 2
+ margin-bottom: $gutter / 2
+ z-index: $z-index-popover
+ background-color: $nav-search-background-color
+ text-align: center
+ color: $nav-search-color
+ input[type=text]
+ width: 100%
+ border-radius: 50px
+ padding: 6px 12px
+ border-color: darken($link-color, 5%)
+ img
+ display: block
+ margin: auto auto ($gutter / 2) auto
+ height: 45px
+ width: 45px
+ background-color: $menu-logo-color
+ padding: 5px
+ border-radius: 100%
+ > a, .wy-dropdown > a
+ color: $nav-search-color
+ font-size: 100%
+ font-weight: bold
+ display: inline-block
+ padding: ($base-line-height / 6) ($base-line-height / 4)
+ margin-bottom: $gutter / 2
+ max-width: 100%
+ &:hover
+ background: rgba(255, 255, 255, 0.1)
+ img.logo
+ display: block // display on its own line all the time
+ margin: 0 auto
+ height: auto // undo badge styling above
+ width: auto
+ border-radius: 0
+ max-width: 100% // shrink on mobile, if appropriate
+ background: rgba(0, 0, 0, 0) // make hover background of parent show up properly
+ &.icon
+ img.logo
+ margin-top: 0.85em // space it away from the title text
+ > div.version
+ margin-top: -1 * $gutter / 4
+ margin-bottom: $gutter / 2
+ font-weight: normal
+ color: rgba(255, 255, 255, 0.3)
+
+.wy-nav .wy-menu-vertical
+ header
+ color: $link-color
+ a
+ color: $text-light
+ &:hover
+ background-color: $link-color
+ color: $white
+
+[data-menu-wrap]
+ +transition(all 0.2s ease-in)
+ position: absolute
+ opacity: 1
+ width: 100%
+ opacity: 0
+ &.move-center
+ left: 0
+ right: auto
+ opacity: 1
+ &.move-left
+ right: auto
+ left: -100%
+ opacity: 0
+ &.move-right
+ right: -100%
+ left: auto
+ opacity: 0
+
+.wy-body-for-nav
+ background: $section-background-color
+
+.wy-grid-for-nav
+ position: absolute
+ width: 100%
+ height: 100%
+
+.wy-nav-side
+ position: fixed
+ top: 0
+ bottom: 0
+ left: 0
+ padding-bottom: 2em
+ width: $nav-desktop-width
+ overflow-x: hidden
+ overflow-y: hidden
+ min-height: 100%
+ color: $menu-medium
+ background: $nav-background-color
+ z-index: $z-index-popover
+
+.wy-side-scroll
+ width: $nav-desktop-width + 20px
+ position: relative
+ overflow-x: hidden
+ overflow-y: scroll
+ height: 100%
+
+.wy-nav-top
+ display: none
+ background: $link-color
+ color: $white
+ padding: ($gutter / 4) ($gutter / 2)
+ position: relative
+ line-height: 50px
+ text-align: center
+ font-size: 100%
+ +clearfix
+ a
+ color: $white
+ font-weight: bold
+ img
+ margin-right: $base-line-height / 2
+ height: 45px
+ width: 45px
+ background-color: $menu-logo-color
+ padding: 5px
+ border-radius: 100%
+ i
+ font-size: 30px
+ float: left
+ cursor: pointer
+ padding-top: inherit
+
+.wy-nav-content-wrap
+ margin-left: $nav-desktop-width
+ background: $section-background-color
+ min-height: 100%
+
+.wy-nav-content
+ padding: $gutter ($gutter * 2)
+ height: 100%
+ max-width: $nav-content-width
+ margin: auto
+
+.wy-body-mask
+ position: fixed
+ width: 100%
+ height: 100%
+ background: rgba(0, 0, 0, 0.2)
+ display: none
+ z-index: $z-index-modal - 1
+ &.on
+ display: block
+footer
+ color: $footer-color
+ p
+ margin-bottom: $base-line-height / 2
+ span.commit code
+ padding: 0px
+ font-family: $code-font-family
+ font-size: 1em
+ background: none
+ border: none
+ color: $footer-color
+
+.rst-footer-buttons
+ &:before, &:after
+ width: 100%
+ +clearfix
+
+.rst-breadcrumbs-buttons
+ margin-top: 12px
+ +clearfix
+
+#search-results
+ .search li
+ margin-bottom: $base-line-height
+ border-bottom: solid 1px $table_border_color
+ padding-bottom: $base-line-height
+ .search li:first-child
+ border-top: solid 1px $table_border_color
+ padding-top: $base-line-height
+ .search li a
+ font-size: 120%
+ margin-bottom: $base-line-height / 2
+ display: inline-block
+ .context
+ color: $text-medium
+ font-size: 90%
+
+.genindextable li > ul
+ margin-left: $base-line-height
+
++media($tablet)
+ .wy-body-for-nav
+ background: $section-background-color
+ .wy-nav-top
+ display: block
+ .wy-nav-side
+ @if $nav-desktop-position == left
+ left: -$nav-desktop-width
+ @else
+ right: -$nav-desktop-width
+ &.shift
+ width: 85%
+ left: 0
+ .wy-side-scroll
+ width: auto
+ .wy-side-nav-search
+ width: auto
+ .wy-menu.wy-menu-vertical
+ width: auto
+ .wy-nav-content-wrap
+ margin-left: 0
+ .wy-nav-content
+ padding: $gutter
+ &.shift
+ position: fixed
+ min-width: 100%
+ left: 85%
+ top: 0
+ height: 100%
+ overflow: hidden
+
+@media screen and (min-width: $nav-media-query)
+ .wy-nav-content-wrap
+ background: rgba(0, 0, 0, 0.05)
+ .wy-nav-content
+ margin: 0
+ background: $section-background-color
+
+@media print
+ .rst-versions, footer, .wy-nav-side
+ display: none
+ .wy-nav-content-wrap
+ margin-left: 0
diff --git a/src/sass/_theme_mathjax.sass b/src/sass/_theme_mathjax.sass
new file mode 100644
index 0000000..1004993
--- /dev/null
+++ b/src/sass/_theme_mathjax.sass
@@ -0,0 +1,5 @@
+span[id*='MathJax-Span']
+ color: $mathjax-color
+
+.math
+ text-align: center
diff --git a/src/sass/_theme_rst.sass b/src/sass/_theme_rst.sass
new file mode 100644
index 0000000..e8cebf3
--- /dev/null
+++ b/src/sass/_theme_rst.sass
@@ -0,0 +1,617 @@
+// -------------------------------------------------------------------------------------------------------------------
+// CONTRIBUTORS, PLEASE READ THIS!
+// -------------------------------------------------------------------------------------------------------------------
+// Couple things...
+// 1. Lots of this @extends from wyrm_core/_type.sass (http://www.github.com/snide/wyrm/.
+// * Try not to replace any @extends code. It's pretty generic stuff meant to work together.
+// * That said, know that I'm very unlikely to accept PRs from wyrm just to change style here.
+// 2. I plan to remove the !importants in here. Part of it is due to laziness, part to sphinx's fondness for nesting.
+// 3. Try to use variables from wyrm_core/wy_variables.sass. Notable are...
+// * $base-line-height // All margins, padding and line-height should use this in .25 increments.
+// * $text-color, $text-light, $text-dark...etc
+// * $base-font-family, $custom-font-family, $code-font-family
+// 4. If you have changes for mobile/tablet, put them at the bottom of the sass file.
+// --------------------------------------------------------------------------------------------------------------------
+
+.rst-content
+ // Some browsers like to give arbitrary margins :( make them all consistent.
+ h1, h2, h3, h4, h5, h6
+ margin-bottom: $base-line-height
+
+ // Sphinx by default applies HxW style attributes to images. This fixes that oversite.
+ img
+ max-width: 100%
+ height: auto
+
+ div.figure, figure
+ margin-bottom: $base-line-height
+ .caption-text
+ font-style: italic
+ p:last-child.caption
+ margin-bottom: 0px
+ &.align-center
+ text-align: center
+
+ // Usually it's a good idea to give images some space.
+ .section >, section >
+ img, a > img
+ margin-bottom: $base-line-height
+
+ // normalize browser styling
+ abbr[title]
+ text-decoration: none
+
+ // Style external links
+ &.style-external-links a.reference.external:after
+ font-family: FontAwesome
+ content: "\f08e"
+ color: $text-light
+ vertical-align: super
+ font-size: 60%
+ margin: 0 0.2em
+
+ // For the most part, its safe to assume that sphinx wants you to use a blockquote as an indent. It gets
+ // used in many different ways, so don't assume you can apply some fancy style, just leave it be.
+ blockquote
+ margin-left: $base-line-height
+ line-height: $base-line-height
+ margin-bottom: $base-line-height
+
+ pre.literal-block
+ white-space: pre
+ margin: 0
+ padding: ($base-line-height / 2) ($base-line-height / 2)
+ font-family: $code-font-family
+ display: block
+ overflow: auto
+ pre.literal-block, div[class^='highlight']
+ border: 1px solid $table-border-color
+ overflow-x: auto
+ // 1px hack otherwise border won't show. lame
+ margin: 1px 0 $base-line-height 0
+ div[class^='highlight']
+ padding: 0px
+ border: none
+ margin: 0
+ // Needs 100% width for line highlighting to work properly
+ div[class^='highlight'] td.code
+ width: 100%
+ .linenodiv pre
+ border-right: solid 1px lighten($table-border-color, 2%)
+ margin: 0
+ padding: ($base-line-height / 2) ($base-line-height / 2)
+ font-family: $code-font-family
+ user-select: none
+ pointer-events: none
+ div[class^='highlight'] pre
+ white-space: pre
+ margin: 0
+ padding: ($base-line-height / 2) ($base-line-height / 2)
+ display: block
+ overflow: auto
+ & .hll
+ // Line emphasis spans full width
+ display: block
+ margin: 0 (-1 * $base-line-height / 2)
+ padding: 0 ($base-line-height / 2)
+ pre.literal-block, div[class^='highlight'] pre, .linenodiv pre
+ font-family: $code-font-family
+ font-size: 12px
+ line-height: 1.4
+
+ // Do not allow selection of code block prompts and line numbers
+ div.highlight
+ span.linenos, .gp
+ user-select: none
+ pointer-events: none
+
+ span.linenos
+ display: inline-block
+ padding-left: 0px
+ padding-right: ($base-line-height / 2)
+ margin-right: ($base-line-height / 2)
+ border-right: 1px solid lighten($table-border-color, 2%)
+
+ .code-block-caption
+ font-style: italic
+ font-size: 85%
+ line-height: 1
+ padding: 1em 0
+ text-align: center
+
+ @media print
+ .codeblock, div[class^='highlight'], div[class^='highlight'] pre
+ white-space: pre-wrap
+
+ // These are the various note pullouts that sphinx applies
+ .note, .attention, .caution, .danger, .error, .hint, .important, .tip, .warning, .seealso, .admonition-todo, .admonition
+ @extend .wy-alert
+ // These block elements are unsuitable for having floating objects next
+ // to them
+ clear: both
+ .last, > *:last-child
+ margin-bottom: 0
+ .admonition-title
+ @extend .wy-alert-title
+ @extend .fa
+ @extend .fa-exclamation-circle
+ &:before
+ margin-right: 4px
+ .note, .seealso
+ @extend .wy-alert.wy-alert-info
+ .hint, .tip, .important
+ @extend .wy-alert.wy-alert-success
+ .error, .danger
+ @extend .wy-alert.wy-alert-danger
+ .warning, .caution, .attention, .admonition-todo
+ @extend .wy-alert.wy-alert-warning
+ // Some people put tables in notes. Let's give them very basic support.
+ .admonition table
+ border-color: rgba(0, 0, 0, 0.1)
+ td, th
+ background: transparent !important
+ border-color: rgba(0, 0, 0, 0.1) !important
+
+ .section, section, .toctree-wrapper
+ ul
+ @extend .wy-plain-list-disc
+ ol.loweralpha, ol.loweralpha > li
+ list-style: lower-alpha
+ ol.upperalpha, ol.upperalpha > li
+ list-style: upper-alpha
+ ol, ol.arabic
+ @extend .wy-plain-list-decimal
+ // Complex bullet lists, they have more item margins than simple lists
+ ol li, ul li
+ > *
+ margin-top: $base-line-height / 2
+ margin-bottom: $base-line-height / 2
+ &:first-child
+ margin-top: 0rem
+ > p
+ &, &:last-child
+ margin-bottom: $base-line-height / 2
+ &:only-child, &:only-child:last-child
+ margin-bottom: 0rem
+ > ul, > ol
+ margin-bottom: $base-line-height / 2
+ // Simple lists, no item margins
+ ol.simple li, ul.simple li
+ > *
+ margin-top: 0rem
+ margin-bottom: 0rem
+ ul, ol
+ margin-top: 0rem
+ margin-bottom: 0rem
+
+ .line-block
+ margin-left: 0px
+ margin-bottom: $base-line-height
+ line-height: $base-line-height
+ .line-block .line-block
+ margin-left: $base-line-height
+ margin-bottom: 0px
+
+ // Generics handling of headings and toc stuff.
+ .topic-title
+ font-weight: bold
+ margin-bottom: $base-line-height / 2
+ .toc-backref
+ color: $text-color
+ .align-right
+ float: right
+ margin: 0px 0px $base-line-height $base-line-height
+ .align-left
+ float: left
+ margin: 0px $base-line-height $base-line-height 0px
+ .align-center
+ margin: auto
+ // Do not override display:table for tables
+ &:not(table)
+ display: block
+ .toctree-wrapper > p.caption
+ @extend h2
+
+ // This is the #href that shows up on hover. Sphinx's is terrible so I hack it away.
+ h1, h2, h3, h4, h5, h6, dl dt, p, p.caption, table > caption, .code-block-caption, .eqno
+ .headerlink
+ opacity: 0
+ font-size: 14px
+ font-family: FontAwesome
+ margin-left: 0.5em
+ @extend .fa
+ &:focus
+ opacity: 1
+ &:hover .headerlink
+ opacity: 1
+
+ // Make links inside paragraphs wrap when they are too long
+ p a
+ overflow-wrap: anywhere
+ // Consistent font sizing for table typography
+ .wy-table
+ th, td
+ p, ul
+ font-size: inherit
+
+ // override the Wyrm accessibility anti-pattern of hiding button focus
+ .btn:focus
+ outline: 2px solid
+
+ table > caption .headerlink:after
+ font-size: 12px
+
+ .centered
+ text-align: center
+
+ // Sidebar content. You'll see at the bottom of this file I change it in mobile.
+ .sidebar
+ float: right
+ width: 40%
+ display: block
+ margin: 0 0 $base-line-height $base-line-height
+ padding: $base-line-height
+ background: $sidebar-background-color
+ border: solid 1px $sidebar-border-color
+ // Sidebar content is usually less relevant, so adjust the margins and sizes.
+ p, ul, dl
+ font-size: 90%
+ .last, > *:last-child
+ margin-bottom: 0
+ .sidebar-title
+ display: block
+ font-family: $custom-font-family
+ font-weight: bold
+ background: $table-border-color
+ padding: ($base-line-height / 4) ($base-line-height / 2)
+ margin: -$base-line-height
+ margin-bottom: $base-line-height
+ font-size: 100%
+ // Sphinx can highlight searched text with ?highlighted=searchterm
+ .highlighted
+ background: $highlight-color
+ box-shadow: 0 0 0 ($base-line-height / 12) $highlight-color
+ display: inline
+ font-weight: bold
+
+ // These are the little citation links [1] that show up within paragraphs.
+ .footnote-reference, .citation-reference
+ vertical-align: baseline
+ position: relative
+ top: -0.4em
+ line-height: 0
+ font-size: 90%
+ > span.fn-bracket
+ display: none
+
+ // Horizontal lists have multiple columns; use full width
+ .hlist
+ width: 100%
+
+ // Definition lists term/classifier separator
+ // Adds a separator for Sphinx > 1.x as a pseudo-element
+ // and hides the hardcoded separator from Sphinx 1.x
+ dl dt span.classifier
+ &:before
+ content: " : "
+ dl dt span.classifier-delimiter
+ display: none !important
+
+ // The html4 writer outputs the citation and footnotes as a table, and the
+ // html5 writer outputs these as a definition list (docutils < 0.18) or an
+ // aside/div (docutils 0.18+). We will use the fairly well supported css
+ // `grid` attributes to make these back into a table
+ // HTML4 writer
+ html.writer-html4 &
+ table.docutils.citation, table.docutils.footnote
+ background: none
+ border: none
+ td, tr
+ border: none
+ background-color: transparent !important
+ white-space: normal
+ td.label
+ padding-left: 0
+ padding-right: 0
+ vertical-align: top
+ // HTML5 writer
+ html.writer-html5 &
+ // docutils < 0.18 grid layout. Some spacing is the dl/dt/dd margins
+ dl.footnote, dl.citation, dl.field-list
+ display: grid
+ grid-template-columns: auto minmax(80%, 95%)
+ > dt
+ display: inline-grid
+ grid-template-columns: max-content auto
+ // docutils => 0.18 grid layout
+ aside.footnote, aside.citation, div.citation
+ display: grid
+ // Two any width columns for label and backrefs, a noop column to expand
+ // to fill the width allocated to the first two columns, and then the
+ // content column for the paragraphs.
+ grid-template-columns: auto auto minmax(0.65rem, auto) minmax(40%, 95%)
+ & > span.label
+ grid-column-start: 1
+ grid-column-end: 2
+ & > span.backrefs
+ grid-column-start: 2
+ grid-column-end: 3
+ grid-row-start: 1
+ grid-row-end: 3
+ & > p
+ grid-column-start: 4
+ grid-column-end: 5
+
+ // Shared backrefs styling for docutils versions
+ @mixin footnote-backrefs
+ text-align: left
+ font-style: italic
+ margin-left: .65rem
+ word-break: break-word
+ word-spacing: -0.1rem
+ max-width: 5rem
+
+ > a
+ &:not(:first-child)::before
+ content: " "
+ word-break: keep-all
+
+ // docutils < 0.18 html5 writer styling
+ dl.footnote, dl.citation, dl.field-list,
+ margin-bottom: $base-line-height
+ > dt
+ padding-left: 1rem
+ > dt, > dd
+ margin-bottom: 0rem
+ dl.footnote, dl.citation
+ font-size: .9rem
+ > dt
+ margin: 0rem 0.5rem 0.5rem 0rem
+ line-height: 1.2rem
+ word-break: break-all
+ font-weight: normal
+ > span.brackets
+ &:before
+ content: "["
+ &:after
+ content: "]"
+ > span.fn-backref
+ @include footnote-backrefs
+ > dd
+ margin: 0rem 0rem 0.5rem 0rem
+ line-height: 1.2rem
+ p
+ font-size: 0.9rem
+
+ // docutils => 0.18 html5 writer styling
+ aside.footnote, aside.citation, div.citation
+ padding-left: 1rem
+ padding-right: 1rem
+ font-size: 0.9rem
+ line-height: 1.2rem
+ p
+ font-size: 0.9rem
+ line-height: 1.2rem
+ margin-bottom: $base-line-height / 2
+ span.backrefs
+ @include footnote-backrefs
+ span.label
+ line-height: 1.2rem
+ aside.footnote-list, aside.citation-list, div.citation-list
+ margin-bottom: $base-line-height
+
+ dl.option-list
+ kbd
+ font-size: 0.9rem
+ // Both
+ html.writer-html4 & table.docutils.citation, table.docutils.footnote,
+ html.writer-html5 & dl.footnote,
+ html.writer-html5 & dl.citation,
+ html.writer-html5 & aside.footnote,
+ html.writer-html5 & aside.footnote-list aside.footnote,
+ html.writer-html5 & div.citation-list > div.citation
+ color: $text-medium
+ code
+ color: $gray
+
+ // Remove the large vertical space between citations and footnotes
+ .wy-table-responsive.citation, .wy-table-responsive.footnote
+ margin-bottom: 0
+ // Re-add vertical space to element directly following citation and footnotes,
+ // if the following element is of a different type
+ .wy-table-responsive.citation + :not(.citation),
+ .wy-table-responsive.footnote + :not(.footnote)
+ margin-top: $base-line-height
+ // Re-add vertical space after citation and footnotes if it is the last child of a parent
+ .wy-table-responsive.citation:last-child, .wy-table-responsive.footnote:last-child
+ margin-bottom: $base-line-height
+ table.docutils
+ @extend .wy-table
+ @extend .wy-table-bordered-all
+ th
+ border-color: $table-border-color
+ html.writer-html5 &
+ border: 1px solid $table-border-color
+ html.writer-html5 &
+ th > p, td > p
+ line-height: 1rem
+ margin-bottom: 0rem
+ font-size: 0.9rem
+ &:not(.field-list)
+ @extend .wy-table-striped
+ // Remove bottom margin for the last element (and it's last child)
+ td .last, td .last > *:last-child
+ margin-bottom: 0
+ // This table is what gets spit out for auto-generated API stuff. I style it smaller bits of padding.
+ table.field-list
+ @extend .wy-table
+ border: none
+ td
+ border: none
+ p
+ line-height: inherit
+ td > strong
+ display: inline-block
+ .field-name
+ padding-right: 10px
+ text-align: left
+ white-space: nowrap
+ .field-body
+ text-align: left
+
+ // These are the "literals" that get spit out when you mark stuff as ``code`` as your write.
+ tt, code
+ @extend code
+ color: $black
+ font-family: $code-font-family
+ padding: 2px 5px
+ big, em
+ font-size: 100% !important
+ line-height: normal
+
+ &.literal
+ color: $text-code-color
+ white-space: normal
+ &.xref, a &
+ font-weight: bold
+ color: $text-codexref-color
+ // https://github.com/readthedocs/sphinx_rtd_theme/issues/1368
+ overflow-wrap: normal
+ pre, kbd, samp
+ font-family: $code-font-family
+ // If the literal is inside an a tag, let's color it like a link
+ a tt, a code
+ color: $link-color
+ dl
+ margin-bottom: $base-line-height
+ dt
+ font-weight: bold
+ margin-bottom: $base-line-height / 2
+ // Most of the content within these dls are one liners, so I halve the normal margins.
+ p, table, ul, ol
+ margin-bottom: $base-line-height / 2
+ // rST seems to want dds to be treated as the browser would, indented.
+ dd
+ margin: 0 0 ($base-line-height / 2) $base-line-height
+ line-height: $base-line-height
+ > p:last-child,
+ > ol:last-child,
+ > ul:last-child,
+ > table:last-child
+ margin-bottom: 0
+ html.writer-html4 & dl:not(.docutils),
+ html.writer-html5 & dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)
+ margin-bottom: $base-line-height
+ > dt
+ display: table
+ margin: ($base-line-height / 4) 0
+ font-size: 90%
+ line-height: normal
+ background: lighten($class-color, 50%)
+ color: $class-color
+ border-top: solid 3px lighten($class-color, 20%)
+ padding: $base-line-height / 4
+ position: relative
+ &:before
+ color: lighten($class-color, 20%)
+ .headerlink
+ color: $text-color
+ font-size: 100% !important
+ // In the html4 writer, parameters is a table. In html5 writer, parameters
+ // is a nested dl.field-list
+ dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) > dt
+ margin-bottom: $base-line-height / 4
+ border: none
+ border-left: solid 3px hsl(0, 0%, 80%)
+ background: hsl(0, 0%, 94%)
+ color: $method-color
+ .headerlink
+ color: $headerlink-color
+ font-size: 100% !important
+ > dt:first-child
+ margin-top: 0
+ // Since dts get the callout style, we treat this less as callouts.
+ tt, code
+ &.descname, &.descclassname
+ background-color: transparent
+ border: none
+ padding: 0
+ font-size: 100% !important
+ &.descname
+ font-weight: bold
+ // This is for more advanced parameter control
+ .optional
+ display: inline-block
+ padding: 0 4px
+ color: $black
+ font-weight: bold
+ .property
+ display: inline-block
+ padding-right: 8px
+ max-width: 100%
+ // This is keywords such as "const"
+ .k
+ font-style: italic
+ .sig-name, .descname, .descclassname
+ font-family: $code-font-family
+ color: $black
+ // Doc links to sourcecode
+ .viewcode-link, .viewcode-back
+ display: inline-block
+ color: $text-viewcode-color
+ font-size: 80%
+ padding-left: $base-line-height
+ .viewcode-back
+ display: block
+ float: right
+ p.rubric
+ margin-bottom: 12px
+ font-weight: bold
+ //Download link
+ code.download
+ background: inherit
+ padding: inherit
+ font-weight: normal
+ font-family: inherit
+ font-size: inherit
+ color: inherit
+ border: inherit
+ white-space: inherit
+ span:first-child
+ -webkit-font-smoothing: subpixel-antialiased
+ @extend .fa
+ @extend .fa-download
+ &:before
+ margin-right: 4px
+ .guilabel,
+ .menuselection
+ font-size: 80%
+ font-weight: 700
+ border-radius: $base-line-height / 6
+ padding: ($base-line-height / 10) ($base-line-height / 4)
+ margin: auto ($base-line-height / 12)
+ .guilabel,
+ border: 1px solid lighten($guilabel-color, 25%)
+ background: lighten($guilabel-color, 50%)
+ .menuselection
+ border: 1px solid lighten($menuselection-color, 25%)
+ background: lighten($menuselection-color, 50%)
+ *:not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > kbd,
+ *:not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > .kbd
+ color: inherit
+ font-size: 80%
+ background-color: lighten($text-light, 30%)
+ border: 1px solid darken($text-light, 5%)
+ border-radius: $base-line-height / 6
+ box-shadow: grey 0px $base-line-height / 12
+ padding: $base-line-height / 10 $base-line-height / 4
+ margin: auto 0
+ .versionmodified
+ font-style: italic
+
+
+// Mobile specific
++media($mobile)
+ .rst-content
+ .sidebar
+ width: 100%
diff --git a/src/sass/_theme_variables.sass b/src/sass/_theme_variables.sass
new file mode 100644
index 0000000..a92bdb4
--- /dev/null
+++ b/src/sass/_theme_variables.sass
@@ -0,0 +1,72 @@
+// In here are variables used for sphinx_rtd_theme, they either add to or overwrite the default ones
+// that are set in wyrm_core/wy_variables.sass. You'll find wyrm in bower_components if you're looking
+// for a reference.
+
+$fa-font-path: "~font-awesome/fonts"
+$static-img: "../img/"
+
+$nav-content-width: 800px
+$nav-media-query: $nav-desktop-width + $nav-content-width
+
+$mathjax-color: $text-color
+
+$headerlink-color: $text-color
+
+// Code colors
+$text-viewcode-color: $green
+$text-codexref-color: $text-color
+
+// Definition list colors
+$class-color: $blue
+$method-color: $gray
+
+// :guilabel: color
+$guilabel-color: $blue
+
+// :menuselection: label color
+$menuselection-color: $blue
+
+// Footer colors
+$footer-color: $text-medium
+
+// Menu colors
+$menu-vertical-background-color: $section-background-color
+
+// Menu text colors
+$menu-color: $gray
+$menu-dark: lighten($menu-color,10%) !default
+$menu-medium: lighten($menu-color,27.5%) !default
+$menu-light: lighten($menu-color,45%) !default
+$menu-lighter: lighten($menu-color,60%) !default
+
+// Menu link colors
+$menu-link-color: $text-color
+$menu-link-dark: $text-dark
+$menu-link-medium: $text-medium
+$menu-link-light: $text-lighter
+$menu-link-active: $white
+
+// Navigation colors
+$nav-background-color: $menu-background-color
+$nav-search-background-color: $blue
+$nav-search-color: $section-background-color
+$nav-link-color: $blue
+$nav-link-color-visited: $purple
+$nav-link-color-hover: lighten($nav-link-color, 6%) !default
+$nav-link-color-alt: hsl(33, 100%, 51%)
+$nav-caption: lighten($blue, 15%)
+
+// Sidebar colors
+$sidebar-background-color: $table-stripe-color
+$sidebar-border-color: $table-border-color
+$sidebar-title-background-color: $table-border-color
+
+// Sphinx highlight color
+$highlight-color: $yellow
+
+$base-font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif
+$custom-font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif
+$custom-font-family2: Georgia, serif
+$code-font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace
+
+$font-display: block
diff --git a/src/sass/badge_only.sass b/src/sass/badge_only.sass
new file mode 100644
index 0000000..2b09416
--- /dev/null
+++ b/src/sass/badge_only.sass
@@ -0,0 +1,16 @@
+// ------------------------------------------------------------
+// CONTRIBUTORS, PLEASE READ THIS!
+// ------------------------------------------------------------
+// This generates the RTD sticky badge for non RTD themes. As
+// always, only files labeled "theme_*.sass should be edited".
+// ------------------------------------------------------------
+$border-box-sizing: false !default
+
+@import wyrm_core/wy_variables
+@import theme_variables
+@import ~bourbon/app/assets/stylesheets/bourbon
+@import ~bourbon-neat/app/assets/stylesheets/neat
+@import wyrm_core/mixin
+@import wyrm_core/grid_settings
+@import _theme_badge_fa
+@import _theme_badge
diff --git a/src/sass/theme.sass b/src/sass/theme.sass
new file mode 100644
index 0000000..73e77e4
--- /dev/null
+++ b/src/sass/theme.sass
@@ -0,0 +1,50 @@
+// ------------------------------------------------------------
+// CONTRIBUTORS, PLEASE READ THIS!
+// ------------------------------------------------------------
+// This theme pulls from other frontend projects. The only
+// things you should edit are the sass files that start with
+// "theme_*.sass". All other files are loaded through bower.
+// ------------------------------------------------------------
+
+// Variable defaults set by Wyrm
+@import wyrm_core/wy_variables
+
+// Variable overrides that change coloring and fonts for this theme.
+@import theme_variables
+
+// bourbon.io framework
+@import ~bourbon/app/assets/stylesheets/bourbon
+
+// Bourbon.io/neat framework, with some default media queries
+@import wyrm_core/grid_settings
+@import ~bourbon-neat/app/assets/stylesheets/neat
+// Some corrections for neat
+@import wyrm_core/neat_extra
+
+// Custom reset
+@import wyrm_core/reset
+
+// Wyrm mixins
+@import wyrm_core/mixin
+
+// Font Awesome with wyrm extras
+@import ~font-awesome/scss/font-awesome
+@import wyrm_core/font_icon_defaults
+
+// Wyrm core styles used in this theme
+@import wyrm_core/alert
+@import wyrm_core/button
+@import wyrm_core/dropdown
+@import wyrm_core/form
+@import wyrm_core/generic
+@import wyrm_core/table
+@import wyrm_core/type
+
+// Theme specific styles. These are likely the files you want to edit.
+@import theme_breadcrumbs
+@import theme_layout
+@import theme_badge
+@import theme_rst
+@import theme_mathjax
+@import theme_font_awesome_compatibility
+@import theme_font_local
diff --git a/src/theme.js b/src/theme.js
new file mode 100644
index 0000000..db546b4
--- /dev/null
+++ b/src/theme.js
@@ -0,0 +1,266 @@
+// jQuery is included via the sphinxcontrib-jquery extension that we depend on
+var jQuery = (typeof(window) != 'undefined') ? window.jQuery : require('jquery');
+
+// Sphinx theme nav state
+function ThemeNav () {
+
+ var nav = {
+ navBar: null,
+ win: null,
+ winScroll: false,
+ winResize: false,
+ linkScroll: false,
+ winPosition: 0,
+ winHeight: null,
+ docHeight: null,
+ isRunning: false
+ };
+
+ nav.enable = function (withStickyNav) {
+ var self = this;
+
+ // TODO this can likely be removed once the theme javascript is broken
+ // out from the RTD assets. This just ensures old projects that are
+ // calling `enable()` get the sticky menu on by default. All other cals
+ // to `enable` should include an argument for enabling the sticky menu.
+ if (typeof(withStickyNav) == 'undefined') {
+ withStickyNav = true;
+ }
+
+ if (self.isRunning) {
+ // Only allow enabling nav logic once
+ return;
+ }
+
+ self.isRunning = true;
+ jQuery(function ($) {
+ self.init($);
+
+ self.reset();
+ self.win.on('hashchange', self.reset);
+
+ if (withStickyNav) {
+ // Set scroll monitor
+ self.win.on('scroll', function () {
+ if (!self.linkScroll) {
+ if (!self.winScroll) {
+ self.winScroll = true;
+ requestAnimationFrame(function() { self.onScroll(); });
+ }
+ }
+ });
+ }
+
+ // Set resize monitor
+ self.win.on('resize', function () {
+ if (!self.winResize) {
+ self.winResize = true;
+ requestAnimationFrame(function() { self.onResize(); });
+ }
+ });
+
+ self.onResize();
+ });
+
+ };
+
+ // TODO remove this with a split in theme and Read the Docs JS logic as
+ // well, it's only here to support 0.3.0 installs of our theme.
+ nav.enableSticky = function() {
+ this.enable(true);
+ };
+
+ nav.init = function ($) {
+ var doc = $(document),
+ self = this;
+
+ this.navBar = $('div.wy-side-scroll:first');
+ this.win = $(window);
+
+ // Set up javascript UX bits
+ $(document)
+ // Shift nav in mobile when clicking the menu.
+ .on('click', "[data-toggle='wy-nav-top']", function() {
+ $("[data-toggle='wy-nav-shift']").toggleClass("shift");
+ $("[data-toggle='rst-versions']").toggleClass("shift");
+ })
+
+ // Nav menu link click operations
+ .on('click', ".wy-menu-vertical .current ul li a", function() {
+ var target = $(this);
+ // Close menu when you click a link.
+ $("[data-toggle='wy-nav-shift']").removeClass("shift");
+ $("[data-toggle='rst-versions']").toggleClass("shift");
+ // Handle dynamic display of l3 and l4 nav lists
+ self.toggleCurrent(target);
+ self.hashChange();
+ })
+ .on('click', "[data-toggle='rst-current-version']", function() {
+ $("[data-toggle='rst-versions']").toggleClass("shift-up");
+ })
+
+ // Make tables responsive
+ $("table.docutils:not(.field-list,.footnote,.citation)")
+ .wrap("<div class='wy-table-responsive'></div>");
+
+ // Add extra class to responsive tables that contain
+ // footnotes or citations so that we can target them for styling
+ $("table.docutils.footnote")
+ .wrap("<div class='wy-table-responsive footnote'></div>");
+ $("table.docutils.citation")
+ .wrap("<div class='wy-table-responsive citation'></div>");
+
+ // Add expand links to all parents of nested ul
+ $('.wy-menu-vertical ul').not('.simple').siblings('a').each(function () {
+ var link = $(this);
+ expand =
+ $('<button class="toctree-expand" title="Open/close menu"></button>');
+ expand.on('click', function (ev) {
+ self.toggleCurrent(link);
+ ev.stopPropagation();
+ return false;
+ });
+ link.prepend(expand);
+ });
+ };
+
+ nav.reset = function () {
+ // Get anchor from URL and open up nested nav
+ var anchor = encodeURI(window.location.hash) || '#';
+
+ try {
+ var vmenu = $('.wy-menu-vertical');
+ var link = vmenu.find('[href="' + anchor + '"]');
+ if (link.length === 0) {
+ // this link was not found in the sidebar.
+ // Find associated id element, then its closest section
+ // in the document and try with that one.
+ var id_elt = $('.document [id="' + anchor.substring(1) + '"]');
+ var closest_section = id_elt.closest('div.section');
+ link = vmenu.find('[href="#' + closest_section.attr("id") + '"]');
+ if (link.length === 0) {
+ // still not found in the sidebar. fall back to main section
+ link = vmenu.find('[href="#"]');
+ }
+ }
+ // If we found a matching link then reset current and re-apply
+ // otherwise retain the existing match
+ if (link.length > 0) {
+ $('.wy-menu-vertical .current')
+ .removeClass('current')
+ .attr('aria-expanded','false');
+ link.addClass('current')
+ .attr('aria-expanded','true');
+ link.closest('li.toctree-l1')
+ .parent()
+ .addClass('current')
+ .attr('aria-expanded','true');
+ for (let i = 1; i <= 10; i++) {
+ link.closest('li.toctree-l' + i)
+ .addClass('current')
+ .attr('aria-expanded','true');
+ }
+ link[0].scrollIntoView();
+ }
+ }
+ catch (err) {
+ console.log("Error expanding nav for anchor", err);
+ }
+
+ };
+
+ nav.onScroll = function () {
+ this.winScroll = false;
+ var newWinPosition = this.win.scrollTop(),
+ winBottom = newWinPosition + this.winHeight,
+ navPosition = this.navBar.scrollTop(),
+ newNavPosition = navPosition + (newWinPosition - this.winPosition);
+ if (newWinPosition < 0 || winBottom > this.docHeight) {
+ return;
+ }
+ this.navBar.scrollTop(newNavPosition);
+ this.winPosition = newWinPosition;
+ };
+
+ nav.onResize = function () {
+ this.winResize = false;
+ this.winHeight = this.win.height();
+ this.docHeight = $(document).height();
+ };
+
+ nav.hashChange = function () {
+ this.linkScroll = true;
+ this.win.one('hashchange', function () {
+ this.linkScroll = false;
+ });
+ };
+
+ nav.toggleCurrent = function (elem) {
+ var parent_li = elem.closest('li');
+ parent_li
+ .siblings('li.current')
+ .removeClass('current')
+ .attr('aria-expanded','false');
+ parent_li
+ .siblings()
+ .find('li.current')
+ .removeClass('current')
+ .attr('aria-expanded','false');
+ var children = parent_li.find('> ul li');
+ // Don't toggle terminal elements.
+ if (children.length) {
+ children
+ .removeClass('current')
+ .attr('aria-expanded','false');
+ parent_li
+ .toggleClass('current')
+ .attr('aria-expanded', function(i, old) {
+ return old == 'true' ? 'false' : 'true';
+ });
+ }
+ }
+
+ return nav;
+};
+
+module.exports.ThemeNav = ThemeNav();
+
+if (typeof(window) != 'undefined') {
+ window.SphinxRtdTheme = {
+ Navigation: module.exports.ThemeNav,
+ // TODO remove this once static assets are split up between the theme
+ // and Read the Docs. For now, this patches 0.3.0 to be backwards
+ // compatible with a pre-0.3.0 layout.html
+ StickyNav: module.exports.ThemeNav,
+ };
+}
+
+
+// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel
+// https://gist.github.com/paulirish/1579671
+// MIT license
+
+(function() {
+ var lastTime = 0;
+ var vendors = ['ms', 'moz', 'webkit', 'o'];
+ for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
+ window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
+ window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']
+ || window[vendors[x]+'CancelRequestAnimationFrame'];
+ }
+
+ if (!window.requestAnimationFrame)
+ window.requestAnimationFrame = function(callback, element) {
+ var currTime = new Date().getTime();
+ var timeToCall = Math.max(0, 16 - (currTime - lastTime));
+ var id = window.setTimeout(function() { callback(currTime + timeToCall); },
+ timeToCall);
+ lastTime = currTime + timeToCall;
+ return id;
+ };
+
+ if (!window.cancelAnimationFrame)
+ window.cancelAnimationFrame = function(id) {
+ clearTimeout(id);
+ };
+}());
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/__init__.py
diff --git a/tests/roots/test-basic/bar.rst b/tests/roots/test-basic/bar.rst
new file mode 100644
index 0000000..1cccd3c
--- /dev/null
+++ b/tests/roots/test-basic/bar.rst
@@ -0,0 +1,2 @@
+bar
+===
diff --git a/tests/roots/test-basic/conf.py b/tests/roots/test-basic/conf.py
new file mode 100644
index 0000000..e10f5e5
--- /dev/null
+++ b/tests/roots/test-basic/conf.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+
+master_doc = 'index'
+exclude_patterns = ['_build']
diff --git a/tests/roots/test-basic/foo.rst b/tests/roots/test-basic/foo.rst
new file mode 100644
index 0000000..468a424
--- /dev/null
+++ b/tests/roots/test-basic/foo.rst
@@ -0,0 +1,6 @@
+foo
+===
+
+.. toctree::
+
+ bar
diff --git a/tests/roots/test-basic/index.rst b/tests/roots/test-basic/index.rst
new file mode 100644
index 0000000..0a4b347
--- /dev/null
+++ b/tests/roots/test-basic/index.rst
@@ -0,0 +1,12 @@
+test-basic
+==========
+
+.. toctree::
+
+ foo
+
+Heading
+-------
+
+Subheading
+~~~~~~~~~~
diff --git a/tests/roots/test-empty/conf.py b/tests/roots/test-empty/conf.py
new file mode 100644
index 0000000..e10f5e5
--- /dev/null
+++ b/tests/roots/test-empty/conf.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+
+master_doc = 'index'
+exclude_patterns = ['_build']
diff --git a/tests/roots/test-empty/index.rst b/tests/roots/test-empty/index.rst
new file mode 100644
index 0000000..a69c08d
--- /dev/null
+++ b/tests/roots/test-empty/index.rst
@@ -0,0 +1,10 @@
+test-empty
+==========
+
+.. toctree::
+
+Heading
+-------
+
+Subheading
+~~~~~~~~~~
diff --git a/tests/roots/test-missing-toctree/conf.py b/tests/roots/test-missing-toctree/conf.py
new file mode 100644
index 0000000..e10f5e5
--- /dev/null
+++ b/tests/roots/test-missing-toctree/conf.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+
+master_doc = 'index'
+exclude_patterns = ['_build']
diff --git a/tests/roots/test-missing-toctree/index.rst b/tests/roots/test-missing-toctree/index.rst
new file mode 100644
index 0000000..a085e7f
--- /dev/null
+++ b/tests/roots/test-missing-toctree/index.rst
@@ -0,0 +1,2 @@
+test-missing-toctree
+====================
diff --git a/tests/test_builders.py b/tests/test_builders.py
new file mode 100644
index 0000000..d3d3c51
--- /dev/null
+++ b/tests/test_builders.py
@@ -0,0 +1,87 @@
+import os
+
+import pytest
+import sphinx
+from sphinx import addnodes
+try:
+ # Available from Sphinx 2.0
+ from sphinx.builders.dirhtml import DirectoryHTMLBuilder
+ from sphinx.builders.singlehtml import SingleFileHTMLBuilder
+except ImportError:
+ from sphinx.builders.html import (
+ DirectoryHTMLBuilder,
+ SingleFileHTMLBuilder,
+ )
+
+from .util import build_all
+
+
+def test_basic():
+ for (app, status, warning) in build_all('test-basic'):
+ assert app.env.get_doctree('index').traverse(addnodes.toctree)
+ content = open(os.path.join(app.outdir, 'index.html')).read()
+
+ if isinstance(app.builder, DirectoryHTMLBuilder):
+ search = (
+ '<div class="toctree-wrapper compound">\n'
+ '<ul>\n'
+ '<li class="toctree-l1">'
+ '<a class="reference internal" href="foo/">foo</a>'
+ '<ul>\n'
+ '<li class="toctree-l2">'
+ '<a class="reference internal" href="bar/">bar</a></li>\n'
+ '</ul>\n'
+ '</li>\n'
+ '</ul>\n'
+ '</div>'
+ )
+ assert search in content
+ elif isinstance(app.builder, SingleFileHTMLBuilder):
+ search = (
+ '<ul>\n'
+ '<li class="toctree-l1">'
+ '<a class="reference internal" href="index.html#document-foo">foo</a>'
+ '</li>\n'
+ '</ul>'
+ )
+ assert search in content
+ else:
+ search = (
+ '<div class="toctree-wrapper compound">\n'
+ '<ul>\n'
+ '<li class="toctree-l1">'
+ '<a class="reference internal" href="foo.html">foo</a>'
+ '<ul>\n'
+ '<li class="toctree-l2">'
+ '<a class="reference internal" href="bar.html">bar</a></li>\n'
+ '</ul>\n'
+ '</li>\n'
+ '</ul>\n'
+ '</div>'
+ )
+ assert search in content, ('Missing search with builder {0}'
+ .format(app.builder.name))
+
+
+def test_empty():
+ """Local TOC is showing, as toctree was empty"""
+ for (app, status, warning) in build_all('test-empty'):
+ assert app.env.get_doctree('index').traverse(addnodes.toctree)
+ content = open(os.path.join(app.outdir, 'index.html')).read()
+ global_toc = '<div class="toctree-wrapper compound">\n</div>'
+ local_toc = (
+ '<div class="local-toc"><ul>\n'
+ '<li><a class="reference internal" href="#">test-empty</a></li>'
+ '</ul>\n</div>'
+ )
+ assert global_toc in content
+ assert local_toc not in content
+
+
+def test_missing_toctree():
+ """Local TOC is showing, as toctree was missing"""
+ for (app, status, warning) in build_all('test-missing-toctree'):
+ assert app.env.get_doctree('index').traverse(addnodes.toctree) == []
+ content = open(os.path.join(app.outdir, 'index.html')).read()
+ assert '<div class="toctree' not in content
+ assert '<div class="local-toc">' in content
diff --git a/tests/util.py b/tests/util.py
new file mode 100644
index 0000000..c9fdcc1
--- /dev/null
+++ b/tests/util.py
@@ -0,0 +1,61 @@
+from __future__ import print_function
+
+import os
+import tempfile
+import shutil
+from contextlib import contextmanager
+
+import pytest
+from sphinx.application import Sphinx
+
+try:
+ from StringIO import StringIO
+except ImportError:
+ from io import StringIO
+
+
+@contextmanager
+def build(root, builder='html', **kwargs):
+ tmpdir = tempfile.mkdtemp()
+
+ srcdir = os.path.join(os.path.dirname(__file__), 'roots', root)
+ destdir = os.path.join(tmpdir, builder)
+ doctreedir = os.path.join(tmpdir, 'doctree/')
+
+ status = StringIO()
+ warning = StringIO()
+
+ kwargs.update({
+ 'status': status,
+ 'warning': warning,
+ })
+
+ confoverrides = kwargs.pop('confoverrides', {})
+ confoverrides['html_theme'] = 'sphinx_rtd_theme'
+ extensions = confoverrides.get('extensions', [])
+ extensions.append('sphinx_rtd_theme')
+ extensions.append('readthedocs_ext.readthedocs')
+ confoverrides['extensions'] = extensions
+ kwargs['confoverrides'] = confoverrides
+
+ try:
+ app = Sphinx(srcdir, srcdir, destdir, doctreedir, builder, **kwargs)
+ app.builder.build_all()
+ yield (app, status.getvalue(), warning.getvalue())
+ except Exception as e:
+ print('# root:', root)
+ print('# builder:', builder)
+ print('# source:', srcdir)
+ print('# destination:', destdir)
+ print('# status:', '\n' + status.getvalue())
+ print('# warning:', '\n' + warning.getvalue())
+ raise
+ finally:
+ shutil.rmtree(tmpdir)
+
+
+def build_all(root, **kwargs):
+ for builder in ['html', 'singlehtml', 'readthedocs', 'readthedocsdirhtml',
+ 'readthedocssinglehtml', 'readthedocssinglehtmllocalmedia']:
+ with build(root, builder, **kwargs) as ret:
+ yield ret
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..0157a8f
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,33 @@
+[tox]
+envlist =
+ py{36,37,38,39,310}-sphinx{50,51,52,53}{-qa}
+ py{38,39,310}-sphinx{60,61,62,70,71}{-qa}
+ py{39,310}-sphinx{72,latest,dev}{-qa}
+ # Python 3.11 working from Sphinx 5.3 and up
+ py{311}-sphinx{53,60,61,62,70,71,72,latest,dev}{-qa}
+
+[testenv]
+setenv =
+ LANG=C
+deps =
+ .
+ readthedocs-sphinx-ext
+ pytest
+ sphinx50: Sphinx>=5.0,<5.1
+ sphinx51: Sphinx>=5.1,<5.2
+ sphinx52: Sphinx>=5.2,<5.3
+ sphinx53: Sphinx>=5.3,<5.4
+ sphinx60: Sphinx>=6.0,<6.1
+ sphinx61: Sphinx>=6.1,<6.2
+ sphinx62: Sphinx>=6.2,<6.3
+ sphinx70: Sphinx>=7.0,<7.1
+ sphinx71: Sphinx>=7.1,<7.2
+ sphinx72: Sphinx>=7.2,<7.3
+ sphinxlatest: Sphinx
+ dev: https://github.com/sphinx-doc/sphinx/archive/refs/heads/master.zip
+allowlist_externals =
+ echo
+commands =
+ pytest {posargs} tests/
+ sphinx-build -b html -Dhtml4_writer=0 -d {envtmpdir}/doctrees docs/ {envtmpdir}/html
+ echo "Open the following URL for visual testing: file://{envtmpdir}/html/demo/demo.html"
diff --git a/webpack.common.js b/webpack.common.js
new file mode 100644
index 0000000..3ff0dce
--- /dev/null
+++ b/webpack.common.js
@@ -0,0 +1,76 @@
+const path = require("path");
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
+const CopyPlugin = require('copy-webpack-plugin');
+
+module.exports = {
+ entry: {
+ theme: ["./src/theme.js", "./src/sass/theme.sass"],
+ badge_only: "./src/sass/badge_only.sass"
+ },
+ output: {
+ filename: "js/[name].js?[hash]",
+ path: path.resolve(__dirname, "sphinx_rtd_theme/static")
+ },
+ externals: {
+ jquery: "jQuery"
+ },
+ module: {
+ rules: [
+ {
+ test: require.resolve("./src/theme.js"),
+ use: "imports-loader?this=>window"
+ },
+ {
+ test: /\.sass$/,
+ use: [
+ {
+ loader: MiniCssExtractPlugin.loader,
+ options: {
+ hmr: false,
+ reloadAll: true
+ }
+ },
+ {
+ loader: "css-loader"
+ },
+ {
+ loader: "sass-loader?indentedSyntax",
+ options: {
+ includePaths: [
+ "node_modules/bourbon/app/assets/stylesheets",
+ "node_modules/bourbon-neat/app/assets/stylesheets",
+ "node_modules/font-awesome/scss",
+ "node_modules/wyrm/sass"
+ ]
+ }
+ }
+ ]
+ },
+ {
+ test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
+ use: [
+ {
+ loader: "file-loader",
+ options: {
+ name: "[name].[ext]?[hash]",
+ outputPath: "css/fonts/",
+ publicPath: "fonts/"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ plugins: [
+ new MiniCssExtractPlugin({
+ filename: "css/[name].css?[hash]",
+ chunkFilename: "css/[name].css?[hash]"
+ }),
+ new CopyPlugin([
+ {
+ from: 'node_modules/html5shiv/dist/*.min.js',
+ flatten: true,
+ to: path.resolve(__dirname,'sphinx_rtd_theme/static/js') },
+ ]),
+ ]
+};
diff --git a/webpack.dev.js b/webpack.dev.js
new file mode 100644
index 0000000..b01723e
--- /dev/null
+++ b/webpack.dev.js
@@ -0,0 +1,36 @@
+const path = require("path");
+const merge = require("webpack-merge");
+const exec = require("child_process").exec;
+const WatchPlugin = require("webpack-watch-files-plugin").default;
+const ShellPlugin = require("webpack-shell-plugin");
+const common = require("./webpack.common.js");
+
+module.exports = merge(common, {
+ mode: "development",
+ watch: true,
+ // The dev server uses both contentBase and publicPath. The contentBase is
+ // used to server the built docs, and publicPath is the bundle path for live
+ // reloading. The publicPath intercepts requests to the static assets in
+ // _static/. Opening http://localhost:1919 is everything you need for
+ // development.
+ devServer: {
+ contentBase: "docs/build/html",
+ port: 1919,
+ open: false,
+ hot: false,
+ liveReload: true,
+ publicPath: "/_static/",
+ disableHostCheck: true,
+ headers: {
+ "Access-Control-Allow-Origin": "*"
+ }
+ },
+ plugins: [
+ new WatchPlugin({
+ files: ["./docs/**/*.rst", "./docs/**/*.py"]
+ }),
+ new ShellPlugin({
+ onBuildStart: ["make -C docs clean html"],
+ })
+ ]
+});
diff --git a/webpack.prod.js b/webpack.prod.js
new file mode 100644
index 0000000..fbd3bf7
--- /dev/null
+++ b/webpack.prod.js
@@ -0,0 +1,11 @@
+const merge = require("webpack-merge");
+const OptimizeCssAssetsPlugin = require("optimize-css-assets-webpack-plugin");
+const TerserPlugin = require("terser-webpack-plugin");
+const common = require("./webpack.common.js");
+
+module.exports = merge(common, {
+ mode: "production",
+ optimization: {
+ minimizer: [new TerserPlugin(), new OptimizeCssAssetsPlugin({})]
+ }
+});