pax_global_header00006660000000000000000000000064141672472750014531gustar00rootroot0000000000000052 comment=1201e82bc2f5e28d365428ad73fde4700b1f52f6 python-docs-theme-2022.1/000077500000000000000000000000001416724727500151665ustar00rootroot00000000000000python-docs-theme-2022.1/.github/000077500000000000000000000000001416724727500165265ustar00rootroot00000000000000python-docs-theme-2022.1/.github/workflows/000077500000000000000000000000001416724727500205635ustar00rootroot00000000000000python-docs-theme-2022.1/.github/workflows/tests.yml000066400000000000000000000017011416724727500224470ustar00rootroot00000000000000--- name: Tests on: push: branches: - master pull_request: branches: - master jobs: build_doc: name: 'Build cpython doc' runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: 3.8 - name: clone docsbuild scripts run: | git clone https://github.com/python/docsbuild-scripts/ - name: setup requirements run: | python -m pip install --upgrade pip python -m pip install jinja2 markupsafe zc.lockfile - name: build docs run: | python3 ./docsbuild-scripts/build_docs.py --quick --build-root ./build_root --www-root ./www --log-directory ./logs --group $(id -g) --skip-cache-invalidation --theme $(pwd) --language en --branch 3.9 - name: 'Upload' uses: actions/upload-artifact@v2.2.2 with: name: doc-html path: www/ python-docs-theme-2022.1/.gitignore000066400000000000000000000022051416724727500171550ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover .hypothesis/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # pyenv .python-version # celery beat schedule file celerybeat-schedule # SageMath parsed files *.sage.py # dotenv .env # virtualenv .venv venv/ ENV/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ python-docs-theme-2022.1/CHANGELOG.rst000066400000000000000000000056761416724727500172250ustar00rootroot00000000000000========= Changelog ========= `2022.1 `_ ---------------------------------------------------------------------------------- - Add a configuration for license URL. (#90) - Exclude the floating navbar from CHM help. (#84) - Make sidebar scrollable and sticky (on modern browsers) (#91) `2021.11.1 `_ ----------------------------------------------------------------------------------- - Fix monospace again, on buggy Google Chrome (#87) Contributed by Tushar Sadhwani `2021.11 `_ ------------------------------------------------------------------------------- - Fix monospace on buggy Google Chrome (#85) Contributed by Tushar Sadhwani `2021.8 `_ ------------------------------------------------------------------------------ - Add the copyright_url variable in the theme (#67) Contributed by jablonskidev - Improve readability (#79) Contributed by Olga Bulat - Remove #searchbox on mobile to fix a layout bug (#76) Contributed by Olga Bulat - Fix the appearance of version/language selects (#74) Contributed by Olga Bulat `2021.5 `_ ------------------------------------------------------------------------------ - Make the theme responsive (#46) Contributed by Olga Bulat. - Use Python 3.8 for the Github Actions (#71) Contributed by Stéphane Wirtel. - Use default pygments theme (#68) Contributed by Aaron Carlisle. - Test Github action to validate the theme against docsbuild scripts. (#69) Contributed by Julien Palard. - Add the copy button to pycon3 highlighted code blocks. (#64) Contributed by Julien Palard. `2020.12 `_ ------------------------------------------------------------------------------ - Updated the readme, to remind user to install the package in a virtual environment. (#41) Contributed by Mariatta. - Updated the package url, using the GitHub repository instead of docs.python.org (#49) Contributed by Pradyun Gedam. - Added license information to the footer of the doc (#36) Contributed by Todd. - Fixed typo in the footer (#52) Contributed by Dominic Davis-Foster. - Added information on how to use the package (#32) Contributed by Tapasweni Pathak. - Fixed code formatting (#53). Contributed by Hugo van Kemenade. - Fixed code bgcolor and codetextcolor for Sphinx 3.1.0+ (#57) Contributed by Zhiming Wang. 2018.7 ------ Corresponds to `44a8f30 `_ `2018.2 `_ --------------------------------------------------------------------------- Initial release. python-docs-theme-2022.1/CONTRIBUTING.rst000066400000000000000000000011251416724727500176260ustar00rootroot00000000000000# How to release - Update CHANGELOG.rst - bump version (YYYY.MM) in setup.py and python_docs_theme/theme.conf - commit - push to check one last time if the tests pass github side. - tag it (YYYY.MM). - build (``python -m build``) - Test it (in :file:`cpython/Doc` run ``./venv/bin/pip install ../../python-docs-theme/dist/python-docs-theme-2021.8.tar.gz`` then build the doc using ``make html``). - upload it: ``twine upload dist/*``. - bump version (YYYY.MM.dev) in setup.py and python_docs_theme/theme.conf - Commit this last bump. - push and push the tag (``git push && git push --tags``) python-docs-theme-2022.1/LICENSE000066400000000000000000000046341416724727500162020ustar00rootroot00000000000000PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 -------------------------------------------- 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python. 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement. python-docs-theme-2022.1/MANIFEST.in000066400000000000000000000001031416724727500167160ustar00rootroot00000000000000include LICENSE README.rst recursive-include python_docs_theme *.* python-docs-theme-2022.1/README.rst000066400000000000000000000015321416724727500166560ustar00rootroot00000000000000Python Docs Sphinx Theme ========================= This is the theme for the Python documentation. Note that when adopting this theme, you're also borrowing an element of the trust and credibility established by the CPython core developers over the years. That's fine, and you're welcome to do so for other Python community projects if you so choose, but please keep in mind that in doing so you're also choosing to accept some of the responsibility for maintaining that collective trust. To use the theme, install it into your docs build environment via ``pip`` (preferably in a virtual environment). Configuration options --------------------- To use this theme, add the following to ``conf.py``: - ``html_theme = 'python_docs_theme'`` - ``html_sidebars``, defaults taken from http://www.sphinx-doc.org/en/stable/config.html#confval-html_sidebars python-docs-theme-2022.1/code_of_conduct.rst000066400000000000000000000011671416724727500210420ustar00rootroot00000000000000Code of Conduct =============== Please note that all interactions on `Python Software Foundation `__-supported infrastructure is `covered `__ by the `PSF Code of Conduct `__, which includes all infrastructure used in the development of Python itself (e.g. mailing lists, issue trackers, GitHub, etc.). In general this means everyone is expected to be open, considerate, and respectful of others no matter what their position is within the project. python-docs-theme-2022.1/pyproject.toml000066400000000000000000000001511416724727500200770ustar00rootroot00000000000000[build-system] requires = [ "setuptools>=42", "wheel" ] build-backend = "setuptools.build_meta" python-docs-theme-2022.1/python_docs_theme/000077500000000000000000000000001416724727500207015ustar00rootroot00000000000000python-docs-theme-2022.1/python_docs_theme/__init__.py000066400000000000000000000003701416724727500230120ustar00rootroot00000000000000import os def setup(app): current_dir = os.path.abspath(os.path.dirname(__file__)) app.add_html_theme( 'python_docs_theme', current_dir) return { 'parallel_read_safe': True, 'parallel_write_safe': True, } python-docs-theme-2022.1/python_docs_theme/footerdonate.html000066400000000000000000000002701416724727500242570ustar00rootroot00000000000000{% trans %}The Python Software Foundation is a non-profit corporation.{% endtrans %} {% trans %}Please donate.{% endtrans %}
python-docs-theme-2022.1/python_docs_theme/layout.html000066400000000000000000000151061416724727500231070ustar00rootroot00000000000000{% extends "classic/layout.html" %} {%- macro relbar() %} {# modified from sphinx/themes/basic/layout.html #} {%- endmacro %} {%- macro searchbox() %} {# modified from sphinx/themes/basic/searchbox.html #} {%- if builder != "htmlhelp" %} {%- endif %} {%- endmacro %} {% block relbar1 %} {% if builder != 'qthelp' %} {{ relbar() }} {% endif %} {% endblock %} {% block relbar2 %} {% if builder != 'qthelp' %} {{ relbar() }} {% endif %} {% endblock %} {%- block extrahead -%} {%- if builder != "htmlhelp" %} {%- if not embedded %} {%- endif -%} {%- endif -%} {{ super() }} {%- endblock -%} {%- block css -%} {{ super() }} {%- endblock -%} {%- block body_tag %} {{ super() }} {%- if builder != 'htmlhelp' %}
{% endif -%} {% endblock %} {% block footer %} {% endblock %} python-docs-theme-2022.1/python_docs_theme/static/000077500000000000000000000000001416724727500221705ustar00rootroot00000000000000python-docs-theme-2022.1/python_docs_theme/static/caret-down.svg000066400000000000000000000003651416724727500247600ustar00rootroot00000000000000 python-docs-theme-2022.1/python_docs_theme/static/copybutton.js000066400000000000000000000054641416724727500247450ustar00rootroot00000000000000$(document).ready(function() { /* Add a [>>>] button on the top-right corner of code samples to hide * the >>> and ... prompts and the output and thus make the code * copyable. */ var div = $('.highlight-python .highlight,' + '.highlight-python3 .highlight,' + '.highlight-pycon .highlight,' + '.highlight-pycon3 .highlight,' + '.highlight-default .highlight'); var pre = div.find('pre'); // get the styles from the current theme pre.parent().parent().css('position', 'relative'); var hide_text = 'Hide the prompts and output'; var show_text = 'Show the prompts and output'; var border_width = pre.css('border-top-width'); var border_style = pre.css('border-top-style'); var border_color = pre.css('border-top-color'); var button_styles = { 'cursor':'pointer', 'position': 'absolute', 'top': '0', 'right': '0', 'border-color': border_color, 'border-style': border_style, 'border-width': border_width, 'color': border_color, 'text-size': '75%', 'font-family': 'monospace', 'padding-left': '0.2em', 'padding-right': '0.2em', 'border-radius': '0 3px 0 0' } // create and add the button to all the code blocks that contain >>> div.each(function(index) { var jthis = $(this); if (jthis.find('.gp').length > 0) { var button = $('>>>'); button.css(button_styles) button.attr('title', hide_text); button.data('hidden', 'false'); jthis.prepend(button); } // tracebacks (.gt) contain bare text elements that need to be // wrapped in a span to work with .nextUntil() (see later) jthis.find('pre:has(.gt)').contents().filter(function() { return ((this.nodeType == 3) && (this.data.trim().length > 0)); }).wrap(''); }); // define the behavior of the button when it's clicked $('.copybutton').click(function(e){ e.preventDefault(); var button = $(this); if (button.data('hidden') === 'false') { // hide the code output button.parent().find('.go, .gp, .gt').hide(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden'); button.css('text-decoration', 'line-through'); button.attr('title', show_text); button.data('hidden', 'true'); } else { // show the code output button.parent().find('.go, .gp, .gt').show(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible'); button.css('text-decoration', 'none'); button.attr('title', hide_text); button.data('hidden', 'false'); } }); }); python-docs-theme-2022.1/python_docs_theme/static/menu.js000066400000000000000000000041241416724727500234730ustar00rootroot00000000000000document.addEventListener('DOMContentLoaded', function () { // Make tables responsive by wrapping them in a div and making them scrollable const tables = document.querySelectorAll('table.docutils'); tables.forEach(function(table){ table.outerHTML = '
' + table.outerHTML + '
' }); const togglerInput = document.querySelector('.toggler__input'); const togglerLabel = document.querySelector('.toggler__label'); const sideMenu = document.querySelector('.menu-wrapper'); const menuItems = document.querySelectorAll('.menu') const doc = document.querySelector('.document'); const body = document.querySelector('body'); function closeMenu() { togglerInput.checked = false; sideMenu.setAttribute("aria-expanded", 'false'); sideMenu.setAttribute('aria-hidden', 'true'); togglerLabel.setAttribute('aria-pressed', 'false'); body.style.overflow = 'visible'; } function openMenu() { togglerInput.checked = true; sideMenu.setAttribute("aria-expanded", 'true'); sideMenu.setAttribute('aria-hidden', 'false'); togglerLabel.setAttribute('aria-pressed', 'true'); body.style.overflow = 'hidden'; } // Close menu when link on the sideMenu is clicked sideMenu.addEventListener('click', function (event) { let target = event.target; if (target.tagName.toLowerCase() !== 'a') return; closeMenu(); }) // Add accessibility data when sideMenu is opened/closed togglerInput.addEventListener('change', function (e) { togglerInput.checked ? openMenu() : closeMenu(); }); // Make sideMenu links tabbable only when visible for(let menuItem of menuItems) { if(togglerInput.checked) { menuItem.setAttribute('tabindex', '0'); } else { menuItem.setAttribute('tabindex', '-1'); } } // Close sideMenu when document body is clicked doc.addEventListener('click', function () { if (togglerInput.checked) { closeMenu(); } }) })python-docs-theme-2022.1/python_docs_theme/static/py.png000066400000000000000000000012671416724727500233340ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  tIME8!3'^7IDAT8eOHUA{߳w{"&hS6ZmB*xPMQA ")mZH FEF2y3g޼;7̜]3isޙvMU}\· x'GjN,ZXwQ1 *{ 8k9g'v;͏;j/t?|[{\ NjE%g J=M}WҎ}xv^{TnJN\}Xnܯzw/umY5;mgQ" SQ},/|i'}S@BځWk)`j'J/NK@e1MFN,j}yhbwp+щKSXb‹@:ɗ_=mU5EqR'4IN&t:c祝j.l `zF6guGfpm"J(p oٞqG0"n:",%84+!್`DoY-4ً,߳53 gob;3c]IiވC h\nf]IENDB`python-docs-theme-2022.1/python_docs_theme/static/py.svg000066400000000000000000000037711416724727500233510ustar00rootroot00000000000000 python-docs-theme-2022.1/python_docs_theme/static/pydoctheme.css000066400000000000000000000246121416724727500250500ustar00rootroot00000000000000@import url("default.css"); body { background-color: white; margin-left: 1em; margin-right: 1em; } .mobile-nav, .menu-wrapper { display: none; } div.related { margin-bottom: 1.2em; padding: 0.5em 0; border-bottom: 1px solid #ccc; margin-top: 0.5em; } div.related a:hover { color: #0095C4; } div.related ~ div.related { border-top: 1px solid #ccc; border-bottom: none; } .related .switchers { display: inline-flex; } .switchers > div { margin-right: 5px; } .version_switcher_placeholder, .language_switcher_placeholder { padding-left: 5px; background-color: white; } .inline-search { display: inline; } form.inline-search input { display: inline; } form.inline-search input[type="submit"] { width: 40px; } div.document { display: flex; } div.sphinxsidebar { float: none; position: sticky; top: 0; max-height: 100vh; background-color: #eeeeee; border-radius: 5px; line-height: 130%; font-size: smaller; } div.sphinxsidebar h3, div.sphinxsidebar h4 { margin-top: 1.5em; } div.sphinxsidebarwrapper { box-sizing: border-box; height: 100%; overflow-x: hidden; overflow-y: auto; } div.sphinxsidebarwrapper > h3:first-child { margin-top: 0.2em; } div.sphinxsidebarwrapper > ul > li > ul > li { margin-bottom: 0.4em; } div.sphinxsidebar a:hover { color: #0095C4; } form.inline-search input, div.sphinxsidebar input { font-family: 'Lucida Grande',Arial,sans-serif; border: 1px solid #999999; font-size: smaller; border-radius: 3px; } div.sphinxsidebar input[type=text] { max-width: 150px; } div.body { padding: 0 0 0 1.2em; } div.body p, div.body dd, div.body li, div.body blockquote { text-align: left; line-height: 1.4; } div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 { margin: 0; border: 0; padding: 0.3em 0; } div.body hr { border: 0; background-color: #ccc; height: 1px; } div.body pre { border-radius: 3px; border: 1px solid #ac9; } div.body div.admonition, div.body div.impl-detail { border-radius: 3px; } div.body div.impl-detail > p { margin: 0; } div.body div.seealso { border: 1px solid #dddd66; } div.body a { color: #0072aa; } div.body a:visited { color: #6363bb; } div.body a:hover { color: #00B0E4; } tt, code, pre { font-family: "monospace", monospace; font-size: 96.5%; } div.body tt, div.body code { border-radius: 3px; } div.body tt.descname, div.body code.descname { font-size: 120%; } div.body tt.xref, div.body a tt, div.body code.xref, div.body a code { font-weight: normal; } table.docutils { border: 1px solid #ddd; min-width: 20%; border-radius: 3px; margin-top: 10px; margin-bottom: 10px; } table.docutils td, table.docutils th { border: 1px solid #ddd !important; border-radius: 3px; } table p, table li { text-align: left !important; } table.docutils th { background-color: #eee; padding: 0.3em 0.5em; } table.docutils td { background-color: white; padding: 0.3em 0.5em; } table.footnote, table.footnote td { border: 0 !important; } div.footer { line-height: 150%; margin-top: -2em; text-align: right; width: auto; margin-right: 10px; } div.footer a:hover { color: #0095C4; } .refcount { color: #060; } .stableabi { color: #229; } .highlight { background: none !important; } dl > dt span ~ em { font-family: "monospace", monospace; } .toctree-wrapper ul { padding-left: 20px; } @media (max-width: 1023px) { /* Body layout */ div.body { min-width: 100%; padding: 0; font-size: 0.875rem; } div.bodywrapper { margin: 0; } /* Typography */ div.body h1 { font-size: 1.625rem; } div.body h2 { font-size: 1.25rem; } div.body h3, div.body h4, div.body h5 { font-size: 1rem; } /* Override default styles to make more readable */ div.body ul { padding-inline-start: 1rem; } div.body blockquote { margin-inline-start: 1rem; margin-inline-end: 0; } /* Remove sidebar and top related bar */ div.related, .sphinxsidebar { display: none; } /* Anchorlinks are not hidden by fixed-positioned navbar when scrolled to */ html { scroll-padding-top: 40px; } /* Top navigation bar */ .mobile-nav { display: block; height: 40px; width: 100%; position: fixed; top: 0; left: 0; background-color: white; box-shadow: rgba(0, 0, 0, 0.25) 0 0 2px 0; z-index: 1; } .mobile-nav * { box-sizing: border-box; } .nav-content { position: absolute; z-index: 2; left: 0; top: 0; height: 40px; width: 100%; max-width: 100vw; padding: 0 1rem 0 45px; display: flex; align-items: center; background-color: white; } .nav-logo { margin-right: 0.7rem; display: flex; flex: 0 0 auto; } .nav-content img { width: 20px; height: auto; } .version_switcher_placeholder { flex: 0 1 0; margin-right: 1rem; } .nav-content .search { display: flex; flex: 1 1 auto; align-items: center; padding: 0 0 0 2px; border: 1px solid #a9a9a9; height: 30px; overflow: hidden; } .nav-content .search:hover { box-shadow: 0 1px 6px 0 rgba(32,33,36,0.28); border-color: rgba(223,225,229,0); } .nav-content .search input[type=text] { border: 0; outline: 0; box-shadow: none; width: 40px; height: 28px; flex: 1 1 auto; } .nav-content .search input[type=submit] { height: 100%; appearance: none; -webkit-appearance: none; border: 1px solid transparent; border-left-color: #a9a9a9; box-shadow: none; cursor: pointer; background-color: #f0f0f0; margin-right: 0; } .nav-content .search input[type=submit]:hover { border-color: #a9a9a9; } .nav-content .search svg { flex: 0 0 20px; fill: #333; } .toggler__input { width: 40px; height: 40px; left: 0; opacity: 0; position: absolute; z-index: 3; margin: 0; } .toggler__label { width: 40px; height: 40px; margin: 0; position: absolute; cursor: pointer; top: 0; left: 0; background-color: transparent; border: 1px solid white; box-shadow: none; z-index: 3; display: flex; align-items: center; justify-content: center; padding: 0 8px; } .toggler__label:focus { background-color: #eee; border: 1px solid #ededed; box-shadow: rgba(0, 0, 0, 0.25) 1px 0 2px 0; } .toggler__label:hover { background-color: #eee; border: 1px solid #ededed; box-shadow: rgba(0, 0, 0, 0.25) 1px 0 2px 0; } .toggler__label > span { position: relative; flex: none; height: 2px; width: 100%; background: #444; transition: all 400ms ease; } .toggler__label > span::before, .toggler__label > span::after { content: ''; height: 2px; width: 100%; background: inherit; position: absolute; left: 0; top: -8px; } .toggler__label > span::after { top: 8px; } .toggler__input:checked ~ .toggler__label span { transform: rotate(135deg); } .toggler__input:checked ~ .toggler__label span::before { transform: rotate(90deg); } .toggler__input:checked ~ .toggler__label span::before, .toggler__input:checked ~ .toggler__label span::after { top: 0; } .toggler__input:checked:hover ~ .toggler__label span { transform: rotate(315deg); } .toggler__input:checked ~ .menu-wrapper { visibility: visible; left: 0; } /* Sliding side menu */ .menu-wrapper { display: block; position: fixed; top: 0; transition: left 400ms ease; left: -310px; width: 300px; height: 100%; background-color: #eee; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); overflow-y: auto; } .menu-wrapper.open { visibility: visible; left: 0; } .menu { padding: 40px 10px 30px 20px; } .menu-wrapper h3, .menu-wrapper h4 { margin-bottom: 0; font-weight: normal; } .menu-wrapper h4 { font-size: 1.3em; } .menu-wrapper h3 { color: #444444; font-size: 1.4em; } .menu-wrapper h3 + p, .menu-wrapper h4 + p { margin-top: 0.5rem; } .menu a { font-size: smaller; color: #444444; text-decoration: none; } .menu ul { list-style: none; line-height: 1.4; overflow-wrap: break-word; padding-left: 0; } .menu ul ul { margin-left: 20px; list-style: square; } .menu ul li { margin-bottom: 0.5rem; } .language_switcher_placeholder, .version_switcher_placeholder { position: relative; border: 1px solid #a8a8a8; height: 30px; padding-right: 7px; } .language_switcher_placeholder { margin-top: 2rem; } .language_switcher_placeholder::after, .version_switcher_placeholder::after { content: url('../_static/caret-down.svg'); position: absolute; top: 7px; width: 15px; height: 15px; right: 0; pointer-events: none; } .language_switcher_placeholder select, .version_switcher_placeholder select { -webkit-appearance: none; appearance: none; border: 0; height: 100%; background-color: white; } .language_switcher_placeholder:focus-visible, .version_switcher_placeholder:focus-visible { outline-offset: 5px; } .language_switcher_placeholder select { width: 100%; } .document { padding-top: 40px; position: relative; z-index: 0; } /*Responsive tables*/ .responsive-table__container { width: 100%; overflow-x: auto; } } python-docs-theme-2022.1/python_docs_theme/static/sidebar.js000066400000000000000000000104011416724727500241330ustar00rootroot00000000000000/* * sidebar.js * ~~~~~~~~~~ * * This script makes the Sphinx sidebar collapsible. This is a slightly * modified version of Sphinx's own sidebar.js. * * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds in * .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton used to * collapse and expand the sidebar. * * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden and the * width of the sidebar and the margin-left of the document are decreased. * When the sidebar is expanded the opposite happens. This script saves a * per-browser/per-session cookie used to remember the position of the sidebar * among the pages. Once the browser is closed the cookie is deleted and the * position reset to the default (expanded). * * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ $(function() { // global elements used by the functions. // the 'sidebarbutton' element is defined as global after its // creation, in the add_sidebar_button function var bodywrapper = $('.bodywrapper'); var sidebar = $('.sphinxsidebar'); var sidebarwrapper = $('.sphinxsidebarwrapper'); // original margin-left of the bodywrapper and width of the sidebar // with the sidebar expanded var bw_margin_expanded = bodywrapper.css('margin-left'); var ssb_width_expanded = sidebar.width(); // margin-left of the bodywrapper and width of the sidebar // with the sidebar collapsed var bw_margin_collapsed = '.8em'; var ssb_width_collapsed = '.8em'; // colors used by the current theme var dark_color = '#AAAAAA'; var light_color = '#CCCCCC'; function sidebar_is_collapsed() { return sidebarwrapper.is(':not(:visible)'); } function toggle_sidebar() { if (sidebar_is_collapsed()) expand_sidebar(); else collapse_sidebar(); } function collapse_sidebar() { sidebarwrapper.hide(); sidebar.css('width', ssb_width_collapsed); bodywrapper.css('margin-left', bw_margin_collapsed); sidebarbutton.css({ 'margin-left': '0', 'border-radius': '5px' }); sidebarbutton.find('span').text('»'); sidebarbutton.attr('title', _('Expand sidebar')); document.cookie = 'sidebar=collapsed'; } function expand_sidebar() { bodywrapper.css('margin-left', bw_margin_expanded); sidebar.css('width', ssb_width_expanded); sidebarwrapper.show(); sidebarbutton.css({ 'margin-left': ssb_width_expanded-12, 'border-radius': '0 5px 5px 0' }); sidebarbutton.find('span').text('«'); sidebarbutton.attr('title', _('Collapse sidebar')); document.cookie = 'sidebar=expanded'; } function add_sidebar_button() { sidebarwrapper.css({ 'float': 'left', 'margin-right': '0', 'width': ssb_width_expanded - 13 }); // create the button sidebar.append( '
«
' ); var sidebarbutton = $('#sidebarbutton'); sidebarbutton.find('span').css({ 'display': 'block', 'position': 'fixed', 'top': '50%' }); sidebarbutton.click(toggle_sidebar); sidebarbutton.attr('title', _('Collapse sidebar')); sidebarbutton.css({ 'border-radius': '0 5px 5px 0', 'color': '#444444', 'background-color': '#CCCCCC', 'font-size': '1.2em', 'cursor': 'pointer', 'height': '100%', 'padding-left': '1px', 'margin-left': ssb_width_expanded - 12 }); sidebarbutton.hover( function () { $(this).css('background-color', dark_color); }, function () { $(this).css('background-color', light_color); } ); } function set_position_from_cookie() { if (!document.cookie) return; var items = document.cookie.split(';'); for(var k=0; k