mirror of
https://github.com/readthedocs/sphinx_rtd_theme.git
synced 2026-10-14 18:32:01 -05:00
Compare commits
80
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6c90cc8b5 | ||
|
|
9a50ff9015 | ||
|
|
8a02619428 | ||
|
|
8448bd238e | ||
|
|
f5b02911ae | ||
|
|
3532ffc89b | ||
|
|
02d8fe0764 | ||
|
|
9061c1e6de | ||
|
|
380647d159 | ||
|
|
0207996411 | ||
|
|
09e2a0dc2c | ||
|
|
6417defbeb | ||
|
|
51d41e6289 | ||
|
|
c0c52f41ea | ||
|
|
92aa3989a9 | ||
|
|
21b5ed45d4 | ||
|
|
bd6a34135f | ||
|
|
047169a972 | ||
|
|
8d93cdea10 | ||
|
|
e9fda1a5c1 | ||
|
|
1b38126245 | ||
|
|
0073409aaa | ||
|
|
e6bd3f0fc5 | ||
|
|
ee32a53ae2 | ||
|
|
c1aa1b2c6b | ||
|
|
b85d3616dd | ||
|
|
796e78bdf7 | ||
|
|
6597b25257 | ||
|
|
6f9501293b | ||
|
|
037890d1d1 | ||
|
|
da20decbbb | ||
|
|
d93528ef3e | ||
|
|
e1716574e9 | ||
|
|
2ab605a455 | ||
|
|
0ef60e7841 | ||
|
|
15d91096b1 | ||
|
|
1f45c113b6 | ||
|
|
b47f8b343b | ||
|
|
e94984caec | ||
|
|
bc6e9f0766 | ||
|
|
09e9e1004c | ||
|
|
b2323ce07f | ||
|
|
71d6d182cf | ||
|
|
ef9a0584ef | ||
|
|
a2997e8888 | ||
|
|
da86e4dc62 | ||
|
|
05807985d6 | ||
|
|
bd9010f14d | ||
|
|
392daf5047 | ||
|
|
671703c3fb | ||
|
|
2026bb61dd | ||
|
|
b73b67eb33 | ||
|
|
db302055b9 | ||
|
|
836467e4b9 | ||
|
|
3db4e2fbfe | ||
|
|
2f12da38c6 | ||
|
|
60a094bb13 | ||
|
|
9df65f15c5 | ||
|
|
ca2719b32f | ||
|
|
aa28eecc3a | ||
|
|
bba36677de | ||
|
|
c984d08dae | ||
|
|
fe934ec0d4 | ||
|
|
7417ff92bd | ||
|
|
65723affd8 | ||
|
|
3693d4c325 | ||
|
|
6f684828ed | ||
|
|
4d196ce134 | ||
|
|
114fb85b44 | ||
|
|
68d4b8aac7 | ||
|
|
f8e71bf312 | ||
|
|
85f23c9edc | ||
|
|
b33d06444e | ||
|
|
ba1cbb1c07 | ||
|
|
b35637651b | ||
|
|
de76c03824 | ||
|
|
894aef556e | ||
|
|
4ad33d0197 | ||
|
|
e001cca56f | ||
|
|
8ba9c8ac0b |
No files matched your search
+37
-6
@@ -8,13 +8,33 @@ commands:
|
||||
type: string
|
||||
sphinx-version:
|
||||
type: string
|
||||
default: "16,17,18,20,21,22,23,24,30,31,32,33,34,latest"
|
||||
default: "16,17,18,20,21,22,23,24,30,31,32,33,34,35,40,41,latest"
|
||||
steps:
|
||||
- checkout
|
||||
- run: pip install --user tox
|
||||
- run: tox -e "<<parameters.version>>-sphinx{<<parameters.sphinx-version>>}"
|
||||
run-build:
|
||||
description: "Ensure built assets are up to date"
|
||||
steps:
|
||||
- checkout
|
||||
- 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: {}
|
||||
py27:
|
||||
docker:
|
||||
- image: 'cimg/python:2.7'
|
||||
@@ -50,8 +70,19 @@ workflows:
|
||||
version: 2
|
||||
tests:
|
||||
jobs:
|
||||
- py39
|
||||
- py38
|
||||
- py37
|
||||
- py36
|
||||
- py27
|
||||
- build
|
||||
- py39:
|
||||
requires:
|
||||
- build
|
||||
- py38:
|
||||
requires:
|
||||
- build
|
||||
- py37:
|
||||
requires:
|
||||
- build
|
||||
- py36:
|
||||
requires:
|
||||
- build
|
||||
- py27:
|
||||
requires:
|
||||
- build
|
||||
+3
-1
@@ -1,9 +1,11 @@
|
||||
version: 2
|
||||
|
||||
python:
|
||||
version: 3
|
||||
version: 3.8
|
||||
install:
|
||||
- requirements: docs/requirements.txt
|
||||
- method: pip
|
||||
path: .
|
||||
|
||||
sphinx:
|
||||
configuration: docs/conf.py
|
||||
+4
-10
@@ -33,21 +33,15 @@ This theme is distributed on PyPI_ and can be installed with ``pip``:
|
||||
|
||||
$ pip install sphinx-rtd-theme
|
||||
|
||||
To use the theme in your Sphinx project, you will need to add the following to
|
||||
your ``conf.py`` file:
|
||||
To use the theme in your Sphinx project, you will need to edit
|
||||
your ``conf.py`` file's ``html_theme`` setting:
|
||||
|
||||
.. code:: python
|
||||
|
||||
import sphinx_rtd_theme
|
||||
|
||||
extensions = [
|
||||
...
|
||||
"sphinx_rtd_theme",
|
||||
]
|
||||
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
|
||||
For more information read the full documentation on `installing the theme`_
|
||||
For more information, including a full example with localized strings enabled,
|
||||
read the documentation on `installing the theme`_.
|
||||
|
||||
.. _PyPI: https://pypi.python.org/pypi/sphinx_rtd_theme
|
||||
.. _installing the theme: https://sphinx-rtd-theme.readthedocs.io/en/latest/installing.html
|
||||
|
||||
Vendored
+11
-11
@@ -1,6 +1,6 @@
|
||||
{%- 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
|
||||
@@ -8,8 +8,8 @@ Docs. This is for local testing purposes only.
|
||||
|
||||
#}
|
||||
|
||||
{% block footer %}
|
||||
{% if not READTHEDOCS %}
|
||||
{%- 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>
|
||||
@@ -19,15 +19,15 @@ Docs. This is for local testing purposes only.
|
||||
<div class="rst-other-versions">
|
||||
<dl>
|
||||
<dt>{{ _('Versions') }}</dt>
|
||||
{% if test_versions %}
|
||||
{% for version in test_versions %}
|
||||
{%- if test_versions %}
|
||||
{%- for version in test_versions %}
|
||||
<dd><a href="#">{{ version }}</a></dd>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
<dd><a href="#">latest</a></dd>
|
||||
<dd><a href="#">1.0</a></dd>
|
||||
<dd><a href="#">1.1</a></dd>
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{{ _('Downloads') }}</dt>
|
||||
@@ -36,7 +36,7 @@ Docs. This is for local testing purposes only.
|
||||
<dd><a href="#">HTML</a></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
{# Translators: The phrase "Read the Docs" is not translated #}
|
||||
{#- Translators: The phrase "Read the Docs" is not translated #}
|
||||
<dt>{{ _('On Read the Docs') }}</dt>
|
||||
<dd>
|
||||
<a href="#">{{ _('Project Home') }}</a>
|
||||
@@ -51,5 +51,5 @@ Docs. This is for local testing purposes only.
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
@@ -5,6 +5,50 @@ Changelog
|
||||
master
|
||||
======
|
||||
|
||||
v1.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)
|
||||
|
||||
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)
|
||||
* Templates: Cleanup Whitespace (#1060)
|
||||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* Javascript: Add support for deep toc levels (#1089)
|
||||
* Use Proper Sass Syntax (#1069)
|
||||
* Nav: Fix right padding on level2+ (#1068)
|
||||
* Fix Nav Buttons Size (#1067)
|
||||
* Fix: wrap inline literals (#1050)
|
||||
* Fix aria label (#1056)
|
||||
* Respect tab order for prev/next buttons (#1051)
|
||||
* Nav: Don't toggle terminal nodes (#1049)
|
||||
|
||||
v0.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)
|
||||
|
||||
v0.5.1
|
||||
======
|
||||
|
||||
|
||||
+8
-18
@@ -4,30 +4,20 @@ import sys
|
||||
import os
|
||||
import re
|
||||
|
||||
# If we are building locally, or the build on Read the Docs looks like a PR
|
||||
# build, prefer to use the version of the theme in this repo, not the installed
|
||||
# version of the theme.
|
||||
def is_development_build():
|
||||
# PR builds have an interger version
|
||||
re_version = re.compile(r'^[\d]+$')
|
||||
if 'READTHEDOCS' in os.environ:
|
||||
version = os.environ.get('READTHEDOCS_VERSION', '')
|
||||
if re_version.match(version):
|
||||
return True
|
||||
return False
|
||||
return True
|
||||
|
||||
if is_development_build():
|
||||
sys.path.insert(0, os.path.abspath('..'))
|
||||
# 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/'))
|
||||
|
||||
import sphinx_rtd_theme
|
||||
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 = '0.5.1'
|
||||
release = '0.5.1'
|
||||
version = theme_version
|
||||
release = theme_version_full
|
||||
author = u'Dave Snider, Read the Docs, Inc. & contributors'
|
||||
copyright = author
|
||||
language = 'en'
|
||||
@@ -53,7 +43,7 @@ pygments_style = 'default'
|
||||
|
||||
intersphinx_mapping = {
|
||||
'rtd': ('https://docs.readthedocs.io/en/stable/', None),
|
||||
'sphinx': ('https://www.sphinx-doc.org/en/stable/', None),
|
||||
'sphinx': ('https://www.sphinx-doc.org/en/master/', None),
|
||||
}
|
||||
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
|
||||
+44
-42
@@ -13,7 +13,7 @@ For example:
|
||||
.. code:: python
|
||||
|
||||
html_theme_options = {
|
||||
'analytics_id': 'UA-XXXXXXX-1', # Provided by Google in your dashboard
|
||||
'analytics_id': 'G-XXXXXXXXXX', # Provided by Google in your dashboard
|
||||
'analytics_anonymize_ip': False,
|
||||
'logo_only': False,
|
||||
'display_version': True,
|
||||
@@ -37,49 +37,49 @@ documentation navigation.
|
||||
|
||||
.. confval:: collapse_navigation
|
||||
|
||||
:type: boolean
|
||||
:default: ``True``
|
||||
|
||||
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``
|
||||
|
||||
Scroll the navigation with the main page content as you scroll the page.
|
||||
|
||||
.. confval:: navigation_depth
|
||||
|
||||
:type: integer
|
||||
:default: ``4``
|
||||
|
||||
The maximum depth of the table of contents tree. Set
|
||||
this to ``-1`` to allow unlimited depth.
|
||||
|
||||
.. confval:: includehidden
|
||||
:type: integer
|
||||
:default: ``4``
|
||||
|
||||
:type: boolean
|
||||
:default: ``True``
|
||||
.. 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.
|
||||
|
||||
.. confval:: titles_only
|
||||
|
||||
:type: boolean
|
||||
:default: False
|
||||
:default: ``True``
|
||||
|
||||
.. confval:: titles_only
|
||||
|
||||
When enabled, page subheadings are not included in the
|
||||
navigation.
|
||||
|
||||
.. 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.
|
||||
:type: boolean
|
||||
:default: False
|
||||
|
||||
.. _table of contents configuration options: http://www.sphinx-doc.org/en/stable/templating.html#toctree
|
||||
|
||||
@@ -96,28 +96,30 @@ 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
|
||||
|
||||
If specified, Google Analytics' javascript is included in your pages.
|
||||
Set the value to the ID provided to you by google (like ``UA-XXXXXXX``).
|
||||
.. _gtag.js: https://developers.google.com/gtagjs
|
||||
|
||||
.. confval:: analytics_anonymize_ip
|
||||
|
||||
Anonymize visitor IP addresses in Google Analytics.
|
||||
|
||||
:type: boolean
|
||||
:default: ``False``
|
||||
|
||||
Anonymize visitor IP addresses in Google Analytics.
|
||||
|
||||
.. confval:: canonical_url
|
||||
|
||||
:type: 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.
|
||||
@@ -126,51 +128,52 @@ Miscellaneous options
|
||||
|
||||
.. confval:: display_version
|
||||
|
||||
If ``True``, the version number is shown at the top of the sidebar.
|
||||
|
||||
:type: boolean
|
||||
:default: ``True``
|
||||
|
||||
If ``True``, the version number is shown at the top of the sidebar.
|
||||
|
||||
.. confval:: logo_only
|
||||
|
||||
:type: boolean
|
||||
:default: ``False``
|
||||
|
||||
Only display the logo image, do not display the project name at the top of
|
||||
the sidebar
|
||||
|
||||
.. confval:: prev_next_buttons_location
|
||||
:type: boolean
|
||||
:default: ``False``
|
||||
|
||||
:type: string
|
||||
:default: ``bottom``
|
||||
.. 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``
|
||||
|
||||
Add an icon next to external links.
|
||||
|
||||
.. confval:: vcs_pageview_mode
|
||||
|
||||
:type: string
|
||||
:default: ``blob`` or ``view``
|
||||
|
||||
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``
|
||||
|
||||
Changes the background of the search area in the navigation bar. The value
|
||||
can be anything valid in a CSS `background` property.
|
||||
|
||||
File-wide metadata
|
||||
==================
|
||||
@@ -190,7 +193,6 @@ The following options can be used as :ref:`file-wide metadata
|
||||
|
||||
Force the :guilabel:`Edit on GitLab` button to use the configured URL.
|
||||
|
||||
|
||||
Other configuration
|
||||
===================
|
||||
|
||||
|
||||
+88
-5
@@ -62,6 +62,89 @@ can be used to test built assets:
|
||||
.. _Wyrm: http://www.github.com/snide/wyrm/
|
||||
.. _Sphinx: http://www.sphinx-doc.org/en/stable/
|
||||
|
||||
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. We officially support back
|
||||
to IE11 at the moment
|
||||
* Multiple viewport sizes should be tested for changes. We support large,
|
||||
tablet, and mobile viewport sizes
|
||||
* We currently support both the Sphinx HTML4 writer and HTML5 writer. This makes
|
||||
for some complex CSS selectors
|
||||
* Multiple major versions of Sphinx should be tested. We currently support back
|
||||
to Sphinx version ``1.6``
|
||||
|
||||
It's easiest to test combinations of dependency versions using ``tox``:
|
||||
|
||||
.. code:: console
|
||||
|
||||
% tox -e py3-sphinx34-html4
|
||||
|
||||
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/py3-sphinx34-html4/tmp/html.
|
||||
___________________________ summary ___________________________
|
||||
py3-sphinx34-html4: 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 py3-sphinx34-html4
|
||||
...
|
||||
% tox -e py3-sphinx34-html5
|
||||
...
|
||||
% firefox .tox/py3-sphinx34-html4/tmp/html/index.html
|
||||
% firefox .tox/py3-sphinx34-html5/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 py3-sphinx34-html4-qa
|
||||
...
|
||||
% git checkout feature/example-pull-request
|
||||
% tox -e py3-sphinx34-html4
|
||||
...
|
||||
% firefox .tox/py3-sphinx34-html4-qa/tmp/html/index.html
|
||||
% firefox .tox/py3-sphinx34-html4/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, HTML4/5 writer, and latest
|
||||
minor of each major Sphinx release should give us enough work.
|
||||
|
||||
* ``py3-sphinx18-html4``
|
||||
* ``py3-sphinx18-html5``
|
||||
* ``py3-sphinx24-html4``
|
||||
* ``py3-sphinx24-html5``
|
||||
* ``py3-sphinx35-html4``
|
||||
* ``py3-sphinx35-html5``
|
||||
* ``py3-sphinx41-html4``
|
||||
* ``py3-sphinx41-html5``
|
||||
|
||||
Translations
|
||||
============
|
||||
|
||||
@@ -101,17 +184,17 @@ To release a new version of the theme, core team will take the following steps:
|
||||
#. 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 ``python setup.py build`` to rebuild all the theme assets and the Python
|
||||
#. Run ``python setup.py build_assets`` to rebuild all the theme assets and the Python
|
||||
package.
|
||||
#. Commit these changes.
|
||||
#. Tag the release in git: ``git tag $NEW_VERSION``.
|
||||
#. Push the tag to GitHub: ``git push --tags origin``.
|
||||
#. Upload the package to PyPI:
|
||||
|
||||
.. code:: console
|
||||
.. code:: console
|
||||
|
||||
$ rm -rf dist/
|
||||
$ python setup.py sdist bdist_wheel
|
||||
$ twine upload --sign --identity security@readthedocs.org dist/*
|
||||
$ rm -rf dist/
|
||||
$ python setup.py sdist bdist_wheel
|
||||
$ twine upload --sign --identity security@readthedocs.org dist/*
|
||||
|
||||
.. _PEP440: https://www.python.org/dev/peps/pep-0440/
|
||||
+26
-4
@@ -23,14 +23,20 @@ In your ``conf.py`` file:
|
||||
|
||||
|
||||
.. 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.
|
||||
|
||||
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.
|
||||
|
||||
Via Git or Download
|
||||
===================
|
||||
|
||||
.. warning::
|
||||
|
||||
Installing directly from the repo is deprecated.
|
||||
Static assets won't be included in the repo in a future release.
|
||||
|
||||
Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into your documentation at
|
||||
``docs/_themes/sphinx_rtd_theme`` then add the following two settings to your Sphinx
|
||||
``conf.py`` file:
|
||||
@@ -39,3 +45,19 @@ Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into you
|
||||
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
html_theme_path = ["_themes", ]
|
||||
|
||||
Compatibility
|
||||
=============
|
||||
|
||||
Python
|
||||
------
|
||||
|
||||
``sphinx_rtd_theme`` requires Python 2.7 or Python 3.4 or greater.
|
||||
|
||||
Sphinx
|
||||
------
|
||||
|
||||
``sphinx_rtd_theme`` depends on at least Sphinx 1.6 although,
|
||||
we recommend at least Sphinx 2 to take advantage of the html5 writer.
|
||||
The html4 writer is still supported however,
|
||||
it is deprecated and support will be removed in the near future.
|
||||
Generated
+1138
-1588
File diff suppressed because it is too large.
Load diff
+19
-9
@@ -1,36 +1,46 @@
|
||||
{
|
||||
"name": "sphinx_rtd_theme",
|
||||
"main": "js/theme.js",
|
||||
"version": "0.5.1",
|
||||
"version": "0.5.2",
|
||||
"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.1",
|
||||
"css-loader": "^3.1.0",
|
||||
"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.4.1",
|
||||
"jquery": "^3.6.0",
|
||||
"lato-font": "^3.0.0",
|
||||
"mini-css-extract-plugin": "^0.6.0",
|
||||
"node-sass": "^4.13.1",
|
||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||
"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.30.0",
|
||||
"webpack-cli": "^3.3.1",
|
||||
"webpack-dev-server": "^3.3.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.0.3",
|
||||
"webpack-watch-files-plugin": "^1.1.0",
|
||||
"wyrm": "^1.0.9"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
[bumpversion]
|
||||
current_version = 0.5.1
|
||||
current_version = 0.5.2
|
||||
commit = false
|
||||
tag = false
|
||||
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)((?P<release>[a-z]+)(?P<dev>\d+))?
|
||||
|
||||
@@ -1,27 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""`sphinx_rtd_theme` lives on `Github`_.
|
||||
|
||||
.. _github: https://github.com/readthedocs/sphinx_rtd_theme
|
||||
|
||||
"""
|
||||
|
||||
import distutils.cmd
|
||||
import os
|
||||
import subprocess
|
||||
import distutils.cmd
|
||||
import setuptools.command.build_py
|
||||
from io import open
|
||||
|
||||
from setuptools import setup
|
||||
|
||||
|
||||
class WebpackBuildCommand(setuptools.command.build_py.build_py):
|
||||
class WebpackBuildCommand(distutils.cmd.Command):
|
||||
|
||||
"""Prefix Python build with Webpack asset build"""
|
||||
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)
|
||||
setuptools.command.build_py.build_py.run(self)
|
||||
|
||||
|
||||
class WebpackDevelopCommand(distutils.cmd.Command):
|
||||
@@ -85,7 +87,7 @@ class TransifexCommand(distutils.cmd.Command):
|
||||
|
||||
setup(
|
||||
name='sphinx_rtd_theme',
|
||||
version='0.5.1',
|
||||
version='0.5.2',
|
||||
url='https://github.com/readthedocs/sphinx_rtd_theme',
|
||||
license='MIT',
|
||||
author='Dave Snider, Read the Docs, Inc. & contributors',
|
||||
@@ -95,7 +97,7 @@ setup(
|
||||
cmdclass={
|
||||
'update_translations': UpdateTranslationsCommand,
|
||||
'transifex': TransifexCommand,
|
||||
'build_py': WebpackBuildCommand,
|
||||
'build_assets': WebpackBuildCommand,
|
||||
'watch': WebpackDevelopCommand,
|
||||
},
|
||||
zip_safe=False,
|
||||
@@ -104,7 +106,7 @@ setup(
|
||||
'theme.conf',
|
||||
'*.html',
|
||||
'static/css/*.css',
|
||||
'static/css/fonts/*.*'
|
||||
'static/css/fonts/*.*',
|
||||
'static/js/*.js',
|
||||
]},
|
||||
include_package_data=True,
|
||||
@@ -114,8 +116,10 @@ setup(
|
||||
'sphinx_rtd_theme = sphinx_rtd_theme',
|
||||
]
|
||||
},
|
||||
python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*',
|
||||
install_requires=[
|
||||
'sphinx'
|
||||
'sphinx>=1.6',
|
||||
'docutils<0.17', # https://github.com/sphinx-doc/sphinx/issues/9001
|
||||
],
|
||||
tests_require=[
|
||||
'pytest',
|
||||
@@ -137,12 +141,17 @@ setup(
|
||||
'Intended Audience :: Developers',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.3',
|
||||
'Programming Language :: Python :: 3.4',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
'Programming Language :: Python :: 3.7',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Operating System :: OS Independent',
|
||||
'Topic :: Documentation',
|
||||
'Topic :: Software Development :: Documentation',
|
||||
],
|
||||
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',
|
||||
},
|
||||
)
|
||||
@@ -5,18 +5,14 @@ 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
|
||||
from sphinx import version_info as sphinx_version
|
||||
from sphinx.locale import _
|
||||
|
||||
try:
|
||||
# Avaliable from Sphinx 1.6
|
||||
from sphinx.util.logging import getLogger
|
||||
except ImportError:
|
||||
from logging import getLogger
|
||||
from sphinx.util.logging import getLogger
|
||||
|
||||
|
||||
__version__ = '0.5.1'
|
||||
__version__ = '0.5.2'
|
||||
__version_full__ = __version__
|
||||
|
||||
logger = getLogger(__name__)
|
||||
@@ -35,18 +31,33 @@ def config_initiated(app, config):
|
||||
_('The canonical_url option is deprecated, use the html_baseurl option from Sphinx instead.')
|
||||
)
|
||||
|
||||
|
||||
# See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package
|
||||
def setup(app):
|
||||
if version_info >= (1, 6, 0):
|
||||
# Register the theme that can be referenced without adding a theme path
|
||||
app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))
|
||||
if python_version[0] < 3:
|
||||
logger.warning("Python 2 is deprecated with sphinx_rtd_theme, update to Python 3")
|
||||
app.require_sphinx('1.6')
|
||||
if sphinx_version <= (2, 0, 0):
|
||||
logger.warning("Sphinx 1.x is deprecated with sphinx_rtd_theme, update to Sphinx 2.x or greater")
|
||||
if not app.config.html_experimental_html5_writer:
|
||||
logger.warning("'html4_writer' is deprecated with sphinx_rtd_theme")
|
||||
else:
|
||||
if app.config.html4_writer:
|
||||
logger.warning("'html4_writer' is deprecated with sphinx_rtd_theme")
|
||||
|
||||
if version_info >= (1, 8, 0):
|
||||
# Register the theme that can be referenced without adding a theme path
|
||||
app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))
|
||||
|
||||
if sphinx_version >= (1, 8, 0):
|
||||
# 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
|
||||
if sphinx_version >= (3, 5, 0):
|
||||
app.config.html_permalinks_icon = "\uf0c1"
|
||||
else:
|
||||
app.config.html_add_permalinks = "\uf0c1"
|
||||
|
||||
return {'parallel_read_safe': True, 'parallel_write_safe': True}
|
||||
@@ -1,84 +1,75 @@
|
||||
{# Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #}
|
||||
{%- if meta is defined and meta is not none %}
|
||||
{%- set check_meta = True %}
|
||||
{%- else %}
|
||||
{%- set check_meta = False %}
|
||||
{%- endif %}
|
||||
|
||||
{% if page_source_suffix %}
|
||||
{% set suffix = page_source_suffix %}
|
||||
{% else %}
|
||||
{% set suffix = source_suffix %}
|
||||
{% endif %}
|
||||
{%- if check_meta and 'github_url' in meta %}
|
||||
{%- set display_github = True %}
|
||||
{%- endif %}
|
||||
|
||||
{% if meta is defined and meta is not none %}
|
||||
{% set check_meta = True %}
|
||||
{% else %}
|
||||
{% set check_meta = False %}
|
||||
{% endif %}
|
||||
{%- if check_meta and 'bitbucket_url' in meta %}
|
||||
{%- set display_bitbucket = True %}
|
||||
{%- endif %}
|
||||
|
||||
{% if check_meta and 'github_url' in meta %}
|
||||
{% set display_github = True %}
|
||||
{% endif %}
|
||||
{%- if check_meta and 'gitlab_url' in meta %}
|
||||
{%- set display_gitlab = 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 %}
|
||||
{%- set display_vcs_links = display_vcs_links if display_vcs_links is defined else True %}
|
||||
|
||||
<div role="navigation" aria-label="{{ _('Breadcrumbs') }}">
|
||||
|
||||
<ul class="wy-breadcrumbs">
|
||||
{% block breadcrumbs %}
|
||||
{%- block breadcrumbs %}
|
||||
<li><a href="{{ pathto(master_doc) }}" class="icon icon-home"></a> »</li>
|
||||
{% for doc in parents %}
|
||||
{%- for doc in parents %}
|
||||
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> »</li>
|
||||
{% endfor %}
|
||||
{%- endfor %}
|
||||
<li>{{ title }}</li>
|
||||
{% endblock %}
|
||||
{% block breadcrumbs_aside %}
|
||||
{%- 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 %}
|
||||
{%- 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 }}{{ suffix }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{% endif %}
|
||||
{% elif display_bitbucket %}
|
||||
{% if check_meta and 'bitbucket_url' in meta %}
|
||||
{%- 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 }}{{ 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 %}
|
||||
{%- 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 }}{{ suffix }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||
{% endif %}
|
||||
{% elif show_source and source_url_prefix %}
|
||||
<a href="{{ source_url_prefix }}{{ pagename }}{{ suffix }}">{{ _('View page source') }}</a>
|
||||
{% elif show_source and has_source and sourcename %}
|
||||
{%- 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 %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
</li>
|
||||
{% endblock %}
|
||||
{%- endblock %}
|
||||
</ul>
|
||||
|
||||
{% if (theme_prev_next_buttons_location == 'top' or theme_prev_next_buttons_location == 'both') and (next or prev) %}
|
||||
{%- if (theme_prev_next_buttons_location == 'top' or theme_prev_next_buttons_location == 'both') and (next or prev) %}
|
||||
<div class="rst-breadcrumbs-buttons" role="navigation" aria-label="{{ _('Breadcrumbs') }}">
|
||||
{% if prev %}
|
||||
{%- 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 %}
|
||||
{%- 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 %}
|
||||
{%- endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
<hr/>
|
||||
</div>
|
||||
@@ -17,44 +17,44 @@
|
||||
<p>
|
||||
{%- if show_copyright %}
|
||||
{%- if hasdoc('copyright') %}
|
||||
{% trans path=pathto('copyright'), copyright=copyright|e %}© <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
|
||||
{%- trans path=pathto('copyright'), copyright=copyright|e %}© <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
|
||||
{%- else %}
|
||||
{% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %}
|
||||
{%- trans copyright=copyright|e %}© 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 %}
|
||||
{#- 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>.
|
||||
{#- 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 %}
|
||||
{%- trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
|
||||
</span>
|
||||
{%- endif %}
|
||||
{%- 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 documenation #}
|
||||
{% 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 documenation #}
|
||||
<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 %}
|
||||
{#- 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 %}
|
||||
|
||||
|
||||
+100
-95
@@ -7,62 +7,74 @@
|
||||
{%- set titlesuffix = "" %}
|
||||
{%- endif %}
|
||||
{%- set lang_attr = 'en' if language == None else (language | replace('_', '-')) %}
|
||||
{%- set sphinx_writer = 'writer-html5' if html5_doctype else 'writer-html4' %}
|
||||
{%- 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, _ver_bugfix) = sphinx_version.split('.') | map('int') -%}
|
||||
{%- set sphinx_version_info = (_ver_major, _ver_minor, _ver_bugfix) -%}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html class="{{ sphinx_writer }}" lang="{{ lang_attr }}" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
{{ metatags }}
|
||||
{{- metatags }}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
{% block htmltitle %}
|
||||
{%- block htmltitle %}
|
||||
<title>{{ title|striptags|e }}{{ titlesuffix }}</title>
|
||||
{% endblock %}
|
||||
{%- endblock -%}
|
||||
|
||||
{# CSS #}
|
||||
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
|
||||
{#- 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 in css_files %}
|
||||
{%- if css|attr("rel") %}
|
||||
<link rel="{{ css.rel }}" href="{{ pathto(css.filename, 1) }}" type="text/css"{% if css.title is not none %} title="{{ css.title }}"{% endif %} />
|
||||
<link rel="{{ css.rel }}" href="{{ pathto(css.filename, 1) }}" type="text/css"{% if css.title is not none %} title="{{ css.title }}"{% endif %} />
|
||||
{%- else %}
|
||||
<link rel="stylesheet" href="{{ pathto(css, 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto(css, 1) }}" type="text/css" />
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
|
||||
{%- for cssfile in extra_css_files %}
|
||||
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
|
||||
{%- endfor %}
|
||||
{%- endfor -%}
|
||||
|
||||
{# FAVICON #}
|
||||
{% if favicon %}
|
||||
{#- FAVICON #}
|
||||
{%- if favicon %}
|
||||
{%- if sphinx_version_info < (4, 0) -%}
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
|
||||
{% endif %}
|
||||
{%- else %}
|
||||
<link rel="shortcut icon" href="{{ favicon_url }}"/>
|
||||
{%- endif %}
|
||||
{%- endif -%}
|
||||
|
||||
{# CANONICAL URL (deprecated) #}
|
||||
{% if theme_canonical_url and not pageurl %}
|
||||
{#- CANONICAL URL (deprecated) #}
|
||||
{%- if theme_canonical_url and not pageurl %}
|
||||
<link rel="canonical" href="{{ theme_canonical_url }}{{ pagename }}.html"/>
|
||||
{% endif %}
|
||||
{%- endif -%}
|
||||
|
||||
{# CANONICAL URL #}
|
||||
{#- CANONICAL URL #}
|
||||
{%- if pageurl %}
|
||||
<link rel="canonical" href="{{ pageurl|e }}" />
|
||||
{%- endif %}
|
||||
{%- endif -%}
|
||||
|
||||
{# JAVASCRIPTS #}
|
||||
{#- 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 >= "1.8.0" %}
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="{{ url_root }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script>
|
||||
{%- 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 type="text/javascript">
|
||||
{%- else %}
|
||||
<script>
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'{{ url_root }}',
|
||||
VERSION:'{{ release|e }}',
|
||||
@@ -74,12 +86,12 @@
|
||||
};
|
||||
</script>
|
||||
{%- for scriptfile in script_files %}
|
||||
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
|
||||
<script src="{{ pathto(scriptfile, 1) }}"></script>
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
<script type="text/javascript" src="{{ pathto('_static/js/theme.js', 1) }}"></script>
|
||||
{%- endif %}
|
||||
<script src="{{ pathto('_static/js/theme.js', 1) }}"></script>
|
||||
|
||||
{# OPENSEARCH #}
|
||||
{#- OPENSEARCH #}
|
||||
{%- if use_opensearch %}
|
||||
<link rel="search" type="application/opensearchdescription+xml"
|
||||
title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
|
||||
@@ -113,136 +125,129 @@
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
||||
{% block extrabody %} {% endblock %}
|
||||
{%- block extrabody %} {% endblock %}
|
||||
<div class="wy-grid-for-nav">
|
||||
{# SIDE NAV, TOGGLES ON MOBILE #}
|
||||
{#- 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 %}
|
||||
{%- block sidebartitle %}
|
||||
|
||||
{% if logo and theme_logo_only %}
|
||||
{%- if logo and theme_logo_only %}
|
||||
<a href="{{ pathto(master_doc) }}">
|
||||
{% else %}
|
||||
{%- else %}
|
||||
<a href="{{ pathto(master_doc) }}" class="icon icon-home"> {{ project }}
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
|
||||
{% if logo %}
|
||||
{# Not strictly valid HTML, but it's the only way to display/scale
|
||||
it properly, without weird scripting or heaps of work
|
||||
{%- if logo %}
|
||||
{#- Not strictly valid HTML, but it's the only way to display/scale
|
||||
it properly, without weird scripting or heaps of work
|
||||
#}
|
||||
{%- if sphinx_version_info < (4, 0) -%}
|
||||
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="{{ _('Logo') }}"/>
|
||||
{% endif %}
|
||||
{%- else %}
|
||||
<img src="{{ logo_url }}" class="logo" alt="{{ _('Logo') }}"/>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
</a>
|
||||
|
||||
{% if theme_display_version %}
|
||||
{%- if theme_display_version %}
|
||||
{%- set nav_version = version %}
|
||||
{% if READTHEDOCS and current_version %}
|
||||
{%- if READTHEDOCS and current_version %}
|
||||
{%- set nav_version = current_version %}
|
||||
{% endif %}
|
||||
{% if nav_version %}
|
||||
{%- endif %}
|
||||
{%- if nav_version %}
|
||||
<div class="version">
|
||||
{{ nav_version }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
{% include "searchbox.html" %}
|
||||
{%- include "searchbox.html" %}
|
||||
|
||||
{% endblock %}
|
||||
{%- endblock %}
|
||||
</div>
|
||||
|
||||
{% block navigation %}
|
||||
{%- block navigation %}
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="{{ _('Main') }}">
|
||||
{% block menu %}
|
||||
{#
|
||||
The singlehtml builder doesn't handle this toctree call when the
|
||||
toctree is empty. Skip building this for now.
|
||||
#}
|
||||
{% if 'singlehtml' not in builder %}
|
||||
{% set global_toc = toctree(maxdepth=theme_navigation_depth|int,
|
||||
collapse=theme_collapse_navigation|tobool,
|
||||
includehidden=theme_includehidden|tobool,
|
||||
titles_only=theme_titles_only|tobool) %}
|
||||
{% endif %}
|
||||
{% if global_toc %}
|
||||
{{ global_toc }}
|
||||
{% else %}
|
||||
{%- 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 %}
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
{%- endblock %}
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
{# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
|
||||
<nav class="wy-nav-top" aria-label="{{ _('Top') }}">
|
||||
{% block mobile_nav %}
|
||||
{#- MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
|
||||
<nav class="wy-nav-top" aria-label="{{ _('Top') }}" {% 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 %}
|
||||
{%- endblock %}
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
{%- block content %}
|
||||
{% if theme_style_external_links|tobool %}
|
||||
{%- if theme_style_external_links|tobool %}
|
||||
<div class="rst-content style-external-links">
|
||||
{% else %}
|
||||
{%- else %}
|
||||
<div class="rst-content">
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
{% include "breadcrumbs.html" %}
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
{%- block document %}
|
||||
<div itemprop="articleBody">
|
||||
{% block body %}{% endblock %}
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
{% if self.comments()|trim %}
|
||||
<div class="articleComments">
|
||||
{% block comments %}{% endblock %}
|
||||
</div>
|
||||
{% endif%}
|
||||
{%- 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" %}
|
||||
{% include "versions.html" -%}
|
||||
|
||||
<script type="text/javascript">
|
||||
<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 %}
|
||||
{#- 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>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
ga('create', '{{ theme_analytics_id }}', 'auto');
|
||||
{% if theme_analytics_anonymize_ip|tobool %}
|
||||
ga('set', 'anonymizeIp', true);
|
||||
{% endif %}
|
||||
ga('send', 'pageview');
|
||||
gtag('config', '{{ theme_analytics_id }}', {
|
||||
'anonymize_ip': {{ 'true' if theme_analytics_anonymize_ip|tobool else 'false' }},
|
||||
});
|
||||
</script>
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
{%- block footer %} {% endblock %}
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
{% set display_vcs_links = False %}
|
||||
{%- block scripts %}
|
||||
{{ super() }}
|
||||
<script type="text/javascript" src="{{ pathto('_static/searchtools.js', 1) }}"></script>
|
||||
<script type="text/javascript" src="{{ pathto('_static/language_data.js', 1) }}"></script>
|
||||
<script src="{{ pathto('_static/searchtools.js', 1) }}"></script>
|
||||
<script src="{{ pathto('_static/language_data.js', 1) }}"></script>
|
||||
{%- endblock %}
|
||||
{% block footer %}
|
||||
<script type="text/javascript">
|
||||
<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 type="text/javascript" id="searchindexloader"></script>
|
||||
<script id="searchindexloader"></script>
|
||||
{{ super() }}
|
||||
{% endblock %}
|
||||
{% block body %}
|
||||
|
||||
@@ -1 +1 @@
|
||||
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
|
||||
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
|
||||
@@ -1,4 +1,4 @@
|
||||
html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a,.wy-menu-vertical li.current>a span.toctree-expand:before,.wy-menu-vertical li.on a,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li span.toctree-expand:before,.wy-nav-top a,.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*!
|
||||
html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,.wy-nav-top a,.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*!
|
||||
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
|
||||
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
||||
*/@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li span.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p.caption .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a span.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-left.toctree-expand,.wy-menu-vertical li span.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p.caption .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a span.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-right.toctree-expand,.wy-menu-vertical li span.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p.caption .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a span.pull-left.toctree-expand,.wy-menu-vertical li.on a span.pull-left.toctree-expand,.wy-menu-vertical li span.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p.caption .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.downloadLine truncated
|
||||
*/@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p.caption .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p.caption .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p.caption .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p.caption .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,Line truncated
|
||||
@@ -1 +1 @@
|
||||
!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),n("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),n("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n('<span class="toctree-expand"></span>'),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}t.length>0&&($(".wy-menu-vertical .current").removeClass("current"),t.addClass("current"),t.closest("li.toctree-l1").addClass("current"),t.closest("li.toctree-l1").parent().addClass("current"),t.closest("li.toctree-l1").addClass("current"),t.closest("li.toctree-l2").addClass("current"),t.closest("li.toctree-l3").addClass("current"),t.closest("li.toctree-l4").addClass("current"),t.closest("li.toctree-l5").addClass("current"),t[0].scrollIntoView())}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current");var t=e.find("> ul li");t.length&&(t.removeClass("current"),e.toggleClass("current"))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[t]+"CancelAnimationFrame"]||window[e[t]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var i=(new Date).getTime(),o=Math.max(0,16-(i-n)),r=window.setTimeout((function(){e(i+o)}),o);return n=i+o,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()}).call(window)},function(n,e){n.exports=jQuery},function(n,e,t){}]);
|
||||
!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),n("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),n("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n('<button class="toctree-expand" title="Open/close menu"></button>'),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[t]+"CancelAnimationFrame"]||window[e[t]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var i=(new Date).getTime(),o=Math.max(0,16-(i-n)),r=window.setTimeout((function(){e(i+o)}),o);return n=i+o,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()}).call(window)},function(n,e){n.exports=jQueLine truncated
|
||||
@@ -20,7 +20,6 @@
|
||||
font-size: 90%
|
||||
cursor: pointer
|
||||
color: $green
|
||||
+clearfix
|
||||
.fa
|
||||
color: $section-background-color
|
||||
.fa-book
|
||||
|
||||
@@ -30,7 +30,7 @@ ul.fas
|
||||
text-indent: -0.8em
|
||||
li
|
||||
.fa
|
||||
width: .8em
|
||||
width: 0.8em
|
||||
.fa-large:before,
|
||||
.fa-large:before
|
||||
/* 1.5 increased font size for fa-large * 1.25 width
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
.wy-breadcrumbs
|
||||
+clearfix
|
||||
|
||||
.wy-breadcrumbs li
|
||||
display: inline-block
|
||||
&.wy-breadcrumbs-aside
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
$lato-font-path: "~lato-font/fonts";
|
||||
$roboto-font-path: "~roboto-fontface/fonts/roboto-slab";
|
||||
|
||||
// $font-full-path: '#{$roboto-font-path}/roboto-slab/Roboto-Slab';
|
||||
$lato-font-path: "~lato-font/fonts"
|
||||
$roboto-font-path: "~roboto-fontface/fonts/roboto-slab"
|
||||
|
||||
@font-face
|
||||
font-family: 'Lato'
|
||||
|
||||
+34
-35
@@ -11,11 +11,10 @@ html
|
||||
text-decoration: none
|
||||
|
||||
.wy-menu-horiz
|
||||
+clearfix
|
||||
ul, li
|
||||
display: inline-block
|
||||
li:hover
|
||||
background: rgba(255,255,255,.1)
|
||||
background: rgba(255, 255, 255, 0.1)
|
||||
li
|
||||
&.divide-left
|
||||
border-left: solid 1px hsl(0, 0%, 25%)
|
||||
@@ -35,7 +34,7 @@ html
|
||||
height: $base-font-size * 2
|
||||
line-height: $base-font-size * 2
|
||||
padding: 0 $gutter
|
||||
margin: $base-line-height / 2 0 0 0
|
||||
margin: ($base-line-height / 2) 0 0 0
|
||||
display: block
|
||||
font-weight: bold
|
||||
text-transform: uppercase
|
||||
@@ -54,7 +53,7 @@ html
|
||||
a
|
||||
color: $menu-link-medium
|
||||
border-right: solid 1px darken($menu-vertical-background-color, 20%)
|
||||
padding: $gutter / 4 $gutter * 1.5
|
||||
padding: ($gutter / 4) ($gutter * 1.5)
|
||||
&:hover
|
||||
background: darken($menu-vertical-background-color, 15%)
|
||||
code
|
||||
@@ -64,20 +63,22 @@ html
|
||||
padding-left: 0
|
||||
padding-right: 0
|
||||
// Expand links
|
||||
span.toctree-expand
|
||||
button.toctree-expand
|
||||
display: block
|
||||
float: left
|
||||
margin-left: -1.2em
|
||||
@extend .fa
|
||||
@extend .fa-plus-square-o
|
||||
font-size: .8em
|
||||
line-height: 1.6em
|
||||
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
|
||||
padding: ($gutter / 4) $gutter
|
||||
font-weight: bold
|
||||
position: relative
|
||||
background: $menu-vertical-background-color
|
||||
@@ -86,14 +87,13 @@ html
|
||||
+font-smooth
|
||||
&:hover
|
||||
background: $menu-vertical-background-color
|
||||
span.toctree-expand
|
||||
button.toctree-expand
|
||||
color: $menu-link-medium
|
||||
span.toctree-expand
|
||||
button.toctree-expand
|
||||
@extend .fa
|
||||
@extend .fa-minus-square-o
|
||||
display: block
|
||||
font-size: .8em
|
||||
line-height: 1.6em
|
||||
line-height: 18px
|
||||
color: darken($menu-link-medium, 30%)
|
||||
|
||||
li.toctree-l1.current > a
|
||||
@@ -109,7 +109,7 @@ html
|
||||
display: block
|
||||
|
||||
%shrink_toctree_element
|
||||
font-size: .9em
|
||||
font-size: 0.9em
|
||||
|
||||
%toctree_link_color
|
||||
color: $menu-link-color
|
||||
@@ -130,12 +130,13 @@ html
|
||||
@extend %toctree_link_color
|
||||
&.current
|
||||
> a
|
||||
padding: $gutter / 4 $gutter * ($toc_level - 1 + .5)
|
||||
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 + .5)
|
||||
a:hover span.toctree-expand
|
||||
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}
|
||||
@@ -147,7 +148,7 @@ html
|
||||
background: darken($menu-vertical-background-color, 20%)
|
||||
li.toctree-l3 > a
|
||||
background: darken($menu-vertical-background-color, 20%)
|
||||
span.toctree-expand
|
||||
button.toctree-expand
|
||||
color: darken($menu-vertical-background-color, 35%)
|
||||
li.toctree-l3
|
||||
&.current
|
||||
@@ -155,7 +156,7 @@ html
|
||||
background: darken($menu-vertical-background-color, 25%)
|
||||
li.toctree-l4 > a
|
||||
background: darken($menu-vertical-background-color, 25%)
|
||||
span.toctree-expand
|
||||
button.toctree-expand
|
||||
color: darken($menu-vertical-background-color, 40%)
|
||||
|
||||
li.current ul
|
||||
@@ -169,7 +170,7 @@ html
|
||||
font-weight: normal
|
||||
a
|
||||
line-height: 18px
|
||||
padding: $gutter / 4 $gutter
|
||||
padding: ($gutter / 4) $gutter
|
||||
display: block
|
||||
position: relative
|
||||
font-size: 90%
|
||||
@@ -177,13 +178,13 @@ html
|
||||
&:hover
|
||||
background-color: lighten($menu-background-color, 10%)
|
||||
cursor: pointer
|
||||
span.toctree-expand
|
||||
button.toctree-expand
|
||||
color: $menu-link-light
|
||||
&:active
|
||||
background-color: $menu-logo-color
|
||||
cursor: pointer
|
||||
color: $menu-link-active
|
||||
span.toctree-expand
|
||||
button.toctree-expand
|
||||
color: $menu-link-active
|
||||
|
||||
.wy-side-nav-search
|
||||
@@ -202,7 +203,7 @@ html
|
||||
border-color: darken($link-color, 5%)
|
||||
img
|
||||
display: block
|
||||
margin: auto auto $gutter / 2 auto
|
||||
margin: auto auto ($gutter / 2) auto
|
||||
height: 45px
|
||||
width: 45px
|
||||
background-color: $menu-logo-color
|
||||
@@ -213,11 +214,12 @@ html
|
||||
font-size: 100%
|
||||
font-weight: bold
|
||||
display: inline-block
|
||||
padding: $base-line-height / 6 $base-line-height / 4
|
||||
padding: ($base-line-height / 6) ($base-line-height / 4)
|
||||
margin-bottom: $gutter / 2
|
||||
max-width: 100%
|
||||
+font-smooth
|
||||
&:hover
|
||||
background: rgba(255,255,255,.1)
|
||||
background: rgba(255, 255, 255, 0.1)
|
||||
img.logo
|
||||
display: block // display on its own line all the time
|
||||
margin: 0 auto
|
||||
@@ -225,15 +227,15 @@ html
|
||||
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
|
||||
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-top: -1 * $gutter / 4
|
||||
margin-bottom: $gutter / 2
|
||||
font-weight: normal
|
||||
color: rgba(255,255,255,.3)
|
||||
color: rgba(255, 255, 255, 0.3)
|
||||
|
||||
.wy-nav .wy-menu-vertical
|
||||
header
|
||||
@@ -245,7 +247,7 @@ html
|
||||
color: $white
|
||||
|
||||
[data-menu-wrap]
|
||||
+transition(all .2s ease-in)
|
||||
+transition(all 0.2s ease-in)
|
||||
position: absolute
|
||||
opacity: 1
|
||||
width: 100%
|
||||
@@ -296,12 +298,11 @@ html
|
||||
display: none
|
||||
background: $link-color
|
||||
color: $white
|
||||
padding: $gutter / 4 $gutter / 2
|
||||
padding: ($gutter / 4) ($gutter / 2)
|
||||
position: relative
|
||||
line-height: 50px
|
||||
text-align: center
|
||||
font-size: 100%
|
||||
+clearfix
|
||||
a
|
||||
color: $white
|
||||
font-weight: bold
|
||||
@@ -325,7 +326,7 @@ html
|
||||
min-height: 100%
|
||||
|
||||
.wy-nav-content
|
||||
padding: $gutter $gutter * 2
|
||||
padding: $gutter ($gutter * 2)
|
||||
height: 100%
|
||||
max-width: $nav-content-width
|
||||
margin: auto
|
||||
@@ -334,7 +335,7 @@ html
|
||||
position: fixed
|
||||
width: 100%
|
||||
height: 100%
|
||||
background: rgba(0,0,0,.2)
|
||||
background: rgba(0, 0, 0, 0.2)
|
||||
display: none
|
||||
z-index: $z-index-modal - 1
|
||||
&.on
|
||||
@@ -354,11 +355,9 @@ footer
|
||||
.rst-footer-buttons
|
||||
&:before, &:after
|
||||
width: 100%
|
||||
+clearfix
|
||||
|
||||
.rst-breadcrumbs-buttons
|
||||
margin-top: 12px
|
||||
+clearfix
|
||||
|
||||
#search-results
|
||||
.search li
|
||||
@@ -412,7 +411,7 @@ footer
|
||||
|
||||
@media screen and (min-width: $nav-media-query)
|
||||
.wy-nav-content-wrap
|
||||
background: rgba(0,0,0,.05)
|
||||
background: rgba(0, 0, 0, 0.05)
|
||||
.wy-nav-content
|
||||
margin: 0
|
||||
background: $section-background-color
|
||||
|
||||
+52
-33
@@ -56,7 +56,7 @@
|
||||
pre.literal-block
|
||||
white-space: pre
|
||||
margin: 0
|
||||
padding: $base-line-height / 2 $base-line-height / 2
|
||||
padding: ($base-line-height / 2) ($base-line-height / 2)
|
||||
font-family: $code-font-family
|
||||
display: block
|
||||
overflow: auto
|
||||
@@ -75,30 +75,38 @@
|
||||
.linenodiv pre
|
||||
border-right: solid 1px lighten($table-border-color, 2%)
|
||||
margin: 0
|
||||
padding: $base-line-height / 2 $base-line-height / 2
|
||||
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
|
||||
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
|
||||
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
|
||||
div.highlight .gp
|
||||
user-select: none
|
||||
pointer-events: none
|
||||
|
||||
// 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
|
||||
@@ -135,10 +143,10 @@
|
||||
@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,.1)
|
||||
border-color: rgba(0, 0, 0, 0.1)
|
||||
td, th
|
||||
background: transparent !important
|
||||
border-color: rgba(0,0,0,.1) !important
|
||||
border-color: rgba(0, 0, 0, 0.1) !important
|
||||
.section ul, .toctree-wrapper ul
|
||||
@extend .wy-plain-list-disc
|
||||
.section ol.loweralpha, .section ol.loweralpha > li
|
||||
@@ -200,14 +208,19 @@
|
||||
// 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.caption, table > caption, .code-block-caption
|
||||
.headerlink
|
||||
visibility: hidden
|
||||
opacity: 0
|
||||
font-size: 14px
|
||||
font-family: FontAwesome
|
||||
margin-left: 0.5em
|
||||
@extend .fa
|
||||
&:after
|
||||
content: "\f0c1"
|
||||
font-family: FontAwesome
|
||||
&:hover .headerlink:after
|
||||
visibility: visible
|
||||
&:focus
|
||||
opacity: 1
|
||||
&:hover .headerlink
|
||||
opacity: 1
|
||||
|
||||
// override the Wyrm accessibility anti-pattern of hiding button focus
|
||||
.btn:focus
|
||||
outline: 2px solid
|
||||
|
||||
table > caption .headerlink:after
|
||||
font-size: 12px
|
||||
@@ -234,14 +247,14 @@
|
||||
font-family: $custom-font-family
|
||||
font-weight: bold
|
||||
background: $table-border-color
|
||||
padding: $base-line-height / 4 $base-line-height / 2
|
||||
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
|
||||
box-shadow: 0 0 0 ($base-line-height / 12) $highlight-color
|
||||
display: inline
|
||||
font-weight: bold
|
||||
|
||||
@@ -289,14 +302,14 @@
|
||||
> dt, > dd
|
||||
margin-bottom: 0rem
|
||||
dl.footnote
|
||||
font-size: .9rem
|
||||
font-size: 0.9rem
|
||||
> dt
|
||||
margin: 0rem .5rem .5rem 0rem
|
||||
margin: 0rem 0.5rem 0.5rem 0rem
|
||||
line-height: 1.2rem
|
||||
word-break: break-all
|
||||
font-weight: normal
|
||||
> span.brackets
|
||||
margin-right: .5rem
|
||||
margin-right: 0.5rem
|
||||
&:before
|
||||
content: "["
|
||||
&:after
|
||||
@@ -304,13 +317,13 @@
|
||||
> span.fn-backref
|
||||
font-style: italic
|
||||
> dd
|
||||
margin: 0rem 0rem .5rem 0rem
|
||||
margin: 0rem 0rem 0.5rem 0rem
|
||||
line-height: 1.2rem
|
||||
p
|
||||
font-size: .9rem
|
||||
font-size: 0.9rem
|
||||
dl.option-list
|
||||
kbd
|
||||
font-size: .9rem
|
||||
font-size: 0.9rem
|
||||
// Both
|
||||
html.writer-html4 & table.docutils.citation, table.docutils.footnote,
|
||||
html.writer-html5 & dl.footnote
|
||||
@@ -340,7 +353,7 @@
|
||||
th > p, td > p
|
||||
line-height: 1rem
|
||||
margin-bottom: 0rem
|
||||
font-size: .9rem
|
||||
font-size: 0.9rem
|
||||
&:not(.field-list)
|
||||
@extend .wy-table-striped
|
||||
// Remove bottom margin for the last element (and it's last child)
|
||||
@@ -395,14 +408,14 @@
|
||||
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
|
||||
margin: 0 0 ($base-line-height / 2) $base-line-height
|
||||
line-height: $base-line-height
|
||||
html.writer-html4 & dl:not(.docutils),
|
||||
html.writer-html5 & dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)
|
||||
margin-bottom: $base-line-height
|
||||
> dt
|
||||
display: table
|
||||
margin: $base-line-height / 4 0
|
||||
margin: ($base-line-height / 4) 0
|
||||
font-size: 90%
|
||||
line-height: normal
|
||||
background: lighten($class-color, 50%)
|
||||
@@ -420,8 +433,8 @@
|
||||
dl:not(.field-list) > dt
|
||||
margin-bottom: $base-line-height / 4
|
||||
border: none
|
||||
border-left: solid 3px hsl(0,0%,80%)
|
||||
background: hsl(0,0%,94%)
|
||||
border-left: solid 3px hsl(0, 0%, 80%)
|
||||
background: hsl(0, 0%, 94%)
|
||||
color: $method-color
|
||||
.headerlink
|
||||
color: $headerlink-color
|
||||
@@ -447,6 +460,12 @@
|
||||
.property
|
||||
display: inline-block
|
||||
padding-right: 8px
|
||||
// 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
|
||||
@@ -481,8 +500,8 @@
|
||||
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
|
||||
padding: ($base-line-height / 10) ($base-line-height / 4)
|
||||
margin: auto ($base-line-height / 12)
|
||||
.versionmodified
|
||||
font-style: italic
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ $fa-font-path: "~font-awesome/fonts"
|
||||
$static-img: "../img/"
|
||||
|
||||
$nav-content-width: 800px
|
||||
$nav-media-query: (($nav-desktop-width) + ($nav-content-width))
|
||||
$nav-media-query: $nav-desktop-width + $nav-content-width
|
||||
|
||||
$mathjax-color: $text-color
|
||||
|
||||
|
||||
+33
-14
@@ -112,7 +112,8 @@ function ThemeNav () {
|
||||
// Add expand links to all parents of nested ul
|
||||
$('.wy-menu-vertical ul').not('.simple').siblings('a').each(function () {
|
||||
var link = $(this);
|
||||
expand = $('<span class="toctree-expand"></span>');
|
||||
expand =
|
||||
$('<button class="toctree-expand" title="Open/close menu"></button>');
|
||||
expand.on('click', function (ev) {
|
||||
self.toggleCurrent(link);
|
||||
ev.stopPropagation();
|
||||
@@ -144,15 +145,20 @@ function ThemeNav () {
|
||||
// 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');
|
||||
link.addClass('current');
|
||||
link.closest('li.toctree-l1').addClass('current');
|
||||
link.closest('li.toctree-l1').parent().addClass('current');
|
||||
link.closest('li.toctree-l1').addClass('current');
|
||||
link.closest('li.toctree-l2').addClass('current');
|
||||
link.closest('li.toctree-l3').addClass('current');
|
||||
link.closest('li.toctree-l4').addClass('current');
|
||||
link.closest('li.toctree-l5').addClass('current');
|
||||
$('.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();
|
||||
}
|
||||
}
|
||||
@@ -190,13 +196,26 @@ function ThemeNav () {
|
||||
|
||||
nav.toggleCurrent = function (elem) {
|
||||
var parent_li = elem.closest('li');
|
||||
parent_li.siblings('li.current').removeClass('current');
|
||||
parent_li.siblings().find('li.current').removeClass('current');
|
||||
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');
|
||||
parent_li.toggleClass('current');
|
||||
children
|
||||
.removeClass('current')
|
||||
.attr('aria-expanded','false');
|
||||
parent_li
|
||||
.toggleClass('current')
|
||||
.attr('aria-expanded', function(i, old) {
|
||||
return old == 'true' ? 'false' : 'true';
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+18
-30
@@ -3,7 +3,15 @@ import os
|
||||
import pytest
|
||||
import sphinx
|
||||
from sphinx import addnodes
|
||||
from sphinx.builders.html import SingleFileHTMLBuilder, DirectoryHTMLBuilder
|
||||
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
|
||||
|
||||
@@ -30,12 +38,9 @@ def test_basic():
|
||||
assert search in content
|
||||
elif isinstance(app.builder, SingleFileHTMLBuilder):
|
||||
search = (
|
||||
'<div class="local-toc"><ul>\n'
|
||||
'<ul>\n'
|
||||
'<li class="toctree-l1">'
|
||||
'<a class="reference internal" href="index.html#document-foo">foo</a>'
|
||||
'<ul>\n'
|
||||
'<li class="toctree-l2">'
|
||||
'<a class="reference internal" href="index.html#document-bar">bar</a>'
|
||||
'</li>\n'
|
||||
'</ul>'
|
||||
)
|
||||
@@ -63,31 +68,14 @@ def test_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()
|
||||
if sphinx.version_info < (1, 4):
|
||||
if isinstance(app.builder, SingleFileHTMLBuilder):
|
||||
assert '<div class="toctree-wrapper compound">\n</div>' in content
|
||||
assert '<div class="local-toc">' in content
|
||||
else:
|
||||
global_toc = (
|
||||
'<div class="toctree-wrapper compound">\n'
|
||||
'<ul class="simple">\n</ul>\n'
|
||||
'</div>'
|
||||
)
|
||||
local_toc = (
|
||||
'<div class="local-toc"><ul class="simple">'
|
||||
'</ul>\n</div>'
|
||||
)
|
||||
assert global_toc in content
|
||||
assert local_toc not in content
|
||||
else:
|
||||
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
|
||||
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():
|
||||
|
||||
@@ -33,6 +33,7 @@ def build(root, builder='html', **kwargs):
|
||||
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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[tox]
|
||||
envlist = py{27,36,37,38,39}-sphinx{16,17,18,20,21,22,23,24,30,31,32,33,34,latest}
|
||||
envlist = py{2,27,3,36,37,38,39}-sphinx{16,17,18,20,21,22,23,24,30,31,32,33,34,35,40,41,latest}{-html4,-html5,}{-qa,}
|
||||
|
||||
[testenv]
|
||||
setev =
|
||||
@@ -22,7 +22,11 @@ deps =
|
||||
sphinx32: Sphinx < 3.3
|
||||
sphinx33: Sphinx < 3.4
|
||||
sphinx34: Sphinx < 3.5
|
||||
sphinx35: Sphinx < 3.6
|
||||
sphinx40: Sphinx < 4.1
|
||||
sphinx41: Sphinx < 4.2
|
||||
sphinxlatest: Sphinx
|
||||
commands =
|
||||
pytest {posargs} tests/
|
||||
sphinx-build -b html -d {envtmpdir}/doctrees docs/ {envtmpdir}/html
|
||||
!html4: sphinx-build -b html -Dhtml4_writer=0 -d {envtmpdir}/doctrees docs/ {envtmpdir}/html
|
||||
html4: sphinx-build -b html -Dhtml4_writer=1 -d {envtmpdir}/doctrees docs/ {envtmpdir}/html
|
||||
Reference in new issue
Block a user