mirror of
https://github.com/readthedocs/sphinx_rtd_theme.git
synced 2026-10-15 19:02:01 -05:00
Compare commits
16
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1336682def | ||
|
|
7bce653452 | ||
|
|
b8f0b9c62e | ||
|
|
114fb85b44 | ||
|
|
68d4b8aac7 | ||
|
|
f8e71bf312 | ||
|
|
85f23c9edc | ||
|
|
b33d06444e | ||
|
|
ba1cbb1c07 | ||
|
|
b35637651b | ||
|
|
de76c03824 | ||
|
|
894aef556e | ||
|
|
4ad33d0197 | ||
|
|
e001cca56f | ||
|
|
8ba9c8ac0b | ||
|
|
331ba4e93c |
No files matched your search
@@ -1,3 +1,11 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: 'Bug, Needed: replication'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Problem
|
||||
|
||||
@@ -17,8 +17,6 @@ local/
|
||||
node_modules
|
||||
npm-debug.log
|
||||
pip-selfcheck.json
|
||||
sphinx_rtd_theme/static/fonts/Lato/
|
||||
sphinx_rtd_theme/static/fonts/RobotoSlab/
|
||||
.python-version
|
||||
.node-version
|
||||
sphinx_rtd_theme/static/js/html5shiv.min.js
|
||||
|
||||
+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
|
||||
Vendored
+13
-13
@@ -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,26 +8,26 @@ 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="fas fa-book"> Read the Docs</span>
|
||||
<span class="fa fa-book"> Read the Docs</span>
|
||||
v: latest
|
||||
<span class="fas fa-caret-down"></span>
|
||||
<span class="fa fa-caret-down"></span>
|
||||
</span>
|
||||
<div class="rst-other-versions">
|
||||
<dl>
|
||||
<dt>{{ _('Versions') }}</dt>
|
||||
{% if test_versions %}
|
||||
{% for version in test_versions %}
|
||||
{%- 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 %}
|
||||
+3
-15
@@ -4,21 +4,9 @@ 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
|
||||
|
||||
+41
-41
@@ -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,28 @@ Miscellaneous options
|
||||
|
||||
.. confval:: analytics_id
|
||||
|
||||
: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``).
|
||||
|
||||
:type: string
|
||||
|
||||
.. 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 +126,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 +191,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
|
||||
===================
|
||||
|
||||
|
||||
@@ -101,17 +101,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/
|
||||
+18
-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,11 @@ Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into you
|
||||
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
html_theme_path = ["_themes", ]
|
||||
|
||||
Compatibility
|
||||
=============
|
||||
|
||||
``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
+35
-10320
File diff suppressed because it is too large.
Load diff
+14
-3
@@ -7,21 +7,32 @@
|
||||
"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": {
|
||||
"@fortawesome/fontawesome-free": "^5.15.2",
|
||||
"bourbon": "~4.3",
|
||||
"bourbon-neat": "~1.9",
|
||||
"copy-webpack-plugin": "^5.1.1",
|
||||
"css-loader": "^3.1.0",
|
||||
"file-loader": "^3.0.1",
|
||||
"@fontsource/lato": "^4.2.2",
|
||||
"@fontsource/roboto-slab": "^4.2.2",
|
||||
"font-awesome": "^4.7.0",
|
||||
"html5shiv": "^3.7.3",
|
||||
"imports-loader": "^0.8.0",
|
||||
"jquery": "^3.4.1",
|
||||
"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",
|
||||
"roboto-fontface": "^0.10.0",
|
||||
"sass-loader": "^7.3.0",
|
||||
"style-loader": "^0.23.1",
|
||||
"webpack": "^4.30.0",
|
||||
|
||||
@@ -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):
|
||||
@@ -95,7 +97,7 @@ setup(
|
||||
cmdclass={
|
||||
'update_translations': UpdateTranslationsCommand,
|
||||
'transifex': TransifexCommand,
|
||||
'build_py': WebpackBuildCommand,
|
||||
'build_assets': WebpackBuildCommand,
|
||||
'watch': WebpackDevelopCommand,
|
||||
},
|
||||
zip_safe=False,
|
||||
@@ -115,7 +117,7 @@ setup(
|
||||
]
|
||||
},
|
||||
install_requires=[
|
||||
'sphinx'
|
||||
'sphinx>=1.6'
|
||||
],
|
||||
tests_require=[
|
||||
'pytest',
|
||||
@@ -137,12 +139,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',
|
||||
},
|
||||
)
|
||||
@@ -8,12 +8,7 @@ from os import path
|
||||
|
||||
from sphinx import version_info
|
||||
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'
|
||||
@@ -38,9 +33,16 @@ def config_initiated(app, config):
|
||||
|
||||
# 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__)))
|
||||
app.require_sphinx('1.6')
|
||||
if version_info <= (2, 0, 0):
|
||||
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")
|
||||
|
||||
# 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 version_info >= (1, 8, 0):
|
||||
# Add Sphinx message catalog for newer versions of Sphinx
|
||||
|
||||
@@ -1,84 +1,83 @@
|
||||
{# Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #}
|
||||
{#- Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #}
|
||||
|
||||
{% if page_source_suffix %}
|
||||
{% set suffix = page_source_suffix %}
|
||||
{% else %}
|
||||
{% set suffix = source_suffix %}
|
||||
{% endif %}
|
||||
{%- if page_source_suffix %}
|
||||
{%- set suffix = page_source_suffix %}
|
||||
{%- else %}
|
||||
{%- set suffix = source_suffix %}
|
||||
{%- endif %}
|
||||
|
||||
{% if meta is defined and meta is not none %}
|
||||
{% set check_meta = True %}
|
||||
{% else %}
|
||||
{% set check_meta = False %}
|
||||
{% endif %}
|
||||
{%- if meta is defined and meta is not none %}
|
||||
{%- set check_meta = True %}
|
||||
{%- else %}
|
||||
{%- set check_meta = False %}
|
||||
{%- endif %}
|
||||
|
||||
{% if check_meta and 'github_url' in meta %}
|
||||
{% set display_github = True %}
|
||||
{% endif %}
|
||||
{%- if check_meta and 'github_url' in meta %}
|
||||
{%- set display_github = True %}
|
||||
{%- endif %}
|
||||
|
||||
{% if check_meta and 'bitbucket_url' in meta %}
|
||||
{% set display_bitbucket = True %}
|
||||
{% endif %}
|
||||
{%- if check_meta and 'bitbucket_url' in meta %}
|
||||
{%- set display_bitbucket = True %}
|
||||
{%- endif %}
|
||||
|
||||
{% if check_meta and 'gitlab_url' in meta %}
|
||||
{% set display_gitlab = 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 %}
|
||||
<li><a href="{{ pathto(master_doc) }}" class="fas fa-home"></a> »</li>
|
||||
{% for doc in parents %}
|
||||
{%- block breadcrumbs %}
|
||||
<li><a href="{{ pathto(master_doc) }}" class="icon icon-home"></a> »</li>
|
||||
{%- 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="fas 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="fas fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{% endif %}
|
||||
{% elif display_bitbucket %}
|
||||
{% if check_meta and 'bitbucket_url' in meta %}
|
||||
<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 %}
|
||||
<!-- User defined Bitbucket URL -->
|
||||
<a href="{{ meta['bitbucket_url'] }}" class="fas 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="fas fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
||||
{% endif %}
|
||||
{% elif display_gitlab %}
|
||||
{% if check_meta and 'gitlab_url' in meta %}
|
||||
<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 %}
|
||||
<!-- User defined GitLab URL -->
|
||||
<a href="{{ meta['gitlab_url'] }}" class="fas 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="fas fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||
{% endif %}
|
||||
{% elif show_source and source_url_prefix %}
|
||||
<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 %}
|
||||
{%- 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 %}
|
||||
<a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fas fa-arrow-circle-left" aria-hidden="true"></span> {{ _('Previous') }}</a>
|
||||
{% endif %}
|
||||
{% if next %}
|
||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n">{{ _('Next') }} <span class="fas fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
{% endif %}
|
||||
{%- if prev %}
|
||||
<a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> {{ _('Previous') }}</a>
|
||||
{%- endif %}
|
||||
{%- if next %}
|
||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n">{{ _('Next') }} <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
{%- endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
<hr/>
|
||||
</div>
|
||||
@@ -2,10 +2,10 @@
|
||||
{%- if (theme_prev_next_buttons_location == 'bottom' or theme_prev_next_buttons_location == 'both') and (next or prev) %}
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="{{ _('Footer') }}">
|
||||
{%- if prev %}
|
||||
<a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p" rel="prev"><span class="fas fa-arrow-circle-left" aria-hidden="true"></span> {{ _('Previous') }}</a>
|
||||
<a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> {{ _('Previous') }}</a>
|
||||
{%- endif %}
|
||||
{%- if next %}
|
||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n" rel="next">{{ _('Next') }} <span class="fas fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n" rel="next">{{ _('Next') }} <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||
{%- endif %}
|
||||
</div>
|
||||
{%- endif %}
|
||||
@@ -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 %}
|
||||
|
||||
|
||||
@@ -7,61 +7,61 @@
|
||||
{%- 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' -%}
|
||||
|
||||
<!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 #}
|
||||
{#- CSS #}
|
||||
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
|
||||
{%- 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 %}
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
|
||||
{% 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" %}
|
||||
{%- 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>
|
||||
{%- for scriptfile in script_files %}
|
||||
{{ js_tag(scriptfile) }}
|
||||
{%- endfor %}
|
||||
{% else %}
|
||||
{%- else %}
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'{{ url_root }}',
|
||||
@@ -76,10 +76,10 @@
|
||||
{%- for scriptfile in script_files %}
|
||||
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
<script type="text/javascript" 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,110 +113,101 @@
|
||||
|
||||
<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 %}
|
||||
<a href="{{ pathto(master_doc) }}" class="fas fa-home"> {{ project }}
|
||||
{% endif %}
|
||||
{%- else %}
|
||||
<a href="{{ pathto(master_doc) }}" class="icon icon-home"> {{ project }}
|
||||
{%- 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
|
||||
#}
|
||||
<img src="{{ pathto('_static/' + logo, 1) }}" 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 #}
|
||||
{#- MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
|
||||
<nav class="wy-nav-top" aria-label="{{ _('Top') }}">
|
||||
{% block mobile_nav %}
|
||||
<i data-toggle="wy-nav-top" class="fas fa-bars"></i>
|
||||
{%- 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">
|
||||
jQuery(function () {
|
||||
@@ -224,9 +215,9 @@
|
||||
});
|
||||
</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>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -235,14 +226,14 @@
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{ theme_analytics_id }}', 'auto');
|
||||
{% if theme_analytics_anonymize_ip|tobool %}
|
||||
{%- if theme_analytics_anonymize_ip|tobool %}
|
||||
ga('set', 'anonymizeIp', true);
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
{%- block footer %} {% endblock %}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.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{content:"\f02d"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-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{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{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{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: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}}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large.
Load diff
|
Before Width: | Height: | Size: 896 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large.
Load diff
|
After Width: | Height: | Size: 434 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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,.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}/*!
|
||||
* Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/.fa,.fab,.fad,.fal,.far,.fas,.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{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.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.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.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}.fa-spin{animation:fa-spin 2s linear infinite}.fa-pulse{animation:fa-spin 1s steps(8) infinite}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:befoLine truncated
|
||||
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}/*!
|
||||
* 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
|
||||
@@ -2,9 +2,9 @@
|
||||
{# Add rst-badge after rst-versions for small badge style. #}
|
||||
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="{{ _('Versions') }}">
|
||||
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||
<span class="fas fa-book"> Read the Docs</span>
|
||||
<span class="fa fa-book"> Read the Docs</span>
|
||||
v: {{ current_version }}
|
||||
<span class="fas fa-caret-down"></span>
|
||||
<span class="fa fa-caret-down"></span>
|
||||
</span>
|
||||
<div class="rst-other-versions">
|
||||
<dl>
|
||||
|
||||
@@ -21,10 +21,12 @@
|
||||
cursor: pointer
|
||||
color: $green
|
||||
+clearfix
|
||||
.fas
|
||||
.fa
|
||||
color: $section-background-color
|
||||
.fa-book
|
||||
float: left
|
||||
.icon-book
|
||||
float: left
|
||||
&.rst-out-of-date
|
||||
background-color: $red
|
||||
color: $white
|
||||
@@ -64,6 +66,9 @@
|
||||
border: none
|
||||
max-width: $nav-desktop-width
|
||||
max-height: 90%
|
||||
.icon-book
|
||||
float: none
|
||||
line-height: 30px
|
||||
.fa-book
|
||||
float: none
|
||||
line-height: 30px
|
||||
@@ -71,6 +76,8 @@
|
||||
text-align: right
|
||||
.fa-book
|
||||
float: left
|
||||
.icon-book
|
||||
float: left
|
||||
> .rst-current-version
|
||||
width: auto
|
||||
height: 30px
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
// Slimmer version of FA for use on the badge_only.sass file.
|
||||
|
||||
+font-face(FontAwesome, '#{$fa-font-path}/fa-solid-900')
|
||||
+font-face(FontAwesome, '#{$fa-font-path}/fontawesome-webfont')
|
||||
|
||||
.fas
|
||||
font-family: FontAwesome
|
||||
|
||||
.fas:before
|
||||
.fa:before
|
||||
display: inline-block
|
||||
font-family: FontAwesome
|
||||
font-style: normal
|
||||
@@ -14,13 +11,13 @@
|
||||
text-decoration: inherit
|
||||
+font-smooth
|
||||
|
||||
a .fas
|
||||
a .fa
|
||||
display: inline-block
|
||||
text-decoration: inherit
|
||||
|
||||
|
||||
li
|
||||
.fas
|
||||
.fa
|
||||
display: inline-block
|
||||
.fa-large:before,
|
||||
.fa-large:before
|
||||
@@ -32,7 +29,7 @@ ul.fas
|
||||
margin-left: 2em
|
||||
text-indent: -0.8em
|
||||
li
|
||||
.fas
|
||||
.fa
|
||||
width: .8em
|
||||
.fa-large:before,
|
||||
.fa-large:before
|
||||
@@ -43,14 +40,29 @@ ul.fas
|
||||
.fa-book:before
|
||||
content: "\f02d"
|
||||
|
||||
.icon-book:before
|
||||
content: "\f02d"
|
||||
|
||||
.fa-caret-down:before
|
||||
content: "\f0d7"
|
||||
|
||||
.icon-caret-down:before
|
||||
content: "\f0d7"
|
||||
|
||||
.fa-caret-up:before
|
||||
content: "\f0d8"
|
||||
|
||||
.icon-caret-up:before
|
||||
content: "\f0d8"
|
||||
|
||||
.fa-caret-left:before
|
||||
content: "\f0d9"
|
||||
|
||||
.icon-caret-left:before
|
||||
content: "\f0d9"
|
||||
|
||||
.fa-caret-right:before
|
||||
content: "\f0da"
|
||||
|
||||
.icon-caret-right:before
|
||||
content: "\f0da"
|
||||
@@ -0,0 +1,24 @@
|
||||
.icon
|
||||
@extend .fa
|
||||
.icon-home
|
||||
@extend .fa-home
|
||||
.icon-search
|
||||
@extend .fa-search
|
||||
.icon-book
|
||||
@extend .fa-book
|
||||
.icon-caret-down
|
||||
@extend .fa-caret-down
|
||||
.icon-github
|
||||
@extend .fa-github
|
||||
.icon-bitbucket
|
||||
@extend .fa-bitbucket
|
||||
.icon-gitlab
|
||||
@extend .fa-gitlab
|
||||
.icon-fire
|
||||
@extend .fa-fire
|
||||
.icon-circle-arrow-right
|
||||
@extend .fa-arrow-circle-right
|
||||
.icon-circle-arrow-left
|
||||
@extend .fa-arrow-circle-left
|
||||
.icon-link
|
||||
@extend .fa-link
|
||||
@@ -1,38 +1,31 @@
|
||||
$lato-font-path: "~lato-font/fonts";
|
||||
$roboto-font-path: "~roboto-fontface/fonts/roboto-slab";
|
||||
|
||||
// $font-full-path: '#{$roboto-font-path}/roboto-slab/Roboto-Slab';
|
||||
|
||||
+font-face(FontAwesome, '#{$fa-font-path}/fa-solid-900')
|
||||
|
||||
.fas
|
||||
font-family: FontAwesome
|
||||
$lato-font-path: "~@fontsource/lato/files"
|
||||
$roboto-font-path: "~@fontsource/roboto-slab/files"
|
||||
|
||||
@font-face
|
||||
font-family: 'Lato'
|
||||
src: url('#{$lato-font-path}/lato-normal/lato-normal.woff2') format('woff2'), url('#{$lato-font-path}/lato-normal/lato-normal.woff') format('woff')
|
||||
src: url('#{$lato-font-path}/lato-all-400-normal.woff') format('woff')
|
||||
font-weight: 400
|
||||
font-style: normal
|
||||
font-display: $font-display
|
||||
|
||||
@font-face
|
||||
font-family: 'Lato'
|
||||
src: url('#{$lato-font-path}/lato-bold/lato-bold.woff2') format('woff2'), url('#{$lato-font-path}/lato-bold/lato-bold.woff') format('woff')
|
||||
src: url('#{$lato-font-path}/lato-all-700-normal.woff') format('woff')
|
||||
font-weight: 700
|
||||
font-style: normal
|
||||
font-display: $font-display
|
||||
|
||||
@font-face
|
||||
font-family: 'Lato'
|
||||
src: url('#{$lato-font-path}/lato-bold-italic/lato-bold-italic.woff2') format('woff2'), url('#{$lato-font-path}/lato-bold-italic/lato-bold-italic.woff') format('woff')
|
||||
font-weight: 700
|
||||
src: url('#{$lato-font-path}/lato-all-400-italic.woff') format('woff')
|
||||
font-weight: 400
|
||||
font-style: italic
|
||||
font-display: $font-display
|
||||
|
||||
@font-face
|
||||
font-family: 'Lato'
|
||||
src: url('#{$lato-font-path}/lato-normal-italic/lato-normal-italic.woff2') format('woff2'), url('#{$lato-font-path}/lato-normal-italic/lato-normal-italic.woff') format('woff')
|
||||
font-weight: 400
|
||||
src: url('#{$lato-font-path}/lato-all-700-italic.woff') format('woff')
|
||||
font-weight: 700
|
||||
font-style: italic
|
||||
font-display: $font-display
|
||||
|
||||
@@ -40,12 +33,12 @@ $roboto-font-path: "~roboto-fontface/fonts/roboto-slab";
|
||||
font-family: 'Roboto Slab'
|
||||
font-style: normal
|
||||
font-weight: 400
|
||||
src: url('#{$roboto-font-path}/Roboto-Slab-Regular.woff2') format('woff2'), url('#{$roboto-font-path}/Roboto-Slab-Regular.woff') format('woff')
|
||||
src: url('#{$roboto-font-path}/roboto-slab-all-400-normal.woff') format('woff')
|
||||
font-display: $font-display
|
||||
|
||||
@font-face
|
||||
font-family: 'Roboto Slab'
|
||||
font-style: normal
|
||||
font-weight: 700
|
||||
src: url('#{$roboto-font-path}/Roboto-Slab-Bold.woff2') format('woff2'), url('#{$roboto-font-path}/Roboto-Slab-Bold.woff') format('woff')
|
||||
src: url('#{$roboto-font-path}/roboto-slab-all-700-normal.woff') format('woff')
|
||||
font-display: $font-display
|
||||
@@ -68,10 +68,9 @@ html
|
||||
display: block
|
||||
float: left
|
||||
margin-left: -1.2em
|
||||
@extend .fas
|
||||
@extend .fa-plus-square
|
||||
font-size: .8em
|
||||
line-height: 1.6em
|
||||
@extend .fa
|
||||
@extend .fa-plus-square-o
|
||||
line-height: 18px
|
||||
color: darken($menu-link-medium, 20%)
|
||||
|
||||
// On state for the first level
|
||||
@@ -89,11 +88,10 @@ html
|
||||
span.toctree-expand
|
||||
color: $menu-link-medium
|
||||
span.toctree-expand
|
||||
@extend .fas
|
||||
@extend .fa-minus-square
|
||||
@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
|
||||
@@ -135,6 +133,7 @@ html
|
||||
li.toctree-l#{$toc_level + 1} > a
|
||||
@extend %display_current_toctree_element
|
||||
padding: $gutter / 4 $gutter * ($toc_level + .5)
|
||||
padding-right: $gutter
|
||||
a:hover span.toctree-expand
|
||||
@extend %toctree_hover_link_color
|
||||
@if $toc_level > 2 and $toc_level < 5
|
||||
@@ -226,7 +225,7 @@ html
|
||||
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
|
||||
&.fas
|
||||
&.icon
|
||||
img.logo
|
||||
margin-top: 0.85em // space it away from the title text
|
||||
> div.version
|
||||
|
||||
@@ -94,9 +94,9 @@
|
||||
font-family: $code-font-family
|
||||
font-size: 12px
|
||||
line-height: 1.4
|
||||
|
||||
|
||||
// Do not allow selection of code block prompts
|
||||
div.highlight .gp
|
||||
div.highlight .gp
|
||||
user-select: none
|
||||
pointer-events: none
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
margin-bottom: 0
|
||||
.admonition-title
|
||||
@extend .wy-alert-title
|
||||
@extend .fas
|
||||
@extend .fa
|
||||
@extend .fa-exclamation-circle
|
||||
&:before
|
||||
margin-right: 4px
|
||||
@@ -202,7 +202,7 @@
|
||||
.headerlink
|
||||
visibility: hidden
|
||||
font-size: 14px
|
||||
@extend .fas
|
||||
@extend .fa
|
||||
&:after
|
||||
content: "\f0c1"
|
||||
font-family: FontAwesome
|
||||
@@ -471,7 +471,7 @@
|
||||
white-space: inherit
|
||||
span:first-child
|
||||
-webkit-font-smoothing: subpixel-antialiased
|
||||
@extend .fas
|
||||
@extend .fa
|
||||
@extend .fa-download
|
||||
&:before
|
||||
margin-right: 4px
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// that are set in wyrm_core/wy_variables.sass. You'll find wyrm in bower_components if you're looking
|
||||
// for a reference.
|
||||
|
||||
$fa-font-path: "~@fortawesome/fontawesome-free/webfonts"
|
||||
$fa-font-path: "~font-awesome/fonts"
|
||||
$static-img: "../img/"
|
||||
|
||||
$nav-content-width: 800px
|
||||
|
||||
+2
-1
@@ -28,7 +28,7 @@
|
||||
@import wyrm_core/mixin
|
||||
|
||||
// Font Awesome with wyrm extras
|
||||
@import ~@fortawesome/fontawesome-free/scss/fontawesome.scss
|
||||
@import ~font-awesome/scss/font-awesome
|
||||
@import wyrm_core/font_icon_defaults
|
||||
|
||||
// Wyrm core styles used in this theme
|
||||
@@ -46,4 +46,5 @@
|
||||
@import theme_badge
|
||||
@import theme_rst
|
||||
@import theme_mathjax
|
||||
@import theme_font_awesome_compatibility
|
||||
@import theme_font_local
|
||||
+3
-6
@@ -146,13 +146,10 @@ function ThemeNav () {
|
||||
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');
|
||||
for (let i = 1; i <= 10; i++) {
|
||||
link.closest('li.toctree-l' + i).addClass('current');
|
||||
}
|
||||
link[0].scrollIntoView();
|
||||
}
|
||||
}
|
||||
|
||||
+9
-29
@@ -30,12 +30,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 +60,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():
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ module.exports = {
|
||||
includePaths: [
|
||||
"node_modules/bourbon/app/assets/stylesheets",
|
||||
"node_modules/bourbon-neat/app/assets/stylesheets",
|
||||
"node_modules/@fortawesome/fontawesome-free/scss",
|
||||
"node_modules/font-awesome/scss",
|
||||
"node_modules/wyrm/sass"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user