Compare commits

..
Author SHA1 Message Date
Ana Costa e344c58490 Added translations to aria labels 2021-08-04 10:58:17 +01:00
Ana CostaandAnthony 7dc4522faa Update sphinx_rtd_theme/layout.html
Co-authored-by: Anthony <aj@ohess.org>
2021-08-04 10:45:55 +01:00
Ana Costa 16f6569dd9 Adds aria-label to the hamburger btn too 2021-08-03 17:50:56 +01:00
Ana Costa 268a89347e Fix build 2021-08-03 17:43:41 +01:00
Ana Costa 282d970dc0 Adds aria-label and extra btn padding 2021-08-03 17:41:21 +01:00
Ana Costa 6296159a29 Add compiled css files 2021-08-03 15:15:22 +01:00
Ana Costa 56fe08513e Mobile Menu - Added close btn & made 100% width 2021-08-03 15:13:27 +01:00
Anthony 8a02619428 Merge pull request #1178 from readthedocs/agj/docs-testing
Add docs on QA testing theme changes
2021-08-02 19:31:52 -06:00
Anthony 8448bd238e Merge branch 'master' into agj/docs-testing 2021-08-02 19:19:46 -06:00
Anthony Johnson f5b02911ae Update docs to note 1.6 as lowest version 2021-08-02 18:01:55 -07:00
Simon HausmannandAaron Carlisle 3532ffc89b Fix support for logos as urls (#1171)
* Fix support for logos as urls

Sphinx since 4.0 appears to support html_logo to also contain urls.  As
a consequence, the other themes in sphinx appear to be just using the
new logo_url variable, and in this theme that fixes support for it, too.

* Add backwards compatibility and add favicon_url

Co-authored-by: Aaron Carlisle <carlisle.b3d@gmail.com>
2021-07-19 20:16:54 -04:00
Anthony Johnson 02d8fe0764 Add docs on qa testing theme changes 2021-07-19 17:57:57 -06:00
Anthony Johnson 9061c1e6de Expand tox config
* Adds support for explicit tox environments for html4/5
* Adds utility factors for py2/3, for easy access to the system python3
  binary
* Adds a noop -qa postfix factor to make it easy to compare against
  master or a tag
2021-07-19 17:57:54 -06:00
Anthony 380647d159 Merge pull request #1123 from readthedocs/Blendify/sphinx4
Add compatibility for sphinx4
2021-07-19 17:56:43 -06:00
Anthony Johnson 0207996411 Fix automerge fuck up 2021-07-19 17:45:33 -06:00
Anthony Johnson 09e2a0dc2c Merge branch 'master' into Blendify/sphinx4 2021-07-19 17:41:21 -06:00
Anthony 6417defbeb Merge pull request #1175 from readthedocs/agj/add-build-test
Add a CI test for unbuilt assets
2021-07-19 14:15:39 -06:00
Anthony Johnson 51d41e6289 Add git status path 2021-07-19 13:40:17 -06:00
Anthony Johnson c0c52f41ea Update built assets 2021-07-17 10:42:30 -06:00
Anthony Johnson 92aa3989a9 Make schema correct 2021-07-17 10:33:03 -06:00
Anthony Johnson 21b5ed45d4 Try job dependency 2021-07-17 10:30:06 -06:00
Anthony Johnson bd6a34135f Fix typo in config 2021-07-17 10:22:51 -06:00
Aaron Carlisle 047169a972 Restore highlighted code lines span full width 2021-07-17 11:26:51 -04:00
Aaron Carlisle 8d93cdea10 Italize keywords 2021-07-17 11:13:35 -04:00
Anthony Johnson e9fda1a5c1 How does sh work? 2021-07-15 12:32:23 -06:00
Anthony Johnson 1b38126245 Drop orb, fork code to apply more descriptive error 2021-07-15 12:27:47 -06:00
Aaron Carlisle 0073409aaa Merge branch 'master' into agj/add-build-test 2021-07-15 08:49:08 -04:00
Anthony Johnson e6bd3f0fc5 Don't use extension to add sphinx_version_info tuple to build context 2021-07-14 19:39:16 -06:00
Anthony Johnson ee32a53ae2 Add a CI test for unbuilt assets
Many of our PRs have out of date assets, making it hard to test the
latest changes. This will at least throw an error on the PR when build
assets aren't updated.
2021-07-14 18:24:14 -06:00
Anthony Johnson c1aa1b2c6b Rebuild assets 2021-07-14 18:23:36 -06:00
Anthony Johnson b85d3616dd Add a CI test for unbuilt assets
Many of our PRs have out of date assets, making it hard to test the
latest changes. This will at least throw an error on the PR when build
assets aren't updated.
2021-07-14 17:38:48 -06:00
Aaron Carlisle 796e78bdf7 Make font usage conistent with sphinx<4.0
This fixes the different spacing issues that were noted.
2021-07-14 16:48:17 -04:00
Anthony Johnson 6597b25257 Fix styles on code block line numbers on Sphinx 4+ 2021-07-14 00:18:33 -06:00
Anthony Johnson 6f9501293b Fix tests, missing theme extension 2021-07-13 22:45:43 -06:00
Aaron Carlisle 037890d1d1 Merge branch 'Blendify/sphinx4' of github.com:readthedocs/sphinx_rtd_theme into Blendify/sphinx4 2021-07-13 21:04:18 -04:00
Aaron Carlisle da20decbbb Compare sphinx version using a tuple 2021-07-13 21:04:16 -04:00
Aaron Carlisle d93528ef3e Tests: Add missing sphinx version 2021-07-13 19:47:25 -04:00
Aaron Carlisle e1716574e9 Merge branch 'master' into Blendify/sphinx4 2021-07-13 19:44:47 -04:00
Aaron Carlisle 2ab605a455 Tests: Fix deprecation warning with new sphinx versions (#1105)
* Tests: Fix deprecation warning with new sphinx versions

These builders where split in sphinx and the old import path will be removed in the upcoming Sphinx 4 release.

This patch requires sphinx 2 so this will be committed into the v2 release.

* Fix imports

* Use try/except for backwards compatibility
2021-07-13 05:16:47 -04:00
Aaron Carlisle 0ef60e7841 Tests: run against sphinx 4.1 2021-07-12 20:49:30 -04:00
Aaron Carlisle 15d91096b1 Fix api docs css for sphinx4 2021-07-12 20:27:15 -04:00
Aaron Carlisle 1f45c113b6 Fix user-select line numbers class name 2021-07-12 18:57:53 -04:00
Aaron Carlisle b47f8b343b Merge branch 'master' into Blendify/sphinx4 2021-07-12 18:36:08 -04:00
Aaron CarlisleandAnthony e94984caec Make sphinx version comparison constistent
Co-authored-by: Anthony <aj@ohess.org>
2021-07-12 18:36:03 -04:00
Juan Luis Cano Rodríguez bc6e9f0766 Merge pull request #1093 from readthedocs/Blendify/python-compat
Add python version requirements to setup.py
2021-06-23 07:32:21 +02:00
Aaron Carlisle 09e9e1004c Merge branch 'master' into Blendify/sphinx4 2021-06-22 18:50:15 -04:00
Aaron Carlisle b2323ce07f Merge branch 'master' into Blendify/python-compat 2021-06-22 18:47:00 -04:00
Joe Nelson 71d6d182cf Maintain aria-expanded along with .current in menu (#1151)
Use jquery setter chaining for speed
2021-06-22 17:46:45 -04:00
ThomasTNOandAaron Carlisle ef9a0584ef Added support for gtag (#1129)
* Added support for gtag

* Fix missing curly braces

* Simplify gtag script import

* Fix tag

* Add gtag to docs

Co-authored-by: Aaron Carlisle <carlisle.b3d@gmail.com>
2021-06-18 13:59:46 -04:00
Joe NelsonandAaron Carlisle a2997e8888 Allow keyboard to toggle menu expansion (#1167)
Co-authored-by: Aaron Carlisle <carlisle.b3d@gmail.com>
2021-06-18 10:16:05 -04:00
Joe Nelson da86e4dc62 Allow keyboard to activate permalink (#1162)
* Allow keyboard to activate permalink

* Change permalink icon with Blendify's suggestion

* Set permalink icon properly across Sphinx versions

* Match prior style better
2021-06-18 09:57:56 -04:00
Benjamin Balder BachandAaron Carlisle 05807985d6 Simplify example but add clarity. (#1144)
Some people might add the example code to the top of the file, in which case `alabaster` will overwrite later. Also, localization is important but not so important for people using this for the first time. My concern is that many people end up with Alabaster on RTD deployments after Sphinx 4 made it the default.

Co-authored-by: Aaron Carlisle <carlisle.b3d@gmail.com>
2021-06-10 17:26:13 -04:00
Aaron Carlisle bd9010f14d Update layout.html 2021-06-09 20:26:36 -04:00
Joe Nelson 392daf5047 Show keyboard focus on buttons (#1161) 2021-06-09 20:22:07 -04:00
Anders Kaseorg 671703c3fb Remove discouraged type="text/javascript" from scripts (#1140)
type="text/javascript" is unnecessary and even discouraged by the
specification: “Authors should omit the type attribute instead of
redundantly setting it.”

https://html.spec.whatwg.org/multipage/scripting.html#attr-script-type

It causes the validator to raise warnings, too.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2021-04-30 21:50:03 -04:00
Erik Moqvist 2026bb61dd Make mobile top navigation bar have the same background color as the side navigation header. (#1132) 2021-04-18 18:08:16 -04:00
Aaron Carlisle b73b67eb33 Revert "Test with official beta"
This reverts commit db302055b9.
2021-04-12 19:34:18 -04:00
Aaron Carlisle db302055b9 Test with official beta 2021-04-12 19:09:41 -04:00
Aaron Carlisle 836467e4b9 Add compatibility for sphinx4
Sphinx 4.x moves javascript and css declarations to `script_files` and `css_files`. This patch fixes duplicatd link and script tags when using sphinx4

Sphinx 4.x changes the default setting of html_codeblock_linenos_style to 'inline' and deprecates `html_codeblock_linenos_style`. The css for `.hll` to make the hightling span the full line cause the line number and code to be split on seperate lines. I could not get the highlight to span the full line so it was removed completely. I also made line numbers not selectible by the user.

This changes also adds the needed changes to the tox testing enviorment alhough, sphinx4 is not officially released to pypi yet. You will need to test these changes locally using: `pip install git+https://github.com/sphinx-doc/sphinx@master`
2021-04-10 16:50:34 -04:00
Aaron Carlisle 3db4e2fbfe Cleanup: Sass formatting (#1119)
* Cleanup: Sass formatting

This patch addresses some sass formatting to make the code easier to read:

- Use leading zeros on decimals less than 1
- Use parentheses around math for css propeties with multiply arguments
- Spaces after commas in arguments

In the future it would be nice to automatically format this with a tool like style lint.

* Revert Extra Tabbing

* Add back missing line

* Add whitespace back

* Fix whitespace 2
2021-04-08 23:31:36 -04:00
Aaron Carlisle 2f12da38c6 Add Missing version bumps for 0.5.2 (#1120)
Found while looking into #1117
2021-04-08 20:40:33 -04:00
Aaron Carlisle 60a094bb13 Merge branch 'master' into Blendify/python-compat 2021-04-08 17:19:58 -04:00
Santos Gallegos 9df65f15c5 Fix backport of requirements (#1118)
This was fixed before releasing 0.5.2,
but looks like the change was lost after merging it to master.
2021-04-06 18:06:31 -05:00
Eric HolscherandAaron Carlisle ca2719b32f Merge Release 0.5.2 Changelog into master (#1114)
* Setup: Require docutils<0.17'

Docutils 0.17 changes some rendering of properties, until support is added we should probably pin to use an older version.

I may not be a bad idea to keep a pinned version in the theme to prevent this issue in the future.

* Release 0.5.2

Include a changelog and bump versions

* Fix changelog

Co-authored-by: Aaron Carlisle <carlisle.b3d@gmail.com>
2021-04-05 13:14:49 -04:00
Aaron Carlisle aa28eecc3a Docs: Fix intersphinx_mapping (#1110)
Sphinx documentation has moved from https://www.sphinx-doc.org/en/stable/ to https://www.sphinx-doc.org/en/master/

Fixes the command line message:
```
intersphinx inventory has moved: https://www.sphinx-doc.org/en/stable/objects.inv -> https://www.sphinx-doc.org/en/master/objects.inv
```
2021-04-02 12:21:54 -04:00
Aaron Carlisle bba36677de Merge branch 'master' into Blendify/python-compat 2021-03-31 22:09:45 -04:00
Aaron Carlisle c984d08dae Cleanup: Use page_source_suffix (#1104)
Use `page_source_suffix` instead of checking `source_suffix`

Since we now require sphinx 1.6 we can cleanup this old workaround for old sphinx versions.
2021-03-30 12:42:04 -04:00
Aaron Carlisle fe934ec0d4 Merge branch 'master' into Blendify/python-compat 2021-03-29 22:08:21 -04:00
Aaron Carlisle 7417ff92bd Update Changelog for v1.0 (#1103)
This includes all major affecting changes that have already been committed to master since the last release.
2021-03-29 19:08:22 -04:00
Aaron Carlisle 65723affd8 Merge branch 'master' into Blendify/python-compat 2021-03-29 17:15:34 -04:00
Aaron CarlisleandSantos Gallegos 3693d4c325 Add deprecation warning for dropping Sphinx 2 and Python 2 support (#1099)
* Add deprecation warning for dropping Sphinx 2 and Python 2 support

Fixes #1092

* Cleanup version imports

* Update __init__.py

* Update sphinx_rtd_theme/__init__.py

Co-authored-by: Santos Gallegos <santos_g@outlook.com>

Co-authored-by: Santos Gallegos <santos_g@outlook.com>
2021-03-29 15:57:14 -04:00
Aaron Carlisle 6f684828ed npm: Update dependencies (simple) (#1096)
This simply runs `npm update` so there are no breaking changes.
2021-03-22 13:26:56 -04:00
Aaron Carlisle 4d196ce134 Add python version requirements to setup.py
This is need in the future so we can gracefully remove python 2.7 support.
See #1075.
2021-03-17 18:29:02 -04:00
35 changed files with 3126 additions and 2086 deletions

No files matched your search

+37 -6
View File
@@ -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
+1
View File
@@ -1,6 +1,7 @@
include *.txt
include babel.cfg
include LICENSE
include bin/preinstall.js
recursive-include sphinx_rtd_theme *.conf
recursive-include sphinx_rtd_theme *.css
recursive-include sphinx_rtd_theme *.eot
+4 -10
View File
@@ -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
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env node
const package = require('../package.json');
// Sorry everyone, this is the closest we can get to commenting on package.json
// dependencies :(
if (package.devDependencies['bourbon-neat'] !== '~1.9') {
// Wyrm is not compatible with Neat 2.0+, and Neat 1.9 at least pins a
// node-sass version that doesn't require Python 2. The changes to Wyrm to
// support Neat 2.0+ are all fairly minor changes, but it deeply affects the
// grid system and might be more of a liability than an old release of Neat.
// See: https://github.com/readthedocs/sphinx_rtd_theme/pull/771
console.error(
'bourbon-neat 1.9 is required, Wyrm is not compatible with Neat 2.0+.'
);
console.error(
'The expected selector for the bourbon-neat dependency in package.json is "~1.9".'
);
process.exit(1);
}
+44
View File
@@ -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
======
+5 -3
View File
@@ -10,12 +10,14 @@ 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'
@@ -41,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'
+5 -3
View File
@@ -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,
@@ -96,11 +96,13 @@ Miscellaneous options
.. confval:: analytics_id
If specified, Google Analytics' javascript is included in your pages.
Set the value to the ID provided to you by google (like ``UA-XXXXXXX``).
If specified, Google Analytics' `gtag.js`_ is included in your pages.
Set the value to the ID provided to you by google (like ``UA-XXXXXXX`` or ``G-XXXXXXXXXX``).
:type: string
.. _gtag.js: https://developers.google.com/gtagjs
.. confval:: analytics_anonymize_ip
Anonymize visitor IP addresses in Google Analytics.
+84
View File
@@ -59,8 +59,92 @@ can be used to test built assets:
.. _Webpack: https://webpack.js.org/
.. _node-sass: https://github.com/sass/node-sass
.. _SASS: http://www.sass-lang.com
.. _Wyrm: http://www.github.com/snide/wyrm/
.. _Sphinx: http://www.sphinx-doc.org/en/stable/
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
============
+8
View File
@@ -49,6 +49,14 @@ Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into you
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,
+2248 -1577
View File
File diff suppressed because it is too large. Load diff
+16 -13
View File
@@ -1,10 +1,11 @@
{
"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"
"build": "webpack --config webpack.prod.js",
"preinstall": "bin/preinstall.js"
},
"repository": {
"type": "git",
@@ -18,26 +19,28 @@
"homepage": "https://github.com/readthedocs/sphinx_rtd_theme",
"dependencies": {},
"devDependencies": {
"bootstrap": "^4.6.0",
"copy-webpack-plugin": "^5.1.1",
"css-loader": "^3.1.0",
"bourbon": "~4.3",
"bourbon-neat": "~1.9",
"copy-webpack-plugin": "^5.1.2",
"css-loader": "^3.6.0",
"file-loader": "^3.0.1",
"font-awesome": "^4.7.0",
"html5shiv": "^3.7.3",
"imports-loader": "^0.8.0",
"jquery": "^3.4.1",
"jquery": "^3.6.0",
"lato-font": "^3.0.0",
"mini-css-extract-plugin": "^0.6.0",
"optimize-css-assets-webpack-plugin": "^5.0.3",
"popper.js": "^1.16.1",
"node-sass": "^4.13.1",
"optimize-css-assets-webpack-plugin": "^5.0.4",
"roboto-fontface": "^0.10.0",
"sass": "^1.32.8",
"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 -1
View File
@@ -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+))?
+5 -3
View File
@@ -87,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',
@@ -106,7 +106,7 @@ setup(
'theme.conf',
'*.html',
'static/css/*.css',
'static/css/fonts/*.*'
'static/css/fonts/*.*',
'static/js/*.js',
]},
include_package_data=True,
@@ -116,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>=1.6'
'sphinx>=1.6',
'docutils<0.17', # https://github.com/sphinx-doc/sphinx/issues/9001
],
tests_require=[
'pytest',
+14 -5
View File
@@ -5,13 +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 _
from sphinx.util.logging import getLogger
__version__ = '0.5.1'
__version__ = '0.5.2'
__version_full__ = __version__
logger = getLogger(__name__)
@@ -30,11 +31,13 @@ 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 python_version[0] < 3:
logger.warning("Python 2 is deprecated with sphinx_rtd_theme, update to Python 3")
app.require_sphinx('1.6')
if version_info <= (2, 0, 0):
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:
@@ -44,11 +47,17 @@ def setup(app):
# 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):
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}
+14 -23
View File
@@ -1,11 +1,3 @@
{#- 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 meta is defined and meta is not none %}
{%- set check_meta = True %}
{%- else %}
@@ -27,56 +19,55 @@
{%- set display_vcs_links = display_vcs_links if display_vcs_links is defined else True %}
<div role="navigation" aria-label="{{ _('Breadcrumbs') }}">
<ol class="breadcrumb">
<ul class="wy-breadcrumbs">
{%- block breadcrumbs %}
<li class="breadcrumb-item"><a href="{{ pathto(master_doc) }}" class="icon icon-home"></a></li>
{%- for doc in parents %}
<li class="breadcrumb-item"><a href="{{ doc.link|e }}">{{ doc.title }}</a></li>
{%- endfor %}
<li class="breadcrumb-item active">{{ title }}</li>
<li><a href="{{ pathto(master_doc) }}" class="icon icon-home"></a> &raquo;</li>
{%- for doc in parents %}
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> &raquo;</li>
{%- endfor %}
<li>{{ title }}</li>
{%- endblock %}
{%- block breadcrumbs_aside %}
<li class="breadcrumb-aside">
<li class="wy-breadcrumbs-aside">
{%- if hasdoc(pagename) and display_vcs_links %}
{%- if display_github %}
{%- if check_meta and 'github_url' in meta %}
<!-- User defined GitHub URL -->
<a href="{{ meta['github_url'] }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
{%- else %}
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
<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>
<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>
<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 }}{{ suffix }}">{{ _('View page source') }}</a>
<a href="{{ source_url_prefix }}{{ pagename }}{{ page_source_suffix }}">{{ _('View page source') }}</a>
{%- elif show_source and has_source and sourcename %}
<a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a>
{%- endif %}
{%- endif %}
</li>
{%- endblock %}
</ol>
</ul>
{%- 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-light float-left" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fa 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"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> {{ _('Previous') }}</a>
{%- endif %}
{%- if next %}
<a href="{{ next.link|e }}" class="btn btn-light float-right" title="{{ next.title|striptags|e }}" accesskey="n">{{ _('Next') }} <span class="fa 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">{{ _('Next') }} <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
{%- endif %}
</div>
{%- endif %}
+2 -2
View File
@@ -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-light float-left" title="{{ prev.title|striptags|e }}" accesskey="p" rel="prev"><span class="fa 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-light float-right" title="{{ next.title|striptags|e }}" accesskey="n" rel="next">{{ _('Next') }} <span class="fa 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 %}
+89 -67
View File
@@ -6,10 +6,15 @@
{%- else %}
{%- set titlesuffix = "" %}
{%- endif %}
{%- set lang_attr = 'en' if language == None else (language | replace('_', '-')) -%}
{%- set lang_attr = 'en' if language == None else (language | replace('_', '-')) %}
{%- set sphinx_writer = 'writer-html5' if html5_doctype else 'writer-html4' -%}
{# Build sphinx_version_info tuple from sphinx_version string in pure Jinja #}
{%- set (_ver_major, _ver_minor, _ver_bugfix) = sphinx_version.split('.') | map('int') -%}
{%- set sphinx_version_info = (_ver_major, _ver_minor, _ver_bugfix) -%}
<!DOCTYPE html>
<html lang="{{ lang_attr }}" >
<html class="{{ sphinx_writer }}" lang="{{ lang_attr }}" >
<head>
<meta charset="utf-8" />
{{- metatags }}
@@ -19,8 +24,10 @@
{%- 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" />
{%- 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 %} />
@@ -35,7 +42,11 @@
{#- FAVICON #}
{%- if favicon %}
{%- if sphinx_version_info < (4, 0) -%}
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
{%- else %}
<link rel="shortcut icon" href="{{ favicon_url }}"/>
{%- endif %}
{%- endif -%}
{#- CANONICAL URL (deprecated) #}
@@ -50,15 +61,20 @@
{#- 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">
<script>
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'{{ url_root }}',
VERSION:'{{ release|e }}',
@@ -70,10 +86,10 @@
};
</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>
<script src="{{ pathto('_static/js/theme.js', 1) }}"></script>
{#- OPENSEARCH #}
{%- if use_opensearch %}
@@ -107,31 +123,34 @@
{%- block extrahead %} {% endblock %}
</head>
<body>
<body class="wy-body-for-nav">
{%- block extrabody %} {% endblock %}
<div class="d-flex" id="wrapper">
<!-- Sidebar -->
<div class="sidebar-right" id="sidebar-wrapper">
<div class="sidebar-scroll">
<div class="sidebar-heading">
<div class="wy-grid-for-nav">
{#- SIDE NAV, TOGGLES ON MOBILE #}
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" {% if theme_style_nav_header_background %} style="background: {{theme_style_nav_header_background}}" {% endif %}>
{%- block sidebartitle %}
{%- if logo and theme_logo_only %}
<a href="{{ pathto(master_doc) }}">
{%- 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 sphinx_version_info < (4, 0) -%}
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="{{ _('Logo') }}"/>
{%- else %}
<img src="{{ logo_url }}" class="logo" alt="{{ _('Logo') }}"/>
{%- endif %}
{%- endif %}
</a>
{%- if theme_display_version %}
{%- set nav_version = version %}
{%- if READTHEDOCS and current_version %}
@@ -143,14 +162,20 @@
</div>
{%- endif %}
{%- endif %}
{%- include "searchbox.html" %}
{%- endblock %}
</div>
{%- block navigation %}
<div class="sidebar-navigation" data-spy="affix" role="navigation" aria-label="{{ _('Main') }}">
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="{{ _('Main') }}">
{#- MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
<div class="wy-close-top">
<i aria-label="{{ _('Close side navigation') }}" data-toggle="wy-nav-top" class="fa fa-close"></i>
</div>
{%- block menu %}
{%- set toctree = toctree(maxdepth=theme_navigation_depth|int,
collapse=theme_collapse_navigation|tobool,
@@ -163,51 +188,50 @@
<div class="local-toc">{{ toc }}</div>
{%- endif %}
{%- endblock %}
</div>
{%- endblock %}
</div>
{%- endblock %}
</div>
</div>
<!-- /#sidebar-wrapper -->
</nav>
<!-- Page Content -->
<div class="page-content-wrapper">
<nav class="wy-nav-top navbar navbar-expand-lg navbar-light bg-light border-bottom" aria-label="{{ _('Top') }}">
<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') }}" {% 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>
<i aria-label="{{ _('Open side navigation') }}" data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="{{ pathto(master_doc) }}">{{ project }}</a>
{%- endblock %}
</nav>
<div class="container-fluid">
{%- block content %}
{%- if theme_style_external_links|tobool %}
<div class="rst-content style-external-links">
{%- else %}
<div class="rst-content">
{%- endif %}
{% include "breadcrumbs.html" %}
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
{%- block document %}
<div itemprop="articleBody">
{% block body %}{% endblock %}
</div>
{%- if self.comments()|trim %}
<div class="articleComments">
{%- block comments %}{% endblock %}
</div>
{%- endif%}
</div>
{%- endblock %}
{%- include "footer.html" %}
<div class="wy-nav-content">
{%- block content %}
{%- if theme_style_external_links|tobool %}
<div class="rst-content style-external-links">
{%- else %}
<div class="rst-content">
{%- endif %}
{% include "breadcrumbs.html" %}
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
{%- block document %}
<div itemprop="articleBody">
{% block body %}{% endblock %}
</div>
{%- endblock %}
{%- if self.comments()|trim %}
<div class="articleComments">
{%- block comments %}{% endblock %}
</div>
{%- endif%}
</div>
{%- endblock %}
{% include "footer.html" %}
</div>
{%- endblock %}
</div>
</div>
<!-- /#page-content-wrapper -->
</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' }});
});
@@ -217,17 +241,15 @@
{%- 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 %}
+4 -4
View File
@@ -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 %}
+3 -3
View File
@@ -1,7 +1,7 @@
{%- if 'singlehtml' not in builder %}
<div class="form-outline" role="search">
<form id="rtd-search-form" action="{{ pathto('search') }}" method="get">
<input type="search" name="q" class="form-control" placeholder="{{ _('Search docs') }}" />
<div role="search">
<form id="rtd-search-form" class="wy-form" action="{{ pathto('search') }}" method="get">
<input type="text" name="q" placeholder="{{ _('Search docs') }}" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
+1 -1
View File
@@ -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: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:100%;display:none}.rst-versions.shift{display:block}}
+2 -2
View File
@@ -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
View File
@@ -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
+12 -12
View File
@@ -4,23 +4,23 @@
left: 0
width: $nav-desktop-width
color: $section-background-color
background: darken($nav-background-color, 8%)
font-family: $font-family-base
z-index: $zindex-popover
background: darken($menu-background-color, 8%)
font-family: $base-font-family
z-index: $z-index-tray
a
color: $link_color
text-decoration: none
.rst-badge-small
display: none
.rst-current-version
padding: $line-height-base / 2
background-color: darken($nav-background-color, 5%)
padding: $base-line-height / 2
background-color: darken($menu-background-color, 5%)
display: block
text-align: right
font-size: 90%
cursor: pointer
color: $green
@include clearfix
+clearfix
.fa
color: $section-background-color
.fa-book
@@ -41,7 +41,7 @@
display: block
.rst-other-versions
font-size: 90%
padding: $line-height-base / 2
padding: $base-line-height / 2
color: $text-medium
display: none
hr
@@ -50,13 +50,13 @@
border: 0
margin: 20px 0
padding: 0
border-top: solid 1px lighten($nav-background-color, 5%)
border-top: solid 1px lighten($menu-background-color, 5%)
dd
display: inline-block
margin: 0
a
display: inline-block
padding: $line-height-base / 4
padding: $base-line-height / 4
color: $section-background-color
&.rst-badge
width: auto
@@ -82,13 +82,13 @@
width: auto
height: 30px
line-height: 30px
padding: 0 $line-height-base / 4
padding: 0 $base-line-height / 4
display: block
text-align: center
@media (max-width: $nav-media-query)
+media($tablet)
.rst-versions
width: 85%
width: 100%
display: none
&.shift
display: block
+4 -1
View File
@@ -1,5 +1,7 @@
// Slimmer version of FA for use on the badge_only.sass file.
+font-face(FontAwesome, '#{$fa-font-path}/fontawesome-webfont')
.fa:before
display: inline-block
font-family: FontAwesome
@@ -7,6 +9,7 @@
font-weight: normal
line-height: 1
text-decoration: inherit
+font-smooth
a .fa
display: inline-block
@@ -27,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
+28 -8
View File
@@ -1,14 +1,34 @@
.breadcrumb
padding-left: 0px
background-color: inherit
.wy-breadcrumbs
+clearfix
.breadcrumb-aside
margin-left: auto
.wy-breadcrumbs li
display: inline-block
&.wy-breadcrumbs-aside
float: right
a
display: inline-block
padding: 5px
&:first-child
padding-left: 0
code
padding: 5px
border: none
background: none
&.literal
color: $text-color
.wy-breadcrumbs-extra
margin-bottom: 0
color: $text-light
font-size: 80%
display: inline-block
@include media-breakpoint-down(sm)
.breadcrumb li.breadcrumb-aside
+media($mobile)
.wy-breadcrumbs-extra
display: none
.wy-breadcrumbs li.wy-breadcrumbs-aside
display: none
@media print
.breadcrumb li.breadcrumb-aside
.wy-breadcrumbs li.wy-breadcrumbs-aside
display: none
+148 -107
View File
@@ -1,41 +1,41 @@
// Set uniform (but not relative) base font size
body
font-family: $font-family-base
font-size: $font-size-base
html
font-size: $base-font-size
h1, h2, h3, h4, h5, h6
font-family: $font-family-headings
font-weight: 700
margin-bottom: $line-height-base
h1
font-size: 175%
h2
font-size: 150%
h3
font-size: 125%
h4
font-size: 115%
h5
font-size: 110%
h6
font-size: 100%
ol, ul
padding-left: 0px
.sidebar-navigation
width: $nav-desktop-width
.wy-affix
position: fixed
top: $gutter
.wy-menu
a:hover
text-decoration: none
.wy-menu-horiz
+clearfix
ul, li
display: inline-block
li:hover
background: rgba(255, 255, 255, 0.1)
li
&.divide-left
border-left: solid 1px hsl(0, 0%, 25%)
&.divide-right
border-right: solid 1px hsl(0, 0%, 25%)
a
height: $base-font-size * 2
display: inline-block
line-height: $base-font-size * 2
padding: 0 $base-font-size
.wy-menu-vertical
width: $nav-desktop-width
header, p.caption
color: $nav-caption
height: $font-size-base * 2
line-height: $font-size-base * 2
height: $base-font-size * 2
line-height: $base-font-size * 2
padding: 0 $gutter
margin: $line-height-base / 2 0 0 0
margin: ($base-line-height / 2) 0 0 0
display: block
font-weight: bold
text-transform: uppercase
@@ -50,13 +50,13 @@ ol, ul
&.divide-bottom
border-bottom: solid 1px hsl(0, 0%, 25%)
&.current
background: darken($nav-menu-background-color, 10%)
background: darken($menu-vertical-background-color, 10%)
a
color: $menu-link-medium
border-right: solid 1px darken($nav-menu-background-color, 20%)
padding: $gutter / 4 $gutter * 1.5
border-right: solid 1px darken($menu-vertical-background-color, 20%)
padding: ($gutter / 4) ($gutter * 1.5)
&:hover
background: darken($nav-menu-background-color, 15%)
background: darken($menu-vertical-background-color, 15%)
code
border: none
background: inherit
@@ -64,7 +64,7 @@ ol, ul
padding-left: 0
padding-right: 0
// Expand links
span.toctree-expand
button.toctree-expand
display: block
float: left
margin-left: -1.2em
@@ -72,21 +72,25 @@ ol, ul
@extend .fa-plus-square-o
line-height: 18px
color: darken($menu-link-medium, 20%)
border: none
background: none
padding: 0
// On state for the first level
li.on a, li.current > a
color: $menu-link-color
padding: $gutter / 4 $gutter
padding: ($gutter / 4) $gutter
font-weight: bold
position: relative
background: $nav-menu-background-color
background: $menu-vertical-background-color
border: none
padding-left: $gutter -4px
+font-smooth
&:hover
background: $nav-menu-background-color
span.toctree-expand
background: $menu-vertical-background-color
button.toctree-expand
color: $menu-link-medium
span.toctree-expand
button.toctree-expand
@extend .fa
@extend .fa-minus-square-o
display: block
@@ -94,8 +98,8 @@ ol, ul
color: darken($menu-link-medium, 30%)
li.toctree-l1.current > a
border-bottom: solid 1px darken($nav-menu-background-color, 20%)
border-top: solid 1px darken($nav-menu-background-color, 20%)
border-bottom: solid 1px darken($menu-vertical-background-color, 20%)
border-top: solid 1px darken($menu-vertical-background-color, 20%)
// This is the on state for pages beyond second level
@@ -106,7 +110,7 @@ ol, ul
display: block
%shrink_toctree_element
font-size: .9em
font-size: 0.9em
%toctree_link_color
color: $menu-link-color
@@ -127,13 +131,13 @@ ol, ul
@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)
padding: ($gutter / 4) ($gutter * ($toc_level + 0.5))
padding-right: $gutter
a:hover span.toctree-expand
a:hover button.toctree-expand
@extend %toctree_hover_link_color
@if $toc_level > 2 and $toc_level < 5
li.toctree-l#{$toc_level}
@@ -142,19 +146,19 @@ ol, ul
li.toctree-l2
&.current
> a
background: darken($nav-menu-background-color, 20%)
background: darken($menu-vertical-background-color, 20%)
li.toctree-l3 > a
background: darken($nav-menu-background-color, 20%)
span.toctree-expand
color: darken($nav-menu-background-color, 35%)
background: darken($menu-vertical-background-color, 20%)
button.toctree-expand
color: darken($menu-vertical-background-color, 35%)
li.toctree-l3
&.current
> a
background: darken($nav-menu-background-color, 25%)
background: darken($menu-vertical-background-color, 25%)
li.toctree-l4 > a
background: darken($nav-menu-background-color, 25%)
span.toctree-expand
color: darken($nav-menu-background-color, 40%)
background: darken($menu-vertical-background-color, 25%)
button.toctree-expand
color: darken($menu-vertical-background-color, 40%)
li.current ul
display: block
@@ -167,29 +171,29 @@ ol, ul
font-weight: normal
a
line-height: 18px
padding: $gutter / 4 $gutter
padding: ($gutter / 4) $gutter
display: block
position: relative
font-size: 90%
color: $menu-link-light
&:hover
background-color: lighten($nav-background-color, 10%)
background-color: lighten($menu-background-color, 10%)
cursor: pointer
span.toctree-expand
button.toctree-expand
color: $menu-link-light
&:active
background-color: $nav-search-background-color
background-color: $menu-logo-color
cursor: pointer
color: $menu-link-active
span.toctree-expand
button.toctree-expand
color: $menu-link-active
.sidebar-heading
.wy-side-nav-search
display: block
width: $nav-desktop-width
padding: $gutter / 2
margin-bottom: $gutter / 2
z-index: $zindex-fixed
z-index: $z-index-popover
background-color: $nav-search-background-color
text-align: center
color: $nav-search-color
@@ -200,21 +204,22 @@ ol, ul
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: $nav-search-background-color
background-color: $menu-logo-color
padding: 5px
border-radius: 100%
> a
> a, .wy-dropdown > a
color: $nav-search-color
font-size: 100%
font-weight: bold
display: inline-block
padding: $line-height-base / 6 $line-height-base / 4
padding: ($base-line-height / 6) ($base-line-height / 4)
margin-bottom: $gutter / 2
+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
@@ -222,18 +227,27 @@ ol, ul
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
color: $link-color
a
color: $text-light
&:hover
background-color: $link-color
color: $white
[data-menu-wrap]
+transition(all .2s ease-in)
+transition(all 0.2s ease-in)
position: absolute
opacity: 1
width: 100%
@@ -251,10 +265,15 @@ ol, ul
left: auto
opacity: 0
.d-flex
.wy-body-for-nav
background: $section-background-color
.sidebar-right
.wy-grid-for-nav
position: absolute
width: 100%
height: 100%
.wy-nav-side
position: fixed
top: 0
bottom: 0
@@ -264,11 +283,11 @@ ol, ul
overflow-x: hidden
overflow-y: hidden
min-height: 100%
color: $menu-medium
background: $nav-background-color
z-index: $zindex-fixed
z-index: $z-index-popover
.sidebar-scroll
padding-bottom: $gutter / 2
.wy-side-scroll
width: $nav-desktop-width + 20px
position: relative
overflow-x: hidden
@@ -279,20 +298,21 @@ ol, ul
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%
@include clearfix
+clearfix
a
color: $white
font-weight: bold
+font-smooth
img
margin-right: $line-height-base / 2
margin-right: $base-line-height / 2
height: 45px
width: 45px
background-color: $nav-search-background-color
background-color: $menu-logo-color
padding: 5px
border-radius: 100%
i
@@ -301,79 +321,100 @@ ol, ul
cursor: pointer
padding-top: inherit
.page-content-wrapper
.wy-close-top
display: none
margin: (-($gutter / 2)) 0 (-($base-line-height / 2))
text-align: right
i
font-size: 25px
line-height: 1
padding: $gutter / 2 20px 4px 8px
cursor: pointer
&:hover
color: #fff
.wy-nav-content-wrap
margin-left: $nav-desktop-width
background: $content-background-color
background: $section-background-color
min-height: 100%
.container-fluid
padding: $gutter $gutter * 2
.wy-nav-content
padding: $gutter ($gutter * 2)
height: 100%
max-width: $nav-content-width
margin: auto
.wy-body-mask
position: fixed
width: 100%
height: 100%
background: rgba(0, 0, 0, 0.2)
display: none
z-index: $z-index-modal - 1
&.on
display: block
footer
color: $footer-color
p
margin-bottom: $line-height-base / 2
margin-bottom: $base-line-height / 2
span.commit code
padding: 0px
font-family: $font-family-code
font-family: $code-font-family
font-size: 1em
background: none
border: none
color: $footer-color
.rst-footer-buttons
@include clearfix
&:before, &:after
width: 100%
+clearfix
.rst-breadcrumbs-buttons
@include clearfix
margin-top: 12px
+clearfix
#search-results
.search li
margin-bottom: $line-height-base
margin-bottom: $base-line-height
border-bottom: solid 1px $table_border_color
padding-bottom: $line-height-base
padding-bottom: $base-line-height
.search li:first-child
border-top: solid 1px $table_border_color
padding-top: $line-height-base
padding-top: $base-line-height
.search li a
font-size: 120%
margin-bottom: $line-height-base / 2
margin-bottom: $base-line-height / 2
display: inline-block
.context
color: $text-medium
font-size: 90%
.genindextable li > ul
margin-left: $line-height-base
margin-left: $base-line-height
@media (max-width: $nav-media-query)
.d-flex
+media($tablet)
.wy-body-for-nav
background: $section-background-color
.wy-nav-top
.wy-nav-top, .wy-close-top
display: block
.sidebar-right
.wy-nav-side
@if $nav-desktop-position == left
left: -$nav-desktop-width
@else
right: -$nav-desktop-width
&.shift
width: 85%
width: 100%
left: 0
.sidebar-scroll
.wy-side-scroll
width: auto
.sidebar-heading
.wy-side-nav-search
width: auto
.sidebar-navigation
.wy-menu.wy-menu-vertical
width: auto
.page-content-wrapper
.wy-nav-content-wrap
margin-left: 0
.container-fluid
.wy-nav-content
padding: $gutter
&.shift
position: fixed
@@ -384,14 +425,14 @@ footer
overflow: hidden
@media screen and (min-width: $nav-media-query)
.page-content-wrapper
background: rgba(0,0,0,.05)
.container-fluid
.wy-nav-content-wrap
background: rgba(0, 0, 0, 0.05)
.wy-nav-content
margin: 0
background: $content-background-color
background: $section-background-color
@media print
.rst-versions, footer, .sidebar-right
.rst-versions, footer, .wy-nav-side
display: none
.page-content-wrapper
.wy-nav-content-wrap
margin-left: 0
+186 -165
View File
@@ -7,8 +7,9 @@
// * That said, know that I'm very unlikely to accept PRs from wyrm just to change style here.
// 2. I plan to remove the !importants in here. Part of it is due to lazyness, part to sphinx's fondness for nesting.
// 3. Try to use variables from wyrm_core/wy_variables.sass. Notable are...
// * $line-height-base // All margins, padding and line-height should use this in .25 increments.
// * $base-line-height // All margins, padding and line-height should use this in .25 increments.
// * $text-color, $text-light, $text-dark...etc
// * $base-font-family, $custom-font-family, $code-font-family
// 4. If you have changes for mobile/tablet, put them at the bottom of the sass file.
// --------------------------------------------------------------------------------------------------------------------
@@ -19,7 +20,7 @@
height: auto
div.figure
margin-bottom: $line-height-base
margin-bottom: $base-line-height
p.caption
font-style: italic
p:last-child.caption
@@ -30,7 +31,7 @@
// Usually it's a good idea to give images some space.
.section > img, .section > a > img
margin-bottom: $line-height-base
margin-bottom: $base-line-height
// normalize browser styling
abbr[title]
@@ -48,24 +49,22 @@
// For the most part, its safe to assume that sphinx wants you to use a blockquote as an indent. It gets
// used in many different ways, so don't assume you can apply some fancy style, just leave it be.
blockquote
@extend .blockquote
margin-left: $line-height-base
line-height: $line-height-base
margin-bottom: $line-height-base
font-size: $font-size-base
margin-left: $base-line-height
line-height: $base-line-height
margin-bottom: $base-line-height
pre.literal-block
white-space: pre
margin: 0
padding: $line-height-base / 2 $line-height-base / 2
font-family: $font-family-code
padding: ($base-line-height / 2) ($base-line-height / 2)
font-family: $code-font-family
display: block
overflow: auto
pre.literal-block, div[class^='highlight']
border: 1px solid $gray-300
border: 1px solid $table-border-color
overflow-x: auto
// 1px hack otherwise border won't show. lame
margin: 1px 0 $line-height-base 0
margin: 1px 0 $base-line-height 0
div[class^='highlight']
padding: 0px
border: none
@@ -74,35 +73,40 @@
div[class^='highlight'] td.code
width: 100%
.linenodiv pre
border-right: solid 1px $gray-300
border-right: solid 1px lighten($table-border-color, 2%)
margin: 0
padding: $line-height-base / 2 $line-height-base / 2
font-family: $font-family-code
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: $line-height-base / 2 $line-height-base / 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 * $line-height-base / 2
padding: 0 $line-height-base / 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: $font-family-code
font-family: $code-font-family
font-size: 12px
line-height: 1.4
.literal-block-wrapper
padding: 0px
// 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
@@ -117,81 +121,54 @@
// These are the various note pullouts that sphinx applies
.note, .attention, .caution, .danger, .error, .hint, .important, .tip, .warning, .seealso, .admonition-todo, .admonition
@extend .alert
color: $text-color
@extend .wy-alert
// These block elements are unsuitable for having floating objects next
// to them
clear: both
.last, > *:last-child
margin-bottom: 0
.admonition-title
// @extend .alert-heading
@extend .wy-alert-title
@extend .fa
@extend .fa-exclamation-circle
&:before
margin-right: 4px
.note, .seealso
@extend .alert-info
@extend .wy-alert.wy-alert-info
.hint, .tip, .important
@extend .alert-success
@extend .wy-alert.wy-alert-success
.error, .danger
@extend .alert-danger
@extend .wy-alert.wy-alert-danger
.warning, .caution, .attention, .admonition-todo
@extend .alert-warning
@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
list-style: disc
line-height: $line-height-base
margin-bottom: $line-height-base
li
list-style: disc
margin-left: $line-height-base
p:last-child
margin-bottom: 0
ul
margin-bottom: 0
li
list-style: circle
li
list-style: square
ol li
list-style: decimal
@extend .wy-plain-list-disc
.section ol.loweralpha, .section ol.loweralpha > li
list-style: lower-alpha
.section ol.upperalpha, .section ol.upperalpha > li
list-style: upper-alpha
.section ol, ol.arabic
list-style: decimal
line-height: $line-height-base
margin-bottom: $line-height-base
li
list-style: decimal
margin-left: $line-height-base
p:last-child
margin-bottom: 0
ul
margin-bottom: 0
li
list-style: disc
@extend .wy-plain-list-decimal
// Complex bullet lists, they have more item margins than simple lists
.section ol li, .section ul li
> *
margin-top: $line-height-base / 2
margin-bottom: $line-height-base / 2
margin-top: $base-line-height / 2
margin-bottom: $base-line-height / 2
&:first-child
margin-top: 0rem
> p
&, &:last-child
margin-bottom: $line-height-base / 2
margin-bottom: $base-line-height / 2
&:only-child, &:only-child:last-child
margin-bottom: 0rem
> ul, > ol
margin-bottom: $line-height-base / 2
margin-bottom: $base-line-height / 2
// Simple lists, no item margins
.section ol.simple li, .section ul.simple li
> *
@@ -202,26 +179,24 @@
margin-bottom: 0rem
.line-block
margin-left: 0px
margin-bottom: $line-height-base
line-height: $line-height-base
margin-bottom: $base-line-height
line-height: $base-line-height
.line-block .line-block
margin-left: $line-height-base
margin-left: $base-line-height
margin-bottom: 0px
// Generics handling of headings and toc stuff.
.topic-title
font-weight: bold
margin-bottom: $line-height-base / 2
margin-bottom: $base-line-height / 2
.toc-backref
color: $text-color
&:hover
text-decoration-line: none
.align-right
float: right
margin: 0px 0px $line-height-base $line-height-base
margin: 0px 0px $base-line-height $base-line-height
.align-left
float: left
margin: 0px $line-height-base $line-height-base 0px
margin: 0px $base-line-height $base-line-height 0px
.align-center
margin: auto
// Do not override display:table for tables
@@ -233,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
@@ -248,10 +228,33 @@
.centered
text-align: center
// Sidebar content. You'll see at the bottom of this file I change it in mobile.
.sidebar
float: right
width: 40%
display: block
margin: 0 0 $base-line-height $base-line-height
padding: $base-line-height
background: $sidebar-background-color
border: solid 1px $sidebar-border-color
// Sidebar content is usually less relevant, so adjust the margins and sizes.
p, ul, dl
font-size: 90%
.last, > *:last-child
margin-bottom: 0
.sidebar-title
display: block
font-family: $custom-font-family
font-weight: bold
background: $table-border-color
padding: ($base-line-height / 4) ($base-line-height / 2)
margin: -$base-line-height
margin-bottom: $base-line-height
font-size: 100%
// Sphinx can highlight searched text with ?highlighted=searchterm
.highlighted
background: $highlight-color
box-shadow: 0 0 0 $line-height-base / 12 $highlight-color
box-shadow: 0 0 0 ($base-line-height / 12) $highlight-color
display: inline
font-weight: bold
@@ -267,81 +270,98 @@
.hlist
width: 100%
// Formate citation and footnotes as a table.
// We will use the fairly well supported css `grid` attribute
dl dt span.classifier
&:before
content: " : "
dl.footnote,
dl.field-list
display: grid
grid-template-columns: max-content auto
> dt
padding-left: 1rem
&:after
content: ":"
> dt, > dd
margin-bottom: 0rem
dl.footnote
font-size: .9rem
> dt
margin: 0rem .5rem .5rem 0rem
line-height: 1.2rem
word-break: break-all
font-weight: normal
> span.brackets
margin-right: .5rem
&:before
content: "["
// The html4 writer outputs the citation and footnotes as a table, and the
// html5 writer outputs these as a definition list. We will use the fairly
// well supported css `grid` attribute to make these back into a table
// HTML4 writer
html.writer-html4 &
table.docutils.citation, table.docutils.footnote
background: none
border: none
td, tr
border: none
background-color: transparent !important
white-space: normal
td.label
padding-left: 0
padding-right: 0
vertical-align: top
// HTML5 writer
html.writer-html5 &
dl dt span.classifier
&:before
content: " : "
dl.footnote,
dl.field-list
display: grid
grid-template-columns: max-content auto
> dt
padding-left: 1rem
&:after
content: "]"
> span.fn-backref
font-style: italic
> dd
margin: 0rem 0rem .5rem 0rem
line-height: 1.2rem
p
font-size: .9rem
dl.option-list
kbd
font-size: .9rem
table.docutils.footnote, dl.footnote
content: ":"
> dt, > dd
margin-bottom: 0rem
dl.footnote
font-size: 0.9rem
> dt
margin: 0rem 0.5rem 0.5rem 0rem
line-height: 1.2rem
word-break: break-all
font-weight: normal
> span.brackets
margin-right: 0.5rem
&:before
content: "["
&:after
content: "]"
> span.fn-backref
font-style: italic
> dd
margin: 0rem 0rem 0.5rem 0rem
line-height: 1.2rem
p
font-size: 0.9rem
dl.option-list
kbd
font-size: 0.9rem
// Both
html.writer-html4 & table.docutils.citation, table.docutils.footnote,
html.writer-html5 & dl.footnote
color: $text-medium
code
color: $gray-500
color: $gray
// Remove the large vertical space between citations and footnotes
.table-responsive.citation, .table-responsive.footnote
.wy-table-responsive.citation, .wy-table-responsive.footnote
margin-bottom: 0
// Re-add vertical space to element directly following citation and footnotes,
// if the following element is of a different type
.table-responsive.citation + :not(.citation),
.table-responsive.footnote + :not(.footnote)
margin-top: $line-height-base
.wy-table-responsive.citation + :not(.citation),
.wy-table-responsive.footnote + :not(.footnote)
margin-top: $base-line-height
// Re-add vertical space after citation and footnotes if it is the last child of a parent
.table-responsive.citation:last-child, .table-responsivefootnote:last-child
margin-bottom: $line-height-base
.wy-table-responsive.citation:last-child, .wy-table-responsive.footnote:last-child
margin-bottom: $base-line-height
table.docutils
@extend .table
@extend .table-bordered
@extend .wy-table
@extend .wy-table-bordered-all
th
border-color: $gray-300
border-color: $table-border-color
html.writer-html5 &
border: 1px solid $gray-300
border: 1px solid $table-border-color
html.writer-html5 &
th > p, td > p
line-height: 1rem
margin-bottom: 0rem
font-size: .9rem
font-size: 0.9rem
&:not(.field-list)
@extend .table-striped
@extend .wy-table-striped
// Remove bottom margin for the last element (and it's last child)
td .last, td .last > *:last-child
margin-bottom: 0
// This table is what gets spit out for auto-generated API stuff. I style it smaller bits of padding.
table.field-list
@extend .table
@extend .wy-table
border: none
td
border: none
@@ -361,66 +381,64 @@
tt, code
@extend code
color: $black
font-family: $font-family-code
font-family: $code-font-family
padding: 2px 5px
big, em
font-size: 100% !important
line-height: normal
&.literal
border: 1px solid $gray-300
color: $red
color: $text-code-color
white-space: normal
&.xref, a &
font-weight: bold
color: $text-codexref-color
pre, kbd, samp
font-family: $font-family-code
font-family: $code-font-family
// If the literal is inside an a tag, let's color it like a link
a tt, a code
color: $link-color
dl
margin-bottom: $line-height-base
margin-bottom: $base-line-height
dt
font-weight: bold
margin-bottom: $line-height-base / 2
margin-bottom: $base-line-height / 2
// Most of the content within these dls are one liners, so I halve the normal margins.
p, table, ul, ol
margin-bottom: $line-height-base / 2
margin-bottom: $base-line-height / 2
// rST seems to want dds to be treated as the browser would, indented.
dd
margin: 0 0 $line-height-base / 2 $line-height-base
line-height: $line-height-base
dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)
margin-bottom: $line-height-base
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: $line-height-base / 4 0
margin: ($base-line-height / 4) 0
font-size: 90%
line-height: normal
background: lighten($class-color, 45%)
background: lighten($class-color, 50%)
color: $class-color
border-top: solid 3px lighten($class-color, 20%)
padding: $line-height-base / 4
padding: $base-line-height / 4
position: relative
&:before
color: lighten($class-color, 20%)
.headerlink
color: $text-color
font-size: 100% !important
// parameters
// In the html4 writer, parameters is a table. In html5 writer, parameters
// is a nested dl.field-list
dl:not(.field-list) > dt
margin-bottom: $line-height-base / 4
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
font-size: 100% !important
&:not(.sig-name)
color: darken($method-color, 35%)
> dt:first-child
margin-top: 0
// Since dts get the callout style, we treat this less as callouts.
@@ -442,12 +460,18 @@
.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
color: $text-viewcode-color
font-size: 80%
padding-left: $line-height-base
padding-left: $base-line-height
.viewcode-back
display: block
float: right
@@ -472,21 +496,18 @@
margin-right: 4px
.guilabel
border: 1px solid lighten($guilabel-color, 25%)
background: lighten($guilabel-color, 45%)
background: lighten($guilabel-color, 50%)
font-size: 80%
font-weight: 700
border-radius: $line-height-base / 6
padding: $line-height-base / 10 $line-height-base / 4
margin: auto $line-height-base / 12
kbd, .kbd
color: inherit
background: $gray-300
border-radius: $base-line-height / 6
padding: ($base-line-height / 10) ($base-line-height / 4)
margin: auto ($base-line-height / 12)
.versionmodified
font-style: italic
// Mobile specific
@include media-breakpoint-down(sm)
+media($mobile)
.rst-content
.sidebar
width: 100%
+41 -39
View File
@@ -1,67 +1,69 @@
// In here are varibles used for sphinx_rtd_theme, they either add to or overwrite the default ones
// -------------------------Paths-------------------------
// that are set in wyrm_core/wy_variables.sass. You'll find wyrm in bower_components if you're looking
// for a reference.
$fa-font-path: "~font-awesome/fonts"
$static-img: "../img/"
// -------------------------Layout-------------------------
$gutter: 1.618em // the golden ratio
$nav-desktop-position: left
$nav-desktop-width: 300px
$nav-content-width: 800px
$nav-media-query: (($nav-desktop-width) + ($nav-content-width))
$nav-media-query: $nav-desktop-width + $nav-content-width
// -------------------------Typography-------------------------
$font-family-base: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif
$font-family-headings: "Roboto Slab", ff-tisa-web-pro, Georgia, Arial, sans-serif
$font-family-code: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace
$font-display: block
$font-size-base: 16px
$line-height-base: 24px
// -------------------------Colors-------------------------
// Text
$text-color: hsl(0,0%,25%) !default
$text-dark: lighten($text-color,15%) !default
$text-medium: lighten($text-color,25%) !default
$text-light: lighten($text-color,45%) !default
$text-lighter: lighten($text-color,60%) !default
// Content
$section-background-color: $gray-200
$content-background-color: $white
$footer-color: $text-medium
// Links
$link-color: $blue
$link-color-visited: $purple
$headerlink-color: $text-color
// Math
$mathjax-color: $text-color
$headerlink-color: $text-color
// Code colors
$text-viewcode-color: $green
$text-codexref-color: $text-color
// Definition list colors
$class-color: $blue
$method-color: $gray-500
$method-color: $gray
// GUI label color
$guilabel-color: $blue
// Footer colors
$footer-color: $text-medium
// Menu colors
$menu-vertical-background-color: $section-background-color
// Menu text colors
$menu-color: $gray
$menu-dark: lighten($menu-color,10%) !default
$menu-medium: lighten($menu-color,27.5%) !default
$menu-light: lighten($menu-color,45%) !default
$menu-lighter: lighten($menu-color,60%) !default
// Menu link colors
$menu-link-color: $text-color
$menu-link-dark: $text-dark
$menu-link-medium: $text-medium
$menu-link-light: $text-lighter
$menu-link-active: $white
// Navigation colors
$nav-background-color: #343131
$nav-search-background-color: #2980B9
$nav-background-color: $menu-background-color
$nav-search-background-color: $blue
$nav-search-color: $section-background-color
$nav-menu-background-color: $section-background-color
$nav-caption: $nav-search-background-color
$nav-link-color: $blue
$nav-link-color-visited: $purple
$nav-link-color-hover: lighten($nav-link-color, 6%) !default
$nav-link-color-alt: hsl(33, 100%, 51%)
$nav-caption: lighten($blue, 15%)
// Sidebar colors
$sidebar-background-color: $table-stripe-color
$sidebar-border-color: $table-border-color
$sidebar-title-background-color: $table-border-color
// Sphinx highlight color
$highlight-color: $yellow
$base-font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif
$custom-font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif
$custom-font-family2: Georgia, serif
$code-font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace
$font-display: block
+8 -5
View File
@@ -4,10 +4,13 @@
// This generates the RTD sticky badge for non RTD themes. As
// always, only files labeled "theme_*.sass should be edited".
// ------------------------------------------------------------
$border-box-sizing: false !default
@import "node_modules/bootstrap/scss/functions"
@import "node_modules/bootstrap/scss/variables"
@import "node_modules/bootstrap/scss/mixins"
@import wyrm_core/wy_variables
@import theme_variables
@import theme_badge_fa
@import theme_badge
@import ~bourbon/app/assets/stylesheets/bourbon
@import ~bourbon-neat/app/assets/stylesheets/neat
@import wyrm_core/mixin
@import wyrm_core/grid_settings
@import _theme_badge_fa
@import _theme_badge
+28 -3
View File
@@ -6,14 +6,39 @@
// "theme_*.sass". All other files are loaded through bower.
// ------------------------------------------------------------
@import ~bootstrap/scss/bootstrap
// Variable defaults set by Wyrm
@import wyrm_core/wy_variables
// Variable overrides that change coloring and fonts for this theme.
@import theme_variables
// Font Awesome
@import ~font-awesome/scss/font-awesome
// bourbon.io framework
@import ~bourbon/app/assets/stylesheets/bourbon
// Bourbon.io/neat framework, with some default media queries
@import wyrm_core/grid_settings
@import ~bourbon-neat/app/assets/stylesheets/neat
// Some corrections for neat
@import wyrm_core/neat_extra
// Custom reset
@import wyrm_core/reset
// Wyrm mixins
@import wyrm_core/mixin
// Font Awesome with wyrm extras
@import ~font-awesome/scss/font-awesome
@import wyrm_core/font_icon_defaults
// Wyrm core styles used in this theme
@import wyrm_core/alert
@import wyrm_core/button
@import wyrm_core/dropdown
@import wyrm_core/form
@import wyrm_core/generic
@import wyrm_core/table
@import wyrm_core/type
// Theme specific styles. These are likely the files you want to edit.
@import theme_breadcrumbs
+39 -17
View File
@@ -80,15 +80,15 @@ function ThemeNav () {
$(document)
// Shift nav in mobile when clicking the menu.
.on('click', "[data-toggle='wy-nav-top']", function() {
$("[data-toggle='sidebar-collapse']").toggleClass("shift");
$("[data-toggle='wy-nav-shift']").toggleClass("shift");
$("[data-toggle='rst-versions']").toggleClass("shift");
})
// Nav menu link click operations
.on('click', ".sidebar-navigation .current ul li a", function() {
.on('click', ".wy-menu-vertical .current ul li a", function() {
var target = $(this);
// Close menu when you click a link.
$("[data-toggle='sidebar-collapse']").removeClass("shift");
$("[data-toggle='wy-nav-shift']").removeClass("shift");
$("[data-toggle='rst-versions']").toggleClass("shift");
// Handle dynamic display of l3 and l4 nav lists
self.toggleCurrent(target);
@@ -100,19 +100,20 @@ function ThemeNav () {
// Make tables responsive
$("table.docutils:not(.field-list,.footnote,.citation)")
.wrap("<div class='table-responsive'></div>");
.wrap("<div class='wy-table-responsive'></div>");
// Add extra class to responsive tables that contain
// footnotes or citations so that we can target them for styling
$("table.docutils.footnote")
.wrap("<div class='table-responsive footnote'></div>");
.wrap("<div class='wy-table-responsive footnote'></div>");
$("table.docutils.citation")
.wrap("<div class='table-responsive citation'></div>");
.wrap("<div class='wy-table-responsive citation'></div>");
// Add expand links to all parents of nested ul
$('.sidebar-navigation ul').not('.simple').siblings('a').each(function () {
$('.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();
@@ -127,7 +128,7 @@ function ThemeNav () {
var anchor = encodeURI(window.location.hash) || '#';
try {
var vmenu = $('.sidebar-navigation');
var vmenu = $('.wy-menu-vertical');
var link = vmenu.find('[href="' + anchor + '"]');
if (link.length === 0) {
// this link was not found in the sidebar.
@@ -144,11 +145,19 @@ function ThemeNav () {
// If we found a matching link then reset current and re-apply
// otherwise retain the existing match
if (link.length > 0) {
$('.sidebar-navigation .current').removeClass('current');
link.addClass('current');
link.closest('li.toctree-l1').parent().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');
link.closest('li.toctree-l' + i)
.addClass('current')
.attr('aria-expanded','true');
}
link[0].scrollIntoView();
}
@@ -187,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';
});
}
}
+9 -1
View File
@@ -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
+1
View File
@@ -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
+6 -2
View File
@@ -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
+8 -2
View File
@@ -37,10 +37,10 @@ module.exports = {
loader: "sass-loader?indentedSyntax",
options: {
includePaths: [
"node_modules/bootstrap/scss",
"node_modules/bourbon/app/assets/stylesheets",
"node_modules/bourbon-neat/app/assets/stylesheets",
"node_modules/font-awesome/scss"
"node_modules/font-awesome/scss",
"node_modules/wyrm/sass"
]
}
}
@@ -66,5 +66,11 @@ module.exports = {
filename: "css/[name].css?[hash]",
chunkFilename: "css/[name].css?[hash]"
}),
new CopyPlugin([
{
from: 'node_modules/html5shiv/dist/*.min.js',
flatten: true,
to: path.resolve(__dirname,'sphinx_rtd_theme/static/js') },
]),
]
};