Compare commits

..
88 Commits
Author SHA1 Message Date
Manuel Kaufmann 795de79c8b Release 3.1.0 (#1676)
Supports docutils 0.22 and Sphinx 9.x
2026-01-12 17:01:33 +01:00
66d0fdd910 Add Python 3.14 to the test suite (#1668)
* Initial plan

* Add Python 3.14 to the CircleCI test suite

Co-authored-by: humitos <244656+humitos@users.noreply.github.com>

* Apply suggestion from @humitos

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: humitos <244656+humitos@users.noreply.github.com>
Co-authored-by: Manuel Kaufmann <humitos@gmail.com>
2026-01-07 10:59:21 +01:00
Manuel Kaufmann fbe5e60041 3.1.0rc2 with support for docutils 0.22 (#1674) 2026-01-07 10:55:10 +01:00
Manuel Kaufmann a76174c0bb Add support for docutils 0.22 (#1671)
* Add support for docutils 0.22

No errors when building the docs or visual differences.

Related #1665

* Update docs
2026-01-07 10:44:30 +01:00
20733c3bcc Add support for Sphinx 9.0.0 (#1666)
* Initial plan

* Add support for Sphinx 9.0.0

Co-authored-by: humitos <244656+humitos@users.noreply.github.com>

* Update docs

* Use Sphinx 9.x for documentation

* Added changelog entry and bumped version to 3.1.0rc1

* Remove 3.1.0 from development file

* Revert version

* Update release following our docs

https://sphinx-rtd-theme.readthedocs.io/en/stable/contributing.html#releasing-the-theme

* Add deleted text by mistake

* Update Python supported versions

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: humitos <244656+humitos@users.noreply.github.com>
Co-authored-by: Manuel Kaufmann <humitos@gmail.com>
2025-12-10 10:09:41 +01:00
Seth G 71aacd3504 Update Code of Conduct URL (#1664)
Update URL
2025-12-01 10:57:45 +01:00
Manuel Kaufmann 5a263753d5 Run tests and build docs with Sphinx 8.2 (#1640)
* Run tests and build docs with Sphinx 8.2

* CircleCI job

* Update Read the Docs dependencies

* Update matrix

* Run tests with 3.13

* Use 8.x to build our docs
2025-02-20 11:22:56 +01:00
Benjamin Cabé 8d4d394dad Sidebar should not be floating on mobile (#1622)
When sidebar is set to 100% width on mobile, it should also be switched
back to being non-floating.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-11-13 15:32:27 -08:00
Manuel Kaufmann 5f03347239 Release 3.0.2 2024-11-13 12:02:40 +01:00
Manuel Kaufmann 17c0685be9 Attached flyout: show the current translation (#1629)
* Attached flyout: show the current translation

Closes #1621

* Update sphinx_rtd_theme/static/js/versions.js_t
2024-11-13 11:56:19 +01:00
Manuel Kaufmann 5db7796b6e Allow disabling selectors (#1626)
There was a bug with how we render a Python bool value into JavaScript.
This PR fixes that issue.

Closes #1620
2024-11-04 11:16:56 +01:00
Manuel Kaufmann 7b894f5e7a Release 3.0.1 2024-10-09 15:17:48 +02:00
Manuel Kaufmann 1f2439c7bf Use black color for switcher options (#1615)
Closes #1614
2024-10-09 15:14:43 +02:00
Manuel Kaufmann a1c2147b17 Release 3.0.0 2024-10-07 09:12:19 +02:00
Manuel Kaufmann 814686ee1f Release 3.0.0rc4 2024-10-02 13:54:28 +02:00
Manuel Kaufmann 5b181b89fb Trigger search modal on "Search docs" input focus (#1610)
This is a regression introduced in
https://github.com/readthedocs/sphinx_rtd_theme/pull/1601

This PR triggers the search modal when clicking on the "Search docs" input from
- inside the flyout if present
- the top left navbar
2024-10-02 13:51:57 +02:00
Manuel Kaufmann 7deb68fe16 Release 3.0.0rc3 2024-09-26 13:52:32 +02:00
Manuel Kaufmann 036a3b2231 Show hidden version in selector if it's the current active version (#1609)
Closes #1608
2024-09-25 16:38:47 +02:00
Manuel Kaufmann ccf31144c9 Release 3.0.0rc2 (#1607) 2024-09-23 10:38:18 +02:00
4cab02fff8 Show version/language selectors below the title (#1601)
* Show version/language selectors below the title

* Use CSS styles from old attempt

https://github.com/readthedocs/sphinx_rtd_theme/pull/438

* Update CSS to apply to both selectors

* Prepend the current version if it's hidden

* Split it into two different configs

* Use correct value for language

* Make the selectors more prominent

* Typo fix on comment

* Update CSS

* Update JavaScript

* Always include the version javascript

* Only include the languages if there is one

* Change `display_version` default

* HTML layout rework

* Update docs

* HTML layout fix

* Docs typo

* Update CSS

* Updates from review

* re-compile CSS

* Update CSS

* Apply suggestions from code review

Co-authored-by: Eric Holscher <25510+ericholscher@users.noreply.github.com>

* Use the prettier to lint the file

* Whitespaces

* Update event listener

* Update CSS

* Update CSS

* Remove language switch if there are not translations

* Tune version and language selector styles (#1603)

* Tuning on select width and icon placement

* Use better cursor

* Add a max width to selects so that they can't overflow

* Only add after pseudo element if select exists

* Lint

* Debug: trigger Read the Docs Addons event to test/debug locally (#1606)

* Debug: trigger Read the Docs Addons event to test/debug locally

Closes #1605

* Push missing file

---------

Co-authored-by: Eric Holscher <25510+ericholscher@users.noreply.github.com>
Co-authored-by: Anthony <aj@ohess.org>
2024-09-20 20:01:11 +02:00
Manuel Kaufmann 9c75444a73 Docs: do not sign Git tag (#1596)
Closes #1593
2024-08-20 18:52:27 +02:00
Manuel Kaufmann 3a3473dc15 Release 3.0.0rc1 (#1597) 2024-08-20 13:34:51 +02:00
Manuel Kaufmann 6b587d1c67 Prepare for 3.0 release (#1576)
* Tests: `sphinxdev` tox environment installs Sphinx from `master`

It seems we had a bug in the name and it wasn't installing Sphinx from `master`.
I expect this test to fail now because we pin `Sphinx<8`, but that's fine for now.

* Prepare for 3.0 release

- Drop Python <3.8
- Drop docutils <=0.18
- Add support for docutils 0.21
- Add support for Python 3.12

This follows the plan we wrote in
https://sphinx-rtd-theme.readthedocs.io/en/stable/development.html#roadmap-release-3-0-0

The main idea here is to move forward with newer versions and drop support for
old stuffs so we reduce the maintanence burden.

* Update CircleCI matrix

* More fixes to CircleCI

* Run test over Sphinx 8.0

* Update contributing guide

* Remove deprecated `readthedocs-sphinx-ext`

* Remove old Sphinx versions

* Uninstall our extension

* Show a warning if `extra_css_files` is in the `html_context`

See https://github.com/readthedocs/sphinx_rtd_theme/pull/450

* Update development page

* Add deprecate warning for `analytics_` theme options

* Update docs

* Remove unused dependency

Closes #1533

* Remove environment variables from our docs

This was already added in a more generic way to the theme itself.

* Require Sphinx >=6.0

* Deprecation warning about `get_html_theme_path`

See https://github.com/readthedocs/sphinx_rtd_theme/pull/1479#issuecomment-2296317034
2024-08-20 13:18:34 +02:00
Manuel KaufmannandAnthony 768dcc1467 Docs: update the installation note (#1595)
* Docs: update the installation note

Translated string work with/without the theme added into the ``extensions``.
However, it's still required to be inside the extensions because of
``sphinxcontrib-jquery``.

I'm keeping the note, but changing it content.

* Update docs/installing.rst

Co-authored-by: Anthony <aj@ohess.org>

---------

Co-authored-by: Anthony <aj@ohess.org>
2024-08-20 12:07:28 +02:00
Manuel Kaufmann 2c19bb149b Release 2.1.0rc2 (#1592) 2024-08-14 12:30:58 +02:00
Manuel KaufmannandEric Holscher a359d40e28 Theme option flyout to enable/disable theme's flyout (#1580)
* Theme option `flyout` to enable/disable theme's flyout

Add a theme option to enable/disable the theme's flyout integrated at the bottom
left into the navigation bar.

Closes #1579

* Use `flyout_display` with `hidden` and `attached` as options

* Make `hidden` as `flyout_display`

* Update docs/configuring.rst

Co-authored-by: Eric Holscher <25510+ericholscher@users.noreply.github.com>

---------

Co-authored-by: Eric Holscher <25510+ericholscher@users.noreply.github.com>
2024-08-14 12:14:42 +02:00
Manuel Kaufmann cf898d3acc Populate html_context with READTHEDOCS_* environment variables (#1581)
* Populate `html_context` with `READTHEDOCS_*` environment variables

Closes #1578

* Typo
2024-08-01 19:18:37 +02:00
Manuel Kaufmann 42557430ef Tests: sphinxdev tox environment installs Sphinx from master (#1575)
It seems we had a bug in the name and it wasn't installing Sphinx from `master`.
I expect this test to fail now because we pin `Sphinx<8`, but that's fine for now.
2024-07-25 12:14:52 +02:00
Manuel Kaufmann 5c72f6504f Docs: update releasing (#1574)
* Docs: update releasing

* Use the pattern we already have

* Use tab :/
2024-07-25 12:14:27 +02:00
Manuel Kaufmann 68a89bb07e Release 2.1.0rc1 (#1573)
I wasn't able to update translations because it fails with non-zero exit when
running `python setup.py update_translations`.
2024-07-23 11:21:33 +02:00
Karolina SurmaandManuel Kaufmann 76a933b997 Adjust the expected test_basic output to match Sphinx 7.3+ (#1572)
The previous behavior was deemed a bug and fixed in
https://github.com/sphinx-doc/sphinx/pull/11970

Closes #1558

Co-authored-by: Manuel Kaufmann <humitos@gmail.com>
2024-07-15 15:16:39 +02:00
Manuel KaufmannandAnthony 357e76dc42 Addons: integrate with new beta addons flyout (#1526)
* Addons: integrate with new beta addons flyout

Initial experimentation to use the `CustomEvent` triggered by the addons called
`readthedocsdataready` event (from
https://github.com/readthedocs/addons/pull/64/) to build the Read the Docs
flyout being integrated into the theme keeping the original look & feel.

* Related: https://github.com/readthedocs/addons/pull/64/
* Closes #1523

* `READTHEDOCS` variable has to be passed to the `html_context`

This is because we are not executing the Read the Docs magic that modifies the
`conf.py` file on the fly :/

* Update code to match the latest changes

* Use `.join` to avoid rendering the Array with `,`

* Update code to use the v1 API structure response

* Don't auto-remove the original flyout

This can be disabled per-project by using the settings UI from the dashboard.

* Join the values to avoid strange `,`s

* Support translations

Use the current pattern to translate string generated for the flyout.

* Remove HTML tags for testing

* Show "Search" section on flyout

* Render footer

* Add some styling

* TODO comments to work on

* add `div.injected`

* Apply suggestions from code review

Co-authored-by: Anthony <aj@ohess.org>

* Translate privacy policy

* Add `.rtd-current-item` class to selected version/language

* Refactor code to show sections only if there is content

* Epub instead of EPUB for backward compatibility

* Show the modal when clicking on the "Search docs" from navbar

* Remove privacy policy link from flyout

* Add UTM analytics

* Move CSS style into SASS file

* Move the `script` tag into its own file

* Rename JS file to mark it as a Sphinx template

* Build css/js files

Run `npm ci` and `npm run build` using NodeJS 14.20.1.

* Add the JS template in the package

---------

Co-authored-by: Anthony <aj@ohess.org>
2024-07-15 15:11:33 +02:00
Max DudzinskiandManuel Kaufmann 28c377f99a Remove html5shiv (#1482)
* Fix typo

* Lock file changes after running 'npm install --lockfile-version 1' w/ Node 14

* Format file prior to change

* Remove the html5shiv JS package & all references to it

* Remove the copy-webpack-plugin JS package as no longer used

---------

Co-authored-by: Manuel Kaufmann <humitos@gmail.com>
2024-01-25 12:03:15 -08:00
Manuel KaufmannandDmitry Shachnev 80de90aecf Remove Sphinx<5 compatibility leftovers (#1512)
* Remove Sphinx<5 compatibility

Since 2.0 we do not support Sphinx<5.

* Always use `writer-html5`

Since 2.0 HTML4 writer is not supported.

* Use `css_tag` helper to inject CSS files

* Revert "Remove Sphinx<5 compatibility"

Keep `sphinx_version_info`. It will be required.

This reverts commit 3afbed2950.

* Set `data-content_root` for Sphinx >= 7.2

Copied from https://github.com/readthedocs/sphinx_rtd_theme/pull/1507

* Default value for `DISPLAY` and `--new-tab`

* Visual test with Firefox and tox

Allows developer to run

```
tox -e py310-sphinx72-firefox
```

This will run the tests and open a Firefox after building the demo site
showing the `demo/demo.html` page on it.

Then, you can also run:

```
tox -e py310-sphinx61-firefox
```

and compare the visual differences.

Idea copied from #1388
Closes #1388

* Update sphinx_rtd_theme/layout.html

Co-authored-by: Dmitry Shachnev <mitya57@users.noreply.github.com>

* Remove code from merge conflict

* Revert a mistake done on merging

* Update CSS logic again

* Minor refactor to undocumented `extra_css_files` option

---------

Co-authored-by: Dmitry Shachnev <mitya57@users.noreply.github.com>
2024-01-03 12:19:50 +01:00
Manuel Kaufmann 17111add80 Remove pytest warnings (#1515)
* Remove pytest warnings

Ignore deprecations on Sphinx 9.0 that comes from readthedocs-sphinx-ext and use
`findall()` instead of `.traverse()` as suggested by docutils.

* We can't ignore a warning from Sphinx 9.0

We are testing in older versions where this exception is not defined.

The deprecation warning we are seeing here is not related to `sphinx_rtd_theme`
but with `readthedocs-sphinx-ext` because at:

https://github.com/rtfd/readthedocs-sphinx-ext/blob/13edf78bab374f51e314e4994c319fadbab806f2/readthedocs_ext/readthedocs.py#L118-L122

In any case, we will stop using that Sphinx extension at some point.
2024-01-02 13:22:55 +01:00
Anthony 2da37d6afd Set up for next release (#1545) 2023-11-28 10:00:56 -08:00
Anthony 7c9b1b5d39 Release 2.0 final (#1544) 2023-11-27 20:04:13 -08:00
Anthony c104410760 Bump for next potential release, 2.0.0rc5 (#1539) 2023-10-31 14:27:11 -07:00
Anthony 53ca116ef6 Release 2.0.0rc4 (#1538) 2023-10-31 14:15:47 -07:00
Dmitry Shachnev 4498e97b46 Fix AttributeError when one of css_files is a string (#1537)
Fix AttributeError when one of css_files is a string
2023-10-30 11:41:11 -07:00
Anthony 84aea9b0ba Increment for next potential release (#1536) 2023-10-24 11:49:43 -07:00
Anthony febde39c7c Release 2.0.0rc3 (#1535) 2023-10-23 19:12:58 -07:00
32310a8190 Fix #1522: fix 'str' object has no attribute 'attributes' (#1528)
* Fix #1522: fix attribute error if css is str

* Revert "Fix #1522: fix attribute error if css is str"

This reverts commit b22a77f35a.

* Use `css_tag` only for standard CSS files from Sphinx

... and keep using the custom `link` HTML tag for CSS files included via the
HTML theme option `extra_css_files`.

* Normalize template variables

---------

Co-authored-by: Manuel Kaufmann <humitos@gmail.com>
Co-authored-by: Anthony Johnson <aj@ohess.org>
2023-10-23 19:05:59 -07:00
Anthony 8ce23cec96 Version bump for 2.0rc3 development (#1521)
Next development version is 2.0rc3 for now, but more likely 2.1rc1
2023-08-29 16:16:22 -07:00
Anthony 46f5307dbd Release 2.0rc2 (#1520) 2023-08-29 16:11:46 -07:00
Manuel Kaufmann 5838e6aa54 Add support for docutils==0.20.x (#1517)
Closes #1516
2023-08-29 12:12:25 +02:00
Manuel Kaufmann d34b71bb09 Use css_tag helper to inject CSS files (#1519)
* Use `css_tag` helper to inject CSS files

* Typo
2023-08-29 11:43:41 +02:00
Dmitry ShachnevandManuel Kaufmann 4874e9428d Set data-content_root for Sphinx ≥ 7.2 (#1507)
This attribute is now required by searchtools.js:
https://github.com/sphinx-doc/sphinx/blob/v7.2.2/sphinx/themes/basic/static/searchtools.js#L65

When it's not set, loading search results via AJAX will be broken
because the JS code will attempt to load paths like /undefinedfoo.html.

Co-authored-by: Manuel Kaufmann <humitos@gmail.com>
2023-08-29 11:03:49 +02:00
Manuel Kaufmann 41aca736bc Docs: update Read the Docs config (#1518)
Use the latest config file style.
2023-08-28 19:23:03 +02:00
Manuel Kaufmann ffdabadaa4 Remove Python2 leftovers (#1514) 2023-08-28 17:16:30 +02:00
Manuel Kaufmann c190c0064b Visual test with Firefox and tox (#1513)
* Visual test with Firefox and tox

Allows developer to run

```
tox -e py310-sphinx72-firefox
```

This will run the tests and open a Firefox after building the demo site
showing the `demo/demo.html` page on it.

Then, you can also run:

```
tox -e py310-sphinx61-firefox
```

and compare the visual differences.

Idea copied from #1388
Closes #1388

* Default value for `DISPLAY` and `--new-tab`

* Simplify the idea :)
2023-08-23 18:23:48 +02:00
Benjamin Balder BachandManuel Kaufmann 923f9874a9 Docs: Remove "git install" method from instructions (#1375)
* Remove instructions "encouraging" to install directly from git

* Update changelog: Add reminder that people should not install directly from git

* Update docs/changelog.rst

---------

Co-authored-by: Manuel Kaufmann <humitos@gmail.com>
2023-08-22 09:28:16 -07:00
Anthony 52e0cad4c2 Bump to next release 2.0.0rc2 (#1511) 2023-08-21 12:03:21 -07:00
Anthony 6cf2ae7951 Release 2.0.0rc1 (#1510)
* Release 2.0.0rc1

* Update npm lock file
2023-08-21 11:59:16 -07:00
Manuel KaufmannandAnthony Johnson 0e7b28ad4a 2.0 milestone: drop supported versions (#1500)
* 2.0 milestone: drop supported versions

The new policy is:

- Python >=3.6
- Sphinx >= 5
- HTML4 and HTML5 writer
- docutils >= 0.14, < 0.19

* Update roadmap after discussion

By the beginning of 2024 we should support newer Sphinx versions and HTML5 only.

* Remove Python 2.7 from CircleCI

* Run only supported versions on Python 3.11

* Update with feedback from review

* Update documentation to match our support

* Add Sphinx 6.2 that was missing

* Update tox/circleci to work

* Revert tox command

* Drop support for HTML4 and keep `-qa` testing

- drop support for HTML4 on 2.0
- keep `-qa` TOX environment to be able to compare feature branches
- emit `logger.errors` on Python 2 and html_writer4=True
- require Sphinx >= 5.0
- remove logic for old Sphinx versions

* Update Tox and CircleCI

* Update contributing page to match our plans

---------

Co-authored-by: Anthony Johnson <aj@ohess.org>
2023-08-21 11:38:57 -07:00
Anthony 15ed4de08d Release 1.3.0 (#1509)
Bump the RC to final
2023-08-21 11:25:09 -07:00
Anthony b5833585b2 1.3.0rc2 (#1495)
The repo is normally bumped to the next up potential release so it
doesn't conflict with the current release.
2023-08-03 17:49:54 -07:00
Anthony 775bca403c Release 1.3.0rc1 (#1494)
* Release 1.3.0rc1

* Update lock file
2023-08-03 17:27:33 -07:00
Benjamin Balder BachandManuel Kaufmann 04f85fc422 Add Sphinx 7 support (#1464)
* Allow Sphinx 7

* Also build theme docs with Sphinx 7

* Add more tests cases on tox.ini

* Increase the Sphinx version for the docs

---------

Co-authored-by: Manuel Kaufmann <humitos@gmail.com>
2023-08-03 17:15:33 -07:00
Benjamin Balder Bach 9899ee4ee2 Release 1.2.2 (#1484)
* Changelog for 1.2.2

* 1.2.2rc1

* Build: Fix bug that reads out container id from previous run

* Update package-lock to match release

* Bump to 1.2.2 final
2023-06-07 15:27:05 +02:00
Benjamin Balder Bach 2442ab9ffd Remove version logic on sphinxcontrib-jquery, require >=4,<5 (#1446)
* Remove version logic on sphinxcontrib-jquery, require >=4,<5

* Bump to Sphinx 6.1.x

* Remove testing for Sphinx 1.7, sphinxcontrib-jquery 4.x blocks it
2023-05-25 18:47:50 +02:00
Benjamin Balder Bach cd6b429f87 :menuselection: style (#1426)
* Adds a bit of basic styling for `:menuselection:`

* Rebuild CSS

* Remove docs demo, there was one already exactly below :)

* Make menuselection color same as guilabel

* Update assets for https://github.com/readthedocs/sphinx_rtd_theme/pull/1426
2023-05-24 17:16:18 +02:00
Benjamin Balder Bach 2107797b00 Contributing updates (#1478)
* Add reminder to pull from remote

* Sign git tags
2023-05-23 13:34:46 +02:00
Benjamin Balder Bach 72691f5025 Release 1.2.1 (#1474)
* Run bump2version

* Add changelog
2023-05-23 11:16:18 +02:00
Tapple Gao d836ff798c Docs: Typo in recommended pinning (#1476)
* Typo in recommended pinning

The paragraph above recommends "less than the next major version". But the example says `<=`. Make them match

* Update development.rst
2023-05-18 15:08:10 +02:00
Benjamin Balder Bach 4d6de11137 Add a call to add_js_files (sphinxcontrib.query) (#1448)
* Add a call to add_js_files since it doesn't happen when loading extension from theme https://github.com/sphinx-contrib/jquery/issues/23

* Avoid importing from sphinxcontrib.jquery in __init__

* Add reference to issue
2023-05-17 19:46:48 +02:00
Miller Abel 03a86b803c fixed type-o in note on automatic index generation (#1458) 2023-04-22 20:58:10 +02:00
Anthony ee64d37ac9 Bump to next alpha for development (#1433) 2023-02-07 15:30:54 -08:00
Anthony 9d88b9e4e1 Release 1.2.0 (#1432)
* Drop development version header from changelog

This makes just as much sense as a point release header, and won't
require any special attention when we're cutting a release.

* Bump release 1.2.0

* Update package lock
2023-02-07 13:47:28 -08:00
Benjamin Balder Bach 064b6c9f05 release 1.2.0rc4 (#1430)
* Bump to 1.2.0rc4

* Update changelog

* Update translations

* Chinese (Taiwan) was also a new addition
2023-02-06 18:03:20 +01:00
Benjamin Balder Bach cd99c0f284 Do not use sphinxcontrib-jquery 3.0.0 but anticipate a fixed release (#1421)
* Do not use sphinxcontrib-jquery but anticipate a fixed release

* Only require sphinxcontrib-jquery on Python 3 (Sphinx 6 isn't released for 2.7)
2023-02-01 19:18:05 +01:00
Benjamin Balder Bach 6444ca8930 Release 1.2.0rc3 (#1414)
* Bump version to 1.2.0rc3

* Update changelog with more entries and known issues

* Update package-lock
2023-01-18 20:14:31 +01:00
Benjamin Balder BachandAnthony 5e80b2bd08 Sphinx 6: Use logo_url instead of logo (#1405)
* Sphinx 6: Use logo_url instead of logo

* Handle removal of favicon template context + refactor display of logo and link so it's easier to see what belongs to <4.0 and what is >=4.0

* Adds a favicon to the demo

* Import condensed version logic @agjohnson

* Update sphinx_rtd_theme/layout.html

Co-authored-by: Anthony <aj@ohess.org>

Co-authored-by: Anthony <aj@ohess.org>
2023-01-17 22:48:39 +01:00
Benjamin Balder Bach ce20cfccca Updates to package-lock.json for 1.2.0rc2 (#1400)
Updates to package-lock.json
2023-01-04 22:45:54 +01:00
Benjamin Balder Bach ee488a15d2 1.2.0rc2 (#1397)
* Bump to 1.2.0rc2, add changelog entry on Sphinx 6

* Pull translations (no changes)

* loosen sphinx 6 pinning
2023-01-04 21:47:45 +01:00
Benjamin Balder Bach f84c4eb558 sphinx-rtd-theme will automatically enable sphinxcontrib-jquery (#1399) 2023-01-04 17:28:19 +01:00
0763576a36 support Python 3.11 with Sphinx 5.3+ (#1395)
* support Python 3.11 with Sphinx 5.3+

* Update tox.ini

Co-authored-by: Michael R. Crusoe <1330696+mr-c@users.noreply.github.com>

Co-authored-by: Benjamin Balder Bach <benjamin@overtag.dk>
Co-authored-by: Benjamin Balder Bach <benjaoming@gmail.com>
2023-01-04 16:21:01 +01:00
Benjamin Balder Bach f11e6c0d33 Allow Sphinx version 6 and add dependency for sphinxcontrib-jquery (#1385)
* Allow Sphinx version 6 and add dependency for sphinxcontrib-jquery

* Adds Sphinx 6.0b2 to Tox test matrix

* Adds Sphinx 6 to relevant Circle CI pipelines

* Build docs with Sphinx 6.0b2

* Use stable Sphinx 6.0.0
2022-12-30 19:56:29 +01:00
Benjamin Balder Bach a87790a4e2 Release 1.2.0rc1 (#1391)
* Bump to 1.2.0alpha1

* bump 2 1.2.0rc1

* Update package-lock.json from nmp audit

* Sync translations from Transifex (no changes found though)
2022-12-16 12:25:15 +01:00
Benjamin Balder BachandAnthony 27d287d203 Add changelog entry for docutils 0.18 support (#1389)
* Add changelog entry for docutils 0.18 support

* Update docs/changelog.rst

Co-authored-by: Anthony <aj@ohess.org>

Co-authored-by: Anthony <aj@ohess.org>
2022-12-15 19:45:12 +01:00
Anthony a039e52ec5 Add docutils 0.18 citation/footnote support using CSS grid (#1381)
* Add docutils 0.18 citation/footnote support using CSS grid

This is a fix for #1322 that continues our pattern for HTML5 support
using CSS grids, introduced for support for docutils < 0.17 HTML5
support.

* Add lots of backreferences to a footnote

* Drop brackets from footnote/citation links

The brackets seem to be another docutils addition.

* Tune grid display for Sphinx 4 and 5

Backrefs have a new styling that drops a lot of punctuation

* Bump dependency on docutils to < 0.19

* Small tweak to footnote backrefs row span

We don't want to use too large a value here, as some browsers might make
explicit rows for us. We can't target -1 because the row count is
implicit.

* Revert some new styling and use nonbreaking backrefs for now

* Downgrade tox

* Use before pseudo class to break up backrefs consistently
2022-12-15 13:02:39 +01:00
Daniel Mundra 510c620621 Added hidden text for home link in the breadcrumbs. (#1384)
* Added hidden text for home link in breadcrumbs.

* Update breadcrumbs.html

* Update breadcrumbs.html
2022-11-22 14:48:50 +01:00
Daniel MundraandBenjamin Bach 478ef67053 Added aria-label to search box input field. (#1380)
Co-authored-by: Benjamin Bach <benjamin@overtag.dk>
2022-11-21 19:16:48 +01:00
Benjamin Balder Bach 8142cd1a16 Eager upgrade of all dependencies in docker development environment (#1350)
* Do an eager upgrade of all dependencies in docker development environment

* Adds a comment about installation of deps and upgrade strategy
2022-11-21 18:20:53 +01:00
Benjamin Balder Bach 3265b4cd61 New release of sphinxcontrib-httpdomain==1.8.1 broke tests (#1383)
* New release of sphinxcontrib-httpdomain==1.8.1 broke tests

* Remove sphinxcontrib-httpdomain
2022-11-17 09:45:13 -08:00
Benjamin Balder BachandAnthony 25d6fe3605 Docs: Add upgrade instructions and simplify conf.py (#1365)
* Docs: Clean up several broken cross-references

* Adds a section about upgrading the theme and add navigation structure to installation guide

* Add a reference from Changelog to "How to upgrade"

* Also don't import sphinx_rtd_theme in the theme's own docs/conf.py

* Remove trailing linebreaks

* Update docs/installing.rst

Co-authored-by: Anthony <aj@ohess.org>

* Apply suggestions from code review

Co-authored-by: Anthony <aj@ohess.org>

* Update docs/installing.rst

* Replace guidance with reference to Reproducible Builds

* Build link into sentence

* Update the tip about using build logs and the need to pin the theme for older projects

* Remove tip box for Read the Docs users re: @agjohnson's request

Co-authored-by: Anthony <aj@ohess.org>
2022-11-09 13:40:16 +01:00
Anthony bef1649055 Update versioning docs to be explicit about our versioning workflow (#1373) 2022-11-05 00:24:27 +01:00
Anthony 2e4df57951 Bump development version after 1.1.1 release (#1372) 2022-11-05 00:20:04 +01:00
86 changed files with 2056 additions and 916 deletions

No files matched your search

+52 -31
View File
@@ -11,10 +11,14 @@ commands:
type: string
sphinx-version:
type: string
default: "17,18,20,21,22,23,24,30,31,32,33,34,35,40,41,42,43,44,45,50,51,52,latest"
default: "latest"
steps:
- checkout
- run: pip install --user tox
# We cannot upgrade to Tox4 because running generative environments doesn't work.
# I guess it has changed its syntax or similar.
# $ tox run -e "py310-sphinx{50,51}"
# ROOT: HandledError| provided environments not found in configuration file: ['51}']
- run: pip install --user 'tox~=3.27'
- run: tox -e "<<parameters.version>>-sphinx{<<parameters.sphinx-version>>}"
run-build:
description: "Ensure built assets are up to date"
@@ -40,50 +44,76 @@ jobs:
- image: 'cimg/python:3.9-node'
steps:
- run-build: {}
py27:
docker:
- image: 'cimg/python:2.7'
steps:
- run-tox:
version: py27
sphinx-version: "17,18"
py36:
docker:
- image: 'cimg/python:3.6'
steps:
- run-tox:
version: py36
py37:
docker:
- image: 'cimg/python:3.7'
steps:
- run-tox:
version: py37
py38:
docker:
- image: 'cimg/python:3.8'
steps:
- run-tox:
version: py38
sphinx-version: "60,61,62,70,71"
py39:
docker:
- image: 'cimg/python:3.9'
steps:
- run-tox:
version: py39
sphinx-version: "60,61,62,70,71,72,73,74"
py310:
docker:
- image: 'cimg/python:3.10'
steps:
- run-tox:
version: py310
sphinx-version: "42,43,44,45,50,51,52,latest"
sphinx-version: "60,61,62,70,71,72,73,74,80"
py311:
docker:
- image: 'cimg/python:3.11'
steps:
- run-tox:
version: py311
sphinx-version: "72,73,74,80,81,82,90,latest"
py312:
docker:
- image: 'cimg/python:3.12'
steps:
- run-tox:
version: py312
sphinx-version: "72,73,74,80,81,82,90,latest,dev"
py313:
docker:
- image: 'cimg/python:3.13'
steps:
- run-tox:
version: py313
sphinx-version: "72,73,74,80,81,82,90,latest,dev"
py314:
docker:
- image: 'cimg/python:3.14'
steps:
- run-tox:
version: py314
sphinx-version: "81,82,90,latest,dev"
workflows:
version: 2
tests:
jobs:
- build
- py314:
requires:
- build
- py313:
requires:
- build
- py312:
requires:
- build
- py311:
requires:
- build
- py310:
requires:
- build
@@ -93,12 +123,3 @@ workflows:
- py38:
requires:
- build
- py37:
requires:
- build
- py36:
requires:
- build
- py27:
requires:
- build
+1 -1
View File
@@ -2,4 +2,4 @@
A copy of our code of conduct can be found on Read the Docs as seen below.
http://docs.readthedocs.io/en/latest/code-of-conduct.html
https://docs.readthedocs.com/dev/stable/code-of-conduct.html
-2
View File
@@ -23,8 +23,6 @@ sphinx_rtd_theme/static/fonts/RobotoSlab/
.node-version
.tool-versions
.nvmrc
sphinx_rtd_theme/static/js/html5shiv.min.js
sphinx_rtd_theme/static/js/html5shiv-printshiv.min.js
.direnv/
.envrc
# Used for dockerized builds
+5 -1
View File
@@ -1,7 +1,11 @@
version: 2
build:
os: "ubuntu-24.04"
tools:
python: "3.12"
python:
version: 3.8
install:
- requirements: docs/requirements.txt
- method: pip
+1 -1
View File
@@ -1,4 +1,4 @@
# This implicitely includes Python 3.10
# This implicitly includes Python 3.10
FROM node:14-alpine
# Do not use --update since that will also fetch the
+1
View File
@@ -7,6 +7,7 @@ recursive-include sphinx_rtd_theme *.css
recursive-include sphinx_rtd_theme *.eot
recursive-include sphinx_rtd_theme *.html
recursive-include sphinx_rtd_theme *.js
recursive-include sphinx_rtd_theme *.js_t
recursive-include sphinx_rtd_theme *.svg
recursive-include sphinx_rtd_theme *.ttf
recursive-include sphinx_rtd_theme *.woff
+2 -1
View File
@@ -7,6 +7,7 @@ docker-images:
docker-npm-build:
rm -f .container_id
docker-compose run -d sphinx_rtd_theme build > .container_id
sleep 1s
docker container wait "$(shell cat .container_id)"
docker cp "$(shell cat .container_id):/project/sphinx_rtd_theme" .
docker cp "$(shell cat .container_id):/project/package-lock.json" .
@@ -14,5 +15,5 @@ docker-npm-build:
docker-npm-dev:
docker-compose run sphinx_rtd_theme dev
docker-build-all: docker-images docker-npm-build
+6 -1
View File
@@ -1,8 +1,13 @@
#!/bin/sh
# Update latest Python dependencies in case they have changed
# Notice that we are using the 'eager' strategy
# This should only be relevant to development environments where
# the theme is being used. For purposes of "production" or
# building the sdist/wheel, installing dependencies should not
# affect the outcome.
cd /project-readonly
pip install --upgrade -e ".[dev]"
pip install --upgrade --upgrade-strategy eager -e ".[dev]"
# This helps a potential permission issue, but might be removed
# pending some more investigation of docker host file system
+369
View File
@@ -0,0 +1,369 @@
{
"addons": {
"analytics": {
"code": null,
"enabled": true
},
"ethicalads": {
"ad_free": false,
"campaign_types": [
"community",
"house",
"paid"
],
"enabled": true,
"keywords": [
"only words"
],
"publisher": "readthedocs"
},
"external_version_warning": {
"enabled": true
},
"flyout": {
"enabled": true
},
"hotkeys": {
"doc_diff": {
"enabled": true,
"trigger": "KeyD"
},
"enabled": true,
"search": {
"enabled": true,
"trigger": "Slash"
}
},
"non_latest_version_warning": {
"enabled": true
},
"search": {
"default_filter": "project:sphinx-rtd-theme/stable",
"enabled": true,
"filters": [
[
"Include subprojects",
"subprojects:sphinx-rtd-theme/stable"
]
]
}
},
"api_version": "1",
"builds": {
"current": {
"commit": "7c9b1b5d391f6d7fae72274393eb25d1df96e546",
"created": "2023-11-28T04:14:06.510677Z",
"duration": 42,
"error": "",
"finished": "2023-11-28T04:14:48.510Z",
"id": 22677856,
"project": "sphinx-rtd-theme",
"state": {
"code": "finished",
"name": "Finished"
},
"success": true,
"urls": {
"build": "https://readthedocs.org/projects/sphinx-rtd-theme/builds/22677856/",
"project": "https://readthedocs.org/projects/sphinx-rtd-theme/",
"version": "https://readthedocs.org/projects/sphinx-rtd-theme/version/stable/edit/"
},
"version": "stable"
}
},
"domains": {
"dashboard": "readthedocs.org"
},
"projects": {
"current": {
"created": "2017-12-21T04:04:42.561793Z",
"default_branch": "master",
"default_version": "stable",
"external_builds_privacy_level": "public",
"homepage": null,
"id": 170010,
"language": {
"code": "en",
"name": "English"
},
"modified": "2021-03-16T17:13:52.465051Z",
"name": "sphinx_rtd_theme",
"privacy_level": "public",
"programming_language": {
"code": "words",
"name": "Only Words"
},
"repository": {
"type": "git",
"url": "https://github.com/readthedocs/sphinx_rtd_theme"
},
"single_version": false,
"slug": "sphinx-rtd-theme",
"subproject_of": null,
"tags": [],
"translation_of": null,
"urls": {
"builds": "https://readthedocs.org/projects/sphinx-rtd-theme/builds/",
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/stable/",
"downloads": "https://readthedocs.org/projects/sphinx-rtd-theme/downloads/",
"home": "https://readthedocs.org/projects/sphinx-rtd-theme/",
"versions": "https://readthedocs.org/projects/sphinx-rtd-theme/versions/"
},
"users": [
{
"username": "eric"
},
{
"username": "humitos"
},
{
"username": "agj"
}
],
"versioning_scheme": "multiple_versions_with_translations"
},
"translations": []
},
"readthedocs": {
"analytics": {
"code": null
}
},
"versions": {
"active": [
{
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 6692534,
"identifier": "b07560bf97dad3a4266f6145bd4b662ac708ab00",
"privacy_level": "public",
"ref": null,
"slug": "0.5.2",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/0.5.2/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/0.5.2/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/0.5.2/"
},
"verbose_name": "0.5.2"
},
{
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 7273098,
"identifier": "c9b1bde560d8ee31400e4e4f92f2e8d7a42265ce",
"privacy_level": "public",
"ref": null,
"slug": "1.0.0",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/1.0.0/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/1.0.0/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/1.0.0/"
},
"verbose_name": "1.0.0"
},
{
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 10496721,
"identifier": "f854c890e1445b99a43ac5f10463a5df83739a2e",
"privacy_level": "public",
"ref": null,
"slug": "1.1.1",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/1.1.1/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/1.1.1/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/1.1.1/"
},
"verbose_name": "1.1.1"
},
{
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 16340532,
"identifier": "9899ee4ee2f547f81e51297dc12317f018e62fdd",
"privacy_level": "public",
"ref": null,
"slug": "1.2.2",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/1.2.2/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/1.2.2/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/1.2.2/"
},
"verbose_name": "1.2.2"
},
{
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 17681643,
"identifier": "15ed4de08de55f7066ff4f2ac39883a397db30d3",
"privacy_level": "public",
"ref": null,
"slug": "1.3.0",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/1.3.0/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/1.3.0/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/1.3.0/"
},
"verbose_name": "1.3.0"
},
{
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 18862205,
"identifier": "7c9b1b5d391f6d7fae72274393eb25d1df96e546",
"privacy_level": "public",
"ref": null,
"slug": "2.0.0",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/2.0.0/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/2.0.0/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/2.0.0/"
},
"verbose_name": "2.0.0"
},
{
"active": true,
"aliases": [
{
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 18862205,
"identifier": "7c9b1b5d391f6d7fae72274393eb25d1df96e546",
"privacy_level": "public",
"ref": null,
"slug": "2.0.0",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/2.0.0/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/2.0.0/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/2.0.0/"
},
"verbose_name": "2.0.0"
}
],
"built": true,
"downloads": {},
"hidden": false,
"id": 3271725,
"identifier": "7c9b1b5d391f6d7fae72274393eb25d1df96e546",
"privacy_level": "public",
"ref": "2.0.0",
"slug": "stable",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/stable/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/stable/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/2.0.0/"
},
"verbose_name": "stable"
},
{
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 3271688,
"identifier": "master",
"privacy_level": "public",
"ref": null,
"slug": "latest",
"type": "branch",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/latest/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/latest/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/master/"
},
"verbose_name": "latest"
}
],
"current": {
"active": true,
"aliases": [
{
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 18862205,
"identifier": "7c9b1b5d391f6d7fae72274393eb25d1df96e546",
"privacy_level": "public",
"ref": null,
"slug": "2.0.0",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/2.0.0/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/2.0.0/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/2.0.0/"
},
"verbose_name": "2.0.0"
}
],
"built": true,
"downloads": {},
"hidden": false,
"id": 3271725,
"identifier": "7c9b1b5d391f6d7fae72274393eb25d1df96e546",
"privacy_level": "public",
"ref": "2.0.0",
"slug": "stable",
"type": "tag",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/sphinx-rtd-theme/version/stable/edit/"
},
"documentation": "https://sphinx-rtd-theme.readthedocs.io/en/stable/",
"vcs": "https://github.com/readthedocs/sphinx_rtd_theme/tree/2.0.0/"
},
"verbose_name": "stable"
}
}
}
+37 -1
View File
@@ -4,4 +4,40 @@ $(function () {
$("[data-toggle='rst-debug-badge']").on("click", function () {
$("[data-toggle='rst-versions']").toggleClass("rst-badge");
});
})
});
const EVENT_READTHEDOCS_ADDONS_DATA_READY = "readthedocs-addons-data-ready";
fetch("_static/addons.mocked.json", { method: "GET" })
.then((response) => {
if (!response.ok) {
throw new Error("Error downloading Read the Docs Addons mocked data");
}
return response.json();
})
.then((data) => {
return dispatchEvent(
EVENT_READTHEDOCS_ADDONS_DATA_READY,
new ReadTheDocsEventData(data),
);
});
// ``ReadTheDocsEventData`` and ``dispatchEvent``
// are borrowed and adapted from Read the Docs Addons.
// https://github.com/readthedocs/addons
class ReadTheDocsEventData {
constructor(data) {
this._data = data;
}
data() {
return this._data;
}
}
function dispatchEvent(eventName, data) {
const event = new CustomEvent(eventName, { detail: data });
document.dispatchEvent(event);
}
-55
View File
@@ -1,55 +0,0 @@
{%- extends "!layout.html" %}
{#-
This template exists as a way to implement a version menu without changing what
the theme normally renders the menu on local builds and on builds on Read the
Docs. This is for local testing purposes only.
#}
{%- block footer %}
{%- if not READTHEDOCS %}
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="{{ _('Versions') }}">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>{{ _('Versions') }}</dt>
{%- if test_versions %}
{%- for version in test_versions %}
<dd><a href="#">{{ version }}</a></dd>
{%- endfor %}
{%- else %}
<dd><a href="#">latest</a></dd>
<dd><a href="#">1.0</a></dd>
<dd><a href="#">1.1</a></dd>
{%- endif %}
</dl>
<dl>
<dt>{{ _('Downloads') }}</dt>
<dd><a href="#">PDF</a></dd>
<dd><a href="#">ePub</a></dd>
<dd><a href="#">HTML</a></dd>
</dl>
<dl>
{#- Translators: The phrase "Read the Docs" is not translated #}
<dt>{{ _('On Read the Docs') }}</dt>
<dd>
<a href="#">{{ _('Project Home') }}</a>
</dd>
<dd>
<a href="#">{{ _('Builds') }}</a>
</dd>
</dl>
<dl>
<dt>Debug</dt>
<dd><a href="#" data-toggle="rst-debug-badge">Swap badge position</a></dd>
</dl>
</div>
</div>
{%- endif %}
{%- endblock %}
+226 -3
View File
@@ -2,10 +2,233 @@
Changelog
*********
Development version (|development_version|)
===========================================
.. seealso:: :ref:`howto_upgrade`
.. |theme_version| replace:: 3.1.0
.. _release-3.1.0:
3.1.0
=====
* Added support for docutils 0.22
* Added support for Sphinx 9.x
.. _release-3.1.0rc2:
3.1.0rc2
========
* Added support for docutils 0.22
.. _release-3.1.0rc1:
3.1.0rc1
========
* Added support for Sphinx 9.x
.. _release-3.0.2:
3.0.2
=====
* Show current translation when the flyout is attached
* Fix JavaScript issue that didn't allow users to disable selectors
.. _release-3.0.1:
3.0.1
=====
* Use black color for text in selectors.
.. _release-3.0.0:
3.0.0
=====
Final version.
.. _release-3.0.0rc4:
3.0.0rc4
========
Fixes
-----
* Trigger "Read the Docs Search addon" when focusing the "Search docs" input in the navbar.
.. _release-3.0.0rc3:
3.0.0rc3
========
Fixes
-----
* Show hidden version in selector if it's the current active version
.. _release-3.0.0rc2:
3.0.0rc2
========
Added
-----
* Render version and language selectors below the documentation's title (top left).
This can be controlled via the new theme options ``version_selector`` and ``language_selector``.
.. _release-3.0.0rc1:
3.0.0rc1
========
Added
-----
* Added support for Sphinx 8.
* Added support for Python 3.12.
* Added support for docutils ``>0.18, <0.22``.
* Populate ``html_context`` with all the environment variables starting with ``READTHEDOCS_``.
Deprecations
------------
* Drop support for Sphinx ``<6.0``.
* Drop support for Python ``<3.8``.
* ``analytics_id`` and ``analytics_anonymize_ip`` are deprecated, use sphinxcontrib-googleanalytics_ instead.
* Drop support for all versions of Internet Explorer.
* Raise a warning when defining ``html_theme_path``. This was an old config that's not required anymore.
* ``extra_css_files`` is deprecated and support will be removed in a future version.
.. _sphinxcontrib-googleanalytics: https://pypi.org/project/sphinxcontrib-googleanalytics/
.. _release-2.1.0rc2:
2.1.0rc2
========
Added
-----
* Added ``flyout_display`` option to display the flyout
``attached`` (bottom of the sidebard) or ``hidden`` (default).
.. _release-2.1.0rc1:
2.1.0rc1
========
Added
-----
* Render the menu versions/languages selector (flyout)
using the new ``readthedocs-addons-data-ready`` Read the Docs Addons ``CustomEvent``.
Deprecations
------------
* Remove ``html5shiv``.
.. _release-2.0.0:
2.0.0
=====
Added
-----
* Support for Sphinx versions ``6.x`` and ``7.x``
* Support for docutils ``<=0.20``
Deprecations
------------
* The HTML4 writer is now officially deprecated. An error will be thrown if your
project configuration still uses the HTML4 writer.
* Support for Sphinx versions < 5.0 was removed.
* In addition, our supported dependencies will match the dependencies from our
lowest supported Sphinx release, version 5.0: Python >= 3.6 and docutils > 0.14 and < 0.19
.. _release-1.3.0:
1.3.0
=====
Added
-----
* Relaxed requirements to include Sphinx release ``7.0``
.. _release-1.2.2:
1.2.2
=====
Fixes
-----
* Require `sphinxcontrib-jquery>=4,<5` (#1446)
Added
-----
* Styling for `:menuselection:` (#1426)
.. _release-1.2.1:
1.2.1
=====
Fixes
-----
* Load jQuery correctly when using latest sphinxcontrib-jquery release (#1448)
.. _release-1.2.0:
1.2.0
=====
Dependency changes
------------------
* docutils 0.18 is supported. (#1381)
* Sphinx 6 support added
* Added ``sphinxcontrib-jquery`` as a dependency (#1385 #1421)
* Python 3.11 is officially supported and tested. (#1395)
* Python 3.4 and 3.5 are officially not supported (#1395)
Changes
-------
* Automatically use ``sphinxcontrib-jquery`` in Sphinx 6+ (#1399)
* Use new context vars ``logo_url``, ``favicon_url`` and ``root_doc`` when available (#1405)
* Translations updated: French, Hungarian, Croatian
* Translations added: Danish, Chinese (Taiwan)
Note for users of Sphinx<4
--------------------------
If you cannot use a more recent Sphinx release,
you should at least ensure you are using the most recent release for your major version.
Currently, these are Sphinx `1.8.6` and `2.4.5`.
Older releases may install unsupported versions of several dependencies, including Jinja2 and docutils.
Known issues
------------
In some cases, jQuery is not loaded with Sphinx 6 on Read the Docs.
Workaround: You need to add ``sphinx_rtd_theme`` to ``extensions`` in your ``conf.py``.
See `readthedocs.org issue #9654`_ for updates.
.. _readthedocs.org issue #9654: https://github.com/readthedocs/readthedocs.org/pull/9654
.. |development_version| replace:: 1.1.1
.. _release-1.1.1:
+3 -8
View File
@@ -9,7 +9,6 @@ import re
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 _
@@ -28,7 +27,6 @@ extensions = [
'sphinx.ext.autosummary',
'sphinx.ext.mathjax',
'sphinx.ext.viewcode',
'sphinxcontrib.httpdomain',
'sphinx_rtd_theme',
]
@@ -49,6 +47,7 @@ else:
intersphinx_mapping = {
'rtd': ('https://docs.readthedocs.io/en/stable/', None),
'rtd-dev': ('https://dev.readthedocs.io/en/stable/', None),
'sphinx': ('https://www.sphinx-doc.org/en/master/', None),
}
@@ -62,15 +61,11 @@ html_context = {}
if not 'READTHEDOCS' in os.environ:
html_static_path = ['_static/']
html_js_files = ['debug.js']
# Add fake versions for local QA of the menu
html_context['test_versions'] = list(map(
lambda x: str(x / 10),
range(1, 100)
))
html_context["DEBUG"] = True
html_logo = "demo/static/logo-wordmark-light.svg"
html_show_sourcelink = True
html_favicon = "demo/static/favicon.ico"
htmlhelp_basename = slug
+45 -2
View File
@@ -16,11 +16,13 @@ For example:
'analytics_id': 'G-XXXXXXXXXX', # Provided by Google in your dashboard
'analytics_anonymize_ip': False,
'logo_only': False,
'display_version': True,
'prev_next_buttons_location': 'bottom',
'style_external_links': False,
'vcs_pageview_mode': '',
'style_nav_header_background': 'white',
'flyout_display': 'hidden',
'version_selector': True,
'language_selector': True,
# Toc options
'collapse_navigation': True,
'sticky_navigation': True,
@@ -101,7 +103,11 @@ Miscellaneous options
:type: string
.. deprecated:: 3.0.0
The ``analytics_id`` option is deprecated, use the sphinxcontrib-googleanalytics_ extension instead.
.. _gtag.js: https://developers.google.com/gtagjs
.. _sphinxcontrib-googleanalytics: https://pypi.org/project/sphinxcontrib-googleanalytics/
.. confval:: analytics_anonymize_ip
@@ -110,6 +116,9 @@ Miscellaneous options
:type: boolean
:default: ``False``
.. deprecated:: 3.0.0
The ``analytics_anonymize_ip`` option is deprecated, use the sphinxcontrib-googleanalytics_ extension instead.
.. confval:: canonical_url
This will specify a `canonical URL`_ meta link element to tell search
@@ -131,7 +140,11 @@ Miscellaneous options
If ``True``, the version number is shown at the top of the sidebar.
:type: boolean
:default: ``True``
:default: ``False``
.. deprecated:: 3.0.0
Removed in favor of ``version_selector`` and ``language_selector``.
.. confval:: logo_only
@@ -174,6 +187,36 @@ Miscellaneous options
:type: string
:default: ``#2980B9``
.. confval:: flyout_display
Specify how to display the flyout (language and version selector).
This can be either ``attached`` or ``hidden``.
``attached`` means that it will show the flyout in the bottom of the sidebar.
You will need to disable the default `Read the Docs flyout <https://docs.readthedocs.io/en/stable/flyout-menu.html>`_ in order to not have 2 flyouts showing.
:type: str
:default: ``hidden``
.. confval:: version_selector
Display a version selector below the title.
This feature makes usage of `Read the Docs Addons <https://docs.readthedocs.io/page/addons.html>`_ for this,
so it's required the documentation to be hosted on Read the Docs.
It only appears when there are more than 1 active version.
:type: boolean
:default: ``True``
.. confval:: language_selector
Display a language selector below the title.
This feature makes usage of `Read the Docs Addons <https://docs.readthedocs.io/page/addons.html>`_ for this,
so it's required the documentation to be served on Read the Docs.
It only appears when there is more than 1 active language.
:type: boolean
:default: ``True``
File-wide metadata
==================
+59 -34
View File
@@ -3,7 +3,7 @@ Contributing
************
This project follows the Read the Docs :doc:`code of conduct
<rtd:code-of-conduct>`. If you are not familiar with our code of conduct policy,
<rtd-dev:code-of-conduct>`. If you are not familiar with our code of conduct policy,
take a minute to read the policy before starting with your first contribution.
.. tip::
@@ -66,7 +66,7 @@ can be used to test built assets:
.. _Sphinx: http://www.sphinx-doc.org/en/stable/
_dockerized-build::
.. _dockerized-build:
Dockerized development
======================
@@ -86,7 +86,7 @@ Use the following steps:
# Runs the development webserver
$ docker-compose run sphinx_rtd_theme dev
# If you want to copy stuff out of the Docker environment, run this make
# target or read the actual Makefile to see what is going on.
# We suggest running this command every time that you want to quickly build
@@ -103,20 +103,18 @@ 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``
* Multiple, modern browsers should be tested.
* Multiple viewport sizes should be tested for changes.
We support large, tablet, and mobile viewport sizes
* We currently support only HTML5 writer.
* Multiple major versions of Sphinx should be tested.
We currently support Sphinx ``>=6.0``
It's easiest to test combinations of dependency versions using ``tox``:
.. code:: console
% tox -e py3-sphinx34-html4
% tox -e py312-sphinx74
If the tests and build are successful, you can view the built documentation at
the directory noted by Sphinx:
@@ -125,9 +123,9 @@ the directory noted by Sphinx:
build succeeded, 10 warnings.
The HTML pages are in .tox/py3-sphinx34-html4/tmp/html.
The HTML pages are in .tox/py312-sphinx74/tmp/html.
___________________________ summary ___________________________
py3-sphinx34-html4: commands succeeded
py312-sphinx74: commands succeeded
congratulations :)
You can then open up this path with a series of browsers to test.
@@ -137,12 +135,12 @@ multiple ``tox`` environments, and open both up for comparison:
.. code:: console
% tox -e py3-sphinx34-html4
% tox -e py312-sphinx62
...
% tox -e py3-sphinx34-html5
% tox -e py312-sphinx74
...
% firefox .tox/py3-sphinx34-html4/tmp/html/index.html
% firefox .tox/py3-sphinx34-html5/tmp/html/index.html
% firefox .tox/py312-sphinx62/tmp/html/index.html
% firefox .tox/py312-sphinx74/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
@@ -155,28 +153,25 @@ For example, to test against the tag ``0.5.2``:
.. code:: console
% git checkout 0.5.2
% tox -e py3-sphinx34-html4-qa
% tox -e py310-sphinx53-qa
...
% git checkout feature/example-pull-request
% tox -e py3-sphinx34-html4
% tox -e py310-sphinx53
...
% firefox .tox/py3-sphinx34-html4-qa/tmp/html/index.html
% firefox .tox/py3-sphinx34-html4/tmp/html/index.html
% firefox .tox/py310-sphinx53-qa/tmp/html/index.html
% firefox .tox/py310-sphinx53/tmp/html/index.html
Currently, the most important environments to QA are:
.. This list is purposely shorter than what we describe above. If we test all of
the cases above, we'll be here all day. Python 3, HTML4/5 writer, and latest
the cases above, we'll be here all day. Python 3, 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``
* ``py312-sphinx62``
* ``py312-sphinx74``
* ``py312-sphinx80``
* ``py312-sphinxlatest``
* ``py312-sphinxdev``
Translations
============
@@ -184,7 +179,7 @@ Translations
Translations are managed using `Transifex`_. You can join any of the existing
language teams or request a new language is added to the project. For more
information on our translation standards, see our docs on
:doc:`rtd:development/i18n`
:doc:`rtd-dev:i18n`
Periodically, core team should update the translation files outside our normal
releases. Someone from the core team, with write access to Transifex, should run
@@ -200,11 +195,39 @@ put up for review.
.. _Transifex: https://www.transifex.com/readthedocs/sphinx-rtd-theme
Versioning
==========
..
TODO make these instructions organization wide. We've talked about
standardizing packaging version and tooling here (bumpver instead of
bump2version).
In between releases, the package version specified will always be a alpha
release, matching ``1.1.1alpha1``.
As pull requests are merged and the release impact changes, this version will
incremented ahead of release. For example, if we merge a new feature pull
request, we'd run ``bump2version minor`` to increment ``1.1.1alpha1`` to
``1.2.0alpha1``.
To put out a release for testing, we will upload a release candidate. We would
run ``bump2version release`` to increment ``1.2.0alpha1`` to ``1.2.0rc1``.
After a testing period, the release candidate can become a full release. We
would run ``bump2version release`` again to increment ``1.2.0rc1`` to ``1.2.0``.
After the release process below, we increment the version again, so that the
development version -- the version found in the repository -- is always greater
than the most recent release. We follow up with another pull request by running
``bump2version patch``, which increments ``1.2.0`` to ``1.2.1alpha1``.
Releasing the theme
===================
To release a new version of the theme, core team will take the following steps:
#. Install the required depedencies with ``pip install '.[dev]'``.
#. Bump the version by running ``bump2version [major|minor|patch|dev]``.
This will automatically increase the correct part(s) of the version number,
you do not need to specify the exact version number.
@@ -222,7 +245,9 @@ To release a new version of the theme, core team will take the following steps:
version. But take care that it isn't also bumping versions of dependencies
in ways that are risky to the release. *If* ``package-lock.json`` changes, you
need to commit it to git and tag it together with your release.
#. Commit these changes.
#. Commit these changes to a pull request.
#. Merge the pull request after review.
#. Check out ``master`` branch locally for tagging. **Remember to pull from remote**.
#. Tag the release in git: ``git tag $NEW_VERSION``.
#. Push the tag to GitHub: ``git push --tags origin``.
#. Upload the package to PyPI:
@@ -235,7 +260,7 @@ To release a new version of the theme, core team will take the following steps:
#. Finally, open a new pull request updating the development release version to
the next patch by running ``bump2version patch``. Open a pull request with
this change.
this change. See `Versioning`_ above for more details.
.. _PEP440: https://www.python.org/dev/peps/pep-0440/
.. _semantic versioning: http://semver.org/
+9 -27
View File
@@ -7,19 +7,11 @@ API documentation and generated content
:mod:`test_py_module`
=====================
.. only:: python3
.. automodule:: test_py_module.test
:members:
:private-members:
:special-members:
.. automodule:: test_py_module.test
:members:
:private-members:
:special-members:
.. only:: python2
.. automodule:: test_py_module.test_py27
:members:
:private-members:
:special-members:
C++ API
=======
@@ -107,7 +99,7 @@ JavaScript API
Generated Index
===============
Part of the sphinx build process in generate and index file: :ref:`genindex`.
Part of the sphinx build process is to generate an index file: :ref:`genindex`.
Optional parameter args
@@ -153,18 +145,8 @@ Sphinx Extensions
sphinx.ext.autosummary
----------------------
.. only:: python3
.. autosummary::
.. autosummary::
test_py_module.test.add_numbers
test_py_module.test.subtract_numbers
test_py_module.test.Foo
.. only:: python2
.. autosummary::
test_py_module.test_py27.add_numbers
test_py_module.test_py27.subtract_numbers
test_py_module.test_py27.Foo
test_py_module.test.add_numbers
test_py_module.test.subtract_numbers
test_py_module.test.Foo
+3 -3
View File
@@ -27,16 +27,16 @@ text (generated by processing errors; this one is intentional).
Also with ``sphinx.ext.autodoc``, which I use in the demo, I can link to :class:`test_py_module.test.Foo`.
It will link you right to my code documentation for it.
The default role for interpreted text is `Title Reference`. Here are some explicit interpreted text roles:
The default role for [1]_ interpreted text is `Title Reference`. Here are some explicit interpreted text roles:
a PEP reference (:PEP:`287`); an RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`;
and explicit roles for :emphasis:`standard` :strong:`inline` :literal:`markup`.
GUI labels are a useful way to indicate that :guilabel:`Some action` is to be taken by the user.
The GUI label should not run over ``line-height`` so as not to :guilabel:`interfere` with text from adjacent lines.
Key-bindings indicate that the read is to press a button on the keyboard or mouse,
Key-bindings indicate that [1]_ the read is to press a button on the keyboard or mouse,
for example :kbd:`MMB` and :kbd:`Shift-MMB`. Another useful markup to indicate a user action
is to use ``menuselection`` this can be used to show short and long menus in software.
is to use ``menuselection`` this [1]_ can [1]_ be [1]_ used [1]_ to [1]_ show [1]_ short [1]_ and long menus in software.
For example, and ``menuselection`` can be seen here that breaks is too long to fit on this line.
:menuselection:`My --> Software --> Some menu --> Some sub menu 1 --> sub menu 2`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

-152
View File
@@ -1,152 +0,0 @@
# -*- coding: utf-8 -*-
"""
This module will overwrite test.py for Python 2.7 builds.
Type signatures cause autodoc to break in Python 2.7 documentation builds, so they are removed here.
Test Module for sphinx_rtd_theme."""
class Foo:
"""Docstring for class Foo.
This text tests for the formatting of docstrings generated from output
``sphinx.ext.autodoc``. Which contain reST, but sphinx nests it in the
``<dl>``, and ``<dt>`` tags. Also, ``<tt>`` is used for class, method names
and etc, but those will *always* have the ``.descname`` or
``.descclassname`` class.
Term
It is also possible to include definitions inside docstrings.
They should be styled as a normal definition list.
:Field List:
It is also possible to include definitions inside docstrings.
They should be styled as a normal definition list.
.. [1] A footnote contains body elements, consistently indented by at
least 3 spaces.
.. [Citation] A citation contains body elements, consistently indented by at
least 3 spaces.
Normal ``<tt>`` (like the <tt> I just wrote here) needs to be shown with
the same style as anything else with ````this type of markup````.
It's common for programmers to give a code example inside of their
docstring::
from test_py_module import Foo
myclass = Foo()
myclass.dothismethod('with this argument')
myclass.flush()
print(myclass)
Here is a link to :py:meth:`capitalize`.
Here is a link to :py:meth:`__init__`.
"""
#: Doc comment for class attribute Foo.bar.
#: It can have multiple lines.
bar = 1
flox = 1.5 #: Doc comment for Foo.flox. One line only.
baz = 2
"""Docstring for class attribute Foo.baz."""
def __init__(self, qux, spam=False):
"""Start the Foo.
:param qux: The first argument to initialize class.
:type qux: string
:param spam: Spam me yes or no...
:type spam: bool
"""
#: Doc comment for instance attribute qux.
self.qux = 3
self.spam = 4
"""Docstring for instance attribute spam."""
def add(self, val1, val2):
"""Return the added values.
:param val1: First number to add.
:type val1: int
:param val2: Second number to add.
:type val2: int
:rtype: int
The parameters of this method are described in the parameter list.
"""
return val1 + val2
def capitalize(self, myvalue):
"""Return a string as uppercase.
:param myvalue: String to change
:type myvalue: string
:rtype: string
"""
return myvalue.upper()
def another_function(self, a, b, **kwargs):
"""
Here is another function.
:param a: The number of green hats you own.
:type a: int
:param b: The number of non-green hats you own.
:type b: int
:param kwargs: Additional keyword arguments. Each keyword parameter
should specify the name of your favorite cuisine.
The values should be floats, specifying the mean price
of your favorite dish in that cooking style.
:type kwargs: float
:returns: A 2-tuple. The first element is the mean price of all dishes
across cuisines. The second element is the total number of
hats you own: :math:`a + b`.
:rtype: tuple
:raises ValueError: When ``a`` is not an integer.
.. versionadded:: 1.0
This was added in 1.0
.. versionchanged:: 2.0
This was changed in 2.0
.. deprecated:: 3.0
This is deprecated since 3.0
"""
return sum(kwargs.values()) / len(kwargs), a + b
def add_numbers(a, b):
"""Add two numbers together
:param a: The first number
:param b: The second number
Here is some more text.
"""
return a + b
def subtract_numbers(a, b):
"""Subtract two numbers
:param a: The first number
:param b: The second number
"""
return a - b
+55 -28
View File
@@ -36,13 +36,8 @@ combinations.
Unsupported browser/operating system combinations include:
Internet Explorer (any OS, versions <=10)
**Unsupported.** IE11 is the last partially supported version. We do no
testing on prior versions.
Internet Explorer (any OS, version 11)
We currently only partially support IE11, and only test for major bugs.
Support will be removed in the :ref:`2.0.0` release.
Internet Explorer (any OS, any version)
Support was removed in the :ref:`roadmap-release-3.0.0` release.
Opera (any OS, any version)
**Community support only.** We do not receive enough traffic with this
@@ -62,11 +57,23 @@ The theme officially supports the following dependencies in your Sphinx project:
* - Dependency
- Versions
* - Python
- 2.7 or 3.6 or greater
- 3.8 or greater
* - Sphinx
- 1.7 up to at least 4.1
- 6 or greater
* - docutils
- Up to 0.17
- > 0.18, < 0.23
.. deprecated:: 3.0
Sphinx < 6 support removed
.. deprecated:: 2.0
Sphinx < 5 support removed
.. deprecated:: 2.0
Python < 3.6 support removed
.. deprecated:: 2.0
docutils < 0.14 support removed
.. versionadded:: 1.0
Sphinx 4.0 support added
@@ -90,11 +97,11 @@ version:
.. code:: console
$ pip install "sphinx_rtd_theme<=2.0.0"
$ pip install "sphinx_rtd_theme<2.0.0"
.. _semantic versioning: http://semver.org/
.. _release-1.0.0:
.. _roadmap-release-1.0.0:
1.0.0
~~~~~
@@ -102,7 +109,7 @@ version:
:Planned release date: August 2021
This release will be a slightly backwards incompatible release to follow the
:ref:`0.5.2` release. It will drop support for Sphinx 1.6, which is a rather old
:ref:`release-0.5.2` release. It will drop support for Sphinx 1.6, which is a rather old
release at this point.
This version will add official support for the Sphinx 4.x release series and
@@ -120,38 +127,37 @@ Direct installation is deprecated
We plan to start putting development releases up on PyPI more frequently, so
that installation from the theme source repository is no longer necessary.
Built assets are tentatively planned to be removed in version :ref:`3.0.0`:.
Built assets are tentatively planned to be removed in version :ref:`roadmap-release-3.0.0`:.
HTML4 support is deprecated
Support for the Sphinx HTML4 writer will be removed in the :ref:`2.0.0`
Support for the Sphinx HTML4 writer will be removed in the :ref:`roadmap-release-2.0.0`
release.
.. _release-1.1.0:
.. _roadmap-release-1.1.0:
1.1.0
~~~~~
:Planned release date: 2021 Q3
We aim to follow up release :ref:`1.0.0` with at least one bug fix release in
We aim to follow up release :ref:`release-1.0.0` with at least one bug fix release in
the 1.x release series. The 1.1 release will not be adding any major features
and will instead mark the last release targeting projects with old dependencies
like Sphinx 1.8, HTML4, or required support for IE11.
.. _release-2.0.0:
.. _roadmap-release-2.0.0:
2.0.0
~~~~~
:Planned release date: 2022 Q1
:Planned release date: 2023 Q3
This release will mark the beginning of a new round of feature development, as
well as a number of backward incompatible changes and deprecations.
This release will drop support for old Python and Sphinx versions.
Of note, the following backwards incompatible changes are planned for this
Note the following backwards incompatible changes are planned for this
release:
Sphinx 1.x, Sphinx 2.x, and Docutils 0.16 will not be tested
Python < 3.6, Sphinx < 5 and Docutils < 0.14 will not be tested
Official support will drop for these version, though they may still continue
to work. Theme developers will not be testing these versions any longer.
@@ -160,21 +166,42 @@ HTML4 support will be removed
and builds attempting to use the HTML4 writer will fail. If you are still
using the HTML4 writer, or have the ``html4_writer = True`` option in your
Sphinx configuration file, you will need to either remove this option or pin
your dependency to ``sphinx_rtd_theme<=2.0.0`` until you can.
your dependency to ``sphinx_rtd_theme<=3`` until you can.
This option was suggested in the past to work around issues with HTML5
support and should no longer be required to use a modern combination of this
theme and Sphinx.
.. _release-3.0.0:
.. _roadmap-release-3.0.0:
3.0.0
~~~~~
This release is not yet planned, however there are plans to potentially replace
Wyrm with Bootstrap in a release after 2.0.
:Planned release date: 2024 Q3
This release will drop support for old Python and Sphinx versions,
and will add support for new ones.
Sphinx 5, Python < 3.8 and docutils < 0.18 support will be removed
Sphinx 5 is the latest version that supports Python 3.6 and 3.7,
and docutils < 0.18.
Internet Explorer 11 support will be dropped
`IE11 reached end of life on 14 June 20222 <https://endoflife.date/internet-explorer>`_,
so we are not supporting it on newer versions,
starting on 3.0.0.
.. _roadmap-release-4.0.0:
4.0.0
~~~~~
:Planned release date: 2024 Q2
This release is not yet planned.
There are plans to potentially replace Wyrm with Bootstrap in a release after 3.0.
Also tentatively planned for this release is finally removing built CSS and
JavaScript assets from our repository. This will remove the ability to install
the package directly from GitHub, and instead users will be advised to install
development releases from PyPI
development releases from PyPI.
+25 -20
View File
@@ -1,18 +1,19 @@
Installation
============
Install the package (or add it to your ``requirements.txt`` file):
How to install and use the theme
--------------------------------
Install the ``sphinx_rtd_theme`` package (or add it to your ``requirements.txt`` file):
.. code:: console
$ pip install sphinx_rtd_theme
In your ``conf.py`` file:
In your Sphinx project's ``conf.py`` file, add ``sphinx_rtd_theme`` to the list of enabled extensions and as the active theme:
.. code:: python
import sphinx_rtd_theme
extensions = [
...
'sphinx_rtd_theme',
@@ -27,27 +28,31 @@ In your ``conf.py`` file:
:ref:`supported-dependencies`
Officially Supported versions of Python, Sphinx, and other dependencies.
.. note::
Adding this theme as an extension is what enables localization of theme
strings in your translated output. If these strings are not translated in
your output, either we lack the localized strings for your locale, or you
are using an old version of the theme.
Adding this theme as an extension activates the ``sphinxcontrib-jquery`` extension,
which is required for search, smooth scrolling, and the flyout menu.
If any of these features don't work, make sure you have the theme declared in your ``extensions``.
Via Git or Download
-------------------
.. More context for this note:
* https://github.com/readthedocs/sphinx_rtd_theme/issues/1434#issuecomment-2288359582
* https://github.com/readthedocs/sphinx_rtd_theme/issues/1222#issuecomment-2296703160
.. warning::
Installing directly from the repository source is deprecated and is not
recommended. Static assets won't be included in the repository starting in
release :ref:`3.0.0`.
.. _howto_upgrade:
Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into your documentation at
``docs/_themes/sphinx_rtd_theme`` then add the following two settings to your Sphinx
``conf.py`` file:
How to upgrade
--------------
.. code:: python
Adding ``sphinx-rtd-theme`` to your project's dependencies will make pip install the latest compatible version of the theme.
If you want to test a **pre-release**, you need to be explicit about the version you specify.
Otherwise, pip will ignore pre-releases. Add for instance ``sphinx-rtd-theme==1.1.0b3`` to test a pre-release.
.. tip::
We recommend that you pin the version of Sphinx that your project is built with.
We won't release sphinx-rtd-theme without marking its compatibility with Sphinx. So if you do not pin ``sphinx-rtd-theme`` itself, you will always get the *latest compatible* release.
More information is available in Read the Docs' documentation on :doc:`rtd:guides/reproducible-builds`.
html_theme = "sphinx_rtd_theme"
html_theme_path = ["_themes", ]
+1 -2
View File
@@ -1,2 +1 @@
sphinx>=3.0
sphinxcontrib-httpdomain
sphinx~=9.0
+338 -253
View File
File diff suppressed because it is too large. Load diff
+1 -4
View File
@@ -1,7 +1,7 @@
{
"name": "sphinx_rtd_theme",
"main": "js/theme.js",
"version": "1.1.1",
"version": "3.1.0",
"scripts": {
"dev": "webpack-dev-server --open --config webpack.dev.js",
"build": "webpack --config webpack.prod.js",
@@ -17,15 +17,12 @@
"url": "https://github.com/readthedocs/sphinx_rtd_theme/issues"
},
"homepage": "https://github.com/readthedocs/sphinx_rtd_theme",
"dependencies": {},
"devDependencies": {
"bourbon": "~4.3",
"bourbon-neat": "~1.9",
"copy-webpack-plugin": "^5.1.2",
"css-loader": "^3.6.0",
"file-loader": "^3.0.1",
"font-awesome": "^4.7.0",
"html5shiv": "^3.7.3",
"imports-loader": "^0.8.0",
"jquery": "^3.6.0",
"lato-font": "^3.0.0",
+5
View File
@@ -0,0 +1,5 @@
[pytest]
filterwarnings =
# Ignore external dependencies warning deprecations
# Sphinx
# ignore::sphinx.deprecation.RemovedInSphinx90Warning
+13 -10
View File
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 1.1.1
current_version = 3.1.0
commit = false
tag = false
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)((?P<release>[a-z]+)(?P<dev>\d+))?
@@ -27,13 +27,15 @@ classifiers =
Environment :: Console
Environment :: Web Environment
Intended Audience :: Developers
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3.13
Programming Language :: Python :: 3.14
Operating System :: OS Independent
Topic :: Documentation
Topic :: Software Development :: Documentation
@@ -42,19 +44,20 @@ classifiers =
include_package_data = True
zip_safe = False
packages = sphinx_rtd_theme
python_requires = >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
python_requires = >=3.8
install_requires =
sphinx >=1.6,<6
docutils <0.18
sphinx >=6,<10
docutils >0.18,<0.23
sphinxcontrib-jquery >=4,<5
tests_require =
pytest
[options.extras_require]
dev =
transifex-client
sphinxcontrib-httpdomain
bump2version
wheel
twine
[options.entry_points]
sphinx.html_themes =
@@ -111,5 +114,5 @@ search = "version": "{current_version}",
replace = "version": "{new_version}",
[bumpversion:file:docs/changelog.rst]
search = .. |development_version| replace:: {current_version}
replace = .. |development_version| replace:: {new_version}
search = .. |theme_version| replace:: {current_version}
replace = .. |theme_version| replace:: {new_version}
+1 -1
View File
@@ -86,7 +86,7 @@ class TransifexCommand(distutils.cmd.Command):
setup(
version='1.1.1',
version='3.1.0',
cmdclass={
'update_translations': UpdateTranslationsCommand,
'transifex': TransifexCommand,
+54 -20
View File
@@ -4,6 +4,7 @@ Sphinx Read the Docs theme.
From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
"""
import os
from os import path
from sys import version_info as python_version
@@ -12,7 +13,7 @@ from sphinx.locale import _
from sphinx.util.logging import getLogger
__version__ = '1.1.1'
__version__ = '3.1.0'
__version_full__ = __version__
logger = getLogger(__name__)
@@ -20,6 +21,10 @@ logger = getLogger(__name__)
def get_html_theme_path():
"""Return list of HTML theme paths."""
logger.warning(
_('Calling get_html_theme_path is deprecated. If you are calling it to define html_theme_path, you are safe to remove that code.')
)
cur_dir = path.abspath(path.dirname(path.dirname(__file__)))
return cur_dir
@@ -31,40 +36,69 @@ def config_initiated(app, config):
_('The canonical_url option is deprecated, use the html_baseurl option from Sphinx instead.')
)
if theme_options.get("analytics_id"):
logger.warning(
_('The analytics_id option is deprecated, use the sphinxcontrib-googleanalytics extension instead.')
)
if theme_options.get("analytics_anonymize_ip"):
logger.warning(
_('The analytics_anonymize_ip option is deprecated, use the sphinxcontrib-googleanalytics extension instead.')
)
if "extra_css_files" in config.html_context:
logger.warning(
_('The extra_css_file option is deprecated, use the html_css_files option from Sphinx instead.')
)
def extend_html_context(app, pagename, templatename, context, doctree):
# Add ``sphinx_version_info`` tuple for use in Jinja templates
context['sphinx_version_info'] = sphinx_version
# Inject all the Read the Docs environment variables in the context:
# https://docs.readthedocs.io/en/stable/reference/environment-variables.html
context['READTHEDOCS'] = os.environ.get("READTHEDOCS", False) == "True"
if context['READTHEDOCS']:
for key, value in os.environ.items():
if key.startswith("READTHEDOCS_"):
context[key] = value
# 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 sphinx_version <= (2, 0, 0):
logger.warning("Sphinx 1.x is deprecated with sphinx_rtd_theme, update to Sphinx 2.x or greater")
if not app.config.html_experimental_html5_writer:
logger.warning("'html4_writer' is deprecated with sphinx_rtd_theme")
else:
if app.config.html4_writer:
logger.warning("'html4_writer' is deprecated with sphinx_rtd_theme")
logger.error("Python 2 is not supported with sphinx_rtd_theme, update to Python 3.")
app.require_sphinx('6.0')
if app.config.html4_writer:
logger.error("'html4_writer' is not supported with sphinx_rtd_theme.")
# Since Sphinx 6, jquery isn't bundled anymore and we need to ensure that
# the sphinxcontrib-jquery extension is enabled.
# See: https://dev.readthedocs.io/en/latest/design/sphinx-jquery.html
if sphinx_version >= (6, 0, 0):
# Documentation of Sphinx guarantees that an extension is added and
# enabled at most once.
# See: https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.setup_extension
app.setup_extension("sphinxcontrib.jquery")
# However, we need to call the extension's callback since setup_extension doesn't do it
# See: https://github.com/sphinx-contrib/jquery/issues/23
from sphinxcontrib.jquery import add_js_files as jquery_add_js_files
jquery_add_js_files(app, app.config)
# Register the theme that can be referenced without adding a theme path
app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))
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)
# 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"
app.config.html_permalinks_icon = "\uf0c1"
# Extend the default context when rendering the templates.
app.connect("html-page-context", extend_html_context)
+1 -1
View File
@@ -22,7 +22,7 @@
<div role="navigation" aria-label="{{ _('Page navigation') }}">
<ul class="wy-breadcrumbs">
{%- block breadcrumbs %}
<li><a href="{{ pathto(master_doc) }}" class="icon icon-home"></a></li>
<li><a href="{{ pathto(master_doc) }}" class="icon icon-home" aria-label="Home"></a></li>
{%- for doc in parents %}
<li class="breadcrumb-item"><a href="{{ doc.link|e }}">{{ doc.title }}</a></li>
{%- endfor %}
+38 -68
View File
@@ -7,16 +7,18 @@
{%- set titlesuffix = "" %}
{%- endif %}
{%- set lang_attr = 'en' if language == None else (language | replace('_', '-')) %}
{%- set sphinx_writer = 'writer-html5' if html5_doctype else 'writer-html4' -%}
{# Build sphinx_version_info tuple from sphinx_version string in pure Jinja #}
{%- set (_ver_major, _ver_minor) = (sphinx_version.split('.') | list)[:2] | map('int') -%}
{%- set sphinx_version_info = (_ver_major, _ver_minor, -1) -%}
<!DOCTYPE html>
<html class="{{ sphinx_writer }}" lang="{{ lang_attr }}" >
<html class="writer-html5" lang="{{ lang_attr }}"{% if sphinx_version_info >= (7, 2) %} data-content_root="{{ content_root }}"{% endif %}>
<head>
<meta charset="utf-8" />
{%- if READTHEDOCS and not embedded %}
<meta name="readthedocs-addons-api-version" content="1">
{%- endif %}
{{- metatags }}
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{%- block htmltitle %}
@@ -24,30 +26,28 @@
{%- endblock -%}
{#- CSS #}
{%- if sphinx_version_info < (4, 0) -%}
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
{%- endif %}
{%- for css 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 %} />
{%- for css_file in css_files %}
{%- if css_file|attr("filename") %}
{{ css_tag(css_file) }}
{%- else %}
<link rel="stylesheet" href="{{ pathto(css, 1) }}" type="text/css" />
<link rel="stylesheet" href="{{ pathto(css_file, 1)|escape }}" type="text/css" />
{%- endif %}
{%- endfor %}
{%- for cssfile in extra_css_files %}
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
{#
"extra_css_files" is an undocumented Read the Docs theme specific option.
There is no need to check for ``|attr("filename")`` here because it's always a string.
Note that this option should be removed in favor of regular ``html_css_files``:
https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-html_css_files
#}
{%- for css_file in extra_css_files %}
<link rel="stylesheet" href="{{ pathto(css_file, 1)|escape }}" type="text/css" />
{%- endfor -%}
{#- FAVICON #}
{%- if favicon %}
{%- if sphinx_version_info < (4, 0) -%}
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
{%- else %}
{%- if favicon_url %}
<link rel="shortcut icon" href="{{ favicon_url }}"/>
{%- endif %}
{%- endif -%}
{%- endif %}
{#- CANONICAL URL (deprecated) #}
{%- if theme_canonical_url and not pageurl %}
@@ -61,36 +61,16 @@
{#- JAVASCRIPTS #}
{%- block scripts %}
<!--[if lt IE 9]>
<script src="{{ pathto('_static/js/html5shiv.min.js', 1) }}"></script>
<![endif]-->
{%- if not embedded %}
{# XXX Sphinx 1.8.0 made this an external js-file, quick fix until we refactor the template to inherert more blocks directly from sphinx #}
{%- if sphinx_version_info >= (1, 8) -%}
{%- if sphinx_version_info < (4, 0) -%}
<script id="documentation_options" data-url_root="{{ url_root }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script>
{%- endif -%}
{%- for scriptfile in script_files %}
{{ js_tag(scriptfile) }}
{%- endfor %}
{%- else %}
<script>
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'{{ url_root }}',
VERSION:'{{ release|e }}',
LANGUAGE:'{{ language }}',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
HAS_SOURCE: {{ has_source|lower }},
SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}'
};
</script>
{%- for scriptfile in script_files %}
<script src="{{ pathto(scriptfile, 1) }}"></script>
{%- endfor %}
{%- endif %}
{%- for scriptfile in script_files %}
{{ js_tag(scriptfile) }}
{%- endfor %}
<script src="{{ pathto('_static/js/theme.js', 1) }}"></script>
{%- if READTHEDOCS or DEBUG %}
<script src="{{ pathto('_static/js/versions.js', 1) }}"></script>
{%- endif %}
{#- OPENSEARCH #}
{%- if use_opensearch %}
<link rel="search" type="application/opensearchdescription+xml"
@@ -133,32 +113,22 @@
<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') }}"/>
{# the logo helper function was removed in Sphinx 6 and deprecated since Sphinx 4 #}
{# the master_doc variable was renamed to root_doc in Sphinx 4 (master_doc still exists in later Sphinx versions) #}
{%- set _logo_url = logo_url|default(pathto('_static/' + (logo or ""), 1)) %}
{%- set _root_doc = root_doc|default(master_doc) %}
<a href="{{ pathto(_root_doc) }}"{% if not theme_logo_only %} class="icon icon-home"{% endif %}>
{% if not theme_logo_only %}{{ project }}{% endif %}
{%- if logo or logo_url %}
<img src="{{ _logo_url }}" class="logo" alt="{{ _('Logo') }}"/>
{%- endif %}
{%- endif %}
</a>
{%- if theme_display_version %}
{%- set nav_version = version %}
{%- if READTHEDOCS and current_version %}
{%- set nav_version = current_version %}
{%- endif %}
{%- if nav_version %}
<div class="version">
{{ nav_version }}
{%- if READTHEDOCS or DEBUG %}
{%- if theme_version_selector or theme_language_selector %}
<div class="switch-menus">
<div class="version-switch"></div>
<div class="language-switch"></div>
</div>
{%- endif %}
{%- endif %}
Binary file not shown.
@@ -0,0 +1,206 @@
# English translations for sphinx_rtd_theme.
# Copyright (C) 2019 ORGANIZATION
# This file is distributed under the same license as the sphinx_rtd_theme
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
#
# Translators:
# Benjamin Bach <benjaoming@gmail.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Benjamin Bach <benjaoming@gmail.com>, 2023\n"
"Language-Team: Danish (https://www.transifex.com/readthedocs/teams/101354/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.11.0\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. This is an ARIA section label for page links, including previous/next page
#. link and links to GitHub/GitLab/etc.
#: sphinx_rtd_theme/breadcrumbs.html:22
msgid "Page navigation"
msgstr "Navigation"
#: sphinx_rtd_theme/breadcrumbs.html:37 sphinx_rtd_theme/breadcrumbs.html:39
msgid "Edit on GitHub"
msgstr "Ret på GitHub"
#: sphinx_rtd_theme/breadcrumbs.html:44 sphinx_rtd_theme/breadcrumbs.html:46
msgid "Edit on Bitbucket"
msgstr "Ret på Bitbucket"
#: sphinx_rtd_theme/breadcrumbs.html:51 sphinx_rtd_theme/breadcrumbs.html:53
msgid "Edit on GitLab"
msgstr "Ret på GitLab"
#: sphinx_rtd_theme/breadcrumbs.html:56 sphinx_rtd_theme/breadcrumbs.html:58
msgid "View page source"
msgstr "Vis sidekilde"
#. This is an ARIA section label for sequential page links, such as previous
#. and next page links.
#: sphinx_rtd_theme/breadcrumbs.html:67
msgid "Sequential page navigation"
msgstr "Sekventiel navigation"
#: sphinx_rtd_theme/breadcrumbs.html:69 sphinx_rtd_theme/footer.html:6
msgid "Previous"
msgstr "Forrige"
#: sphinx_rtd_theme/breadcrumbs.html:72 sphinx_rtd_theme/footer.html:9
msgid "Next"
msgstr "Næste"
#. This is an ARIA section label for the footer section of the page.
#: sphinx_rtd_theme/footer.html:4
msgid "Footer"
msgstr "Sidefod"
#: sphinx_rtd_theme/footer.html:21
#, python-format
msgid "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&#169; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
#: sphinx_rtd_theme/footer.html:23
#, python-format
msgid "&#169; Copyright %(copyright)s."
msgstr "&#169; Copyright %(copyright)s."
#. Build is a noun, not a verb
#: sphinx_rtd_theme/footer.html:30
msgid "Build"
msgstr "Build"
#. the phrase "revision" comes from Git, referring to a commit
#: sphinx_rtd_theme/footer.html:36
msgid "Revision"
msgstr "Version"
#: sphinx_rtd_theme/footer.html:41
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Last updated on %(last_updated)s."
#. the variable "sphinx_web" is a link to the Sphinx project documentation
#. with
#. the text "Sphinx"
#: sphinx_rtd_theme/footer.html:53
#, python-format
msgid "Built with %(sphinx_web)s using a"
msgstr "Baseret på %(sphinx_web)s med et"
#. "theme" refers to a theme for Sphinx, which alters the appearance of the
#. generated documentation
#: sphinx_rtd_theme/footer.html:55
msgid "theme"
msgstr "tema"
#. this is always used as "provided by Read the Docs", and should not imply
#. Read the Docs is an author of the generated documentation.
#: sphinx_rtd_theme/footer.html:57
#, python-format
msgid "provided by %(readthedocs_web)s"
msgstr "udviklet af%(readthedocs_web)s"
#: sphinx_rtd_theme/layout.html:97
#, python-format
msgid "Search within %(docstitle)s"
msgstr "Søg i %(docstitle)s"
#: sphinx_rtd_theme/layout.html:105
msgid "About these documents"
msgstr "Om disse dokumenter"
#: sphinx_rtd_theme/layout.html:108
msgid "Index"
msgstr "Indeks"
#: sphinx_rtd_theme/layout.html:111 sphinx_rtd_theme/search.html:11
msgid "Search"
msgstr "Søg"
#: sphinx_rtd_theme/layout.html:114
msgid "Copyright"
msgstr "Copyright"
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr "Navigation"
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr "Mobil navigation"
#: sphinx_rtd_theme/search.html:31
msgid "Please activate JavaScript to enable the search functionality."
msgstr "Venligst aktivér JavaScript for at anvende søgefunktionen"
#. Search is a noun, not a verb
#: sphinx_rtd_theme/search.html:39
msgid "Search Results"
msgstr "Søgeresultater"
#: sphinx_rtd_theme/search.html:41
msgid ""
"Your search did not match any documents. Please make sure that all words are"
" spelled correctly and that you've selected enough categories."
msgstr ""
"Din søgning matchede ingen dokumenter. Tjek at alle ord er stavet korrekt og"
" at du har valgt tilstrækkeligt med kategorier."
#: sphinx_rtd_theme/searchbox.html:4
msgid "Search docs"
msgstr "Søg i dokumentation"
#: sphinx_rtd_theme/versions.html:3 sphinx_rtd_theme/versions.html:11
msgid "Versions"
msgstr "Versioner"
#: sphinx_rtd_theme/versions.html:17
msgid "Downloads"
msgstr "Downloads"
#. The phrase "Read the Docs" is not translated
#: sphinx_rtd_theme/versions.html:24
msgid "On Read the Docs"
msgstr "På Read the Docs"
#: sphinx_rtd_theme/versions.html:26
msgid "Project Home"
msgstr "Projektets startside"
#: sphinx_rtd_theme/versions.html:29
msgid "Builds"
msgstr "Builds"
#~ msgid "Docs"
#~ msgstr "Dokumentation"
#~ msgid "Free document hosting provided by"
#~ msgstr "Gratis hosting af dokumentation leveret af"
#~ msgid "Documentation Home"
#~ msgstr "Dokumentationens startside"
#~ msgid "Breadcrumbs"
#~ msgstr "Sti"
#~ msgid "Main"
#~ msgstr "Primær"
#~ msgid "Top"
#~ msgstr "Top"
Binary file not shown.
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Tom Kunze <transifex.com@tomabrafix.de>, 2019\n"
"Language-Team: German (https://www.transifex.com/readthedocs/teams/101354/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -92,7 +92,7 @@ msgstr "Suche"
msgid "Copyright"
msgstr "Copyright"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
Binary file not shown.
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 15:43-0600\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
#. This is an ARIA section label for page links, including previous/next page
#. link and links to GitHub/GitLab/etc.
@@ -126,18 +126,18 @@ msgstr ""
msgid "Copyright"
msgstr ""
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr ""
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:173
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr ""
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:195
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr ""
Binary file not shown.
@@ -13,14 +13,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2022\n"
"Language-Team: Spanish (https://www.transifex.com/readthedocs/teams/101354/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: es\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -120,7 +120,7 @@ msgstr "Búsqueda"
msgid "Copyright"
msgstr "Derechos de autor"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logotipo"
Binary file not shown.
@@ -12,14 +12,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Ivar Smolin <okul@linux.ee>, 2021\n"
"Language-Team: Estonian (https://www.transifex.com/readthedocs/teams/101354/et/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -119,7 +119,7 @@ msgstr "Otsing"
msgid "Copyright"
msgstr "Autoriõigus"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
Binary file not shown.
@@ -12,14 +12,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Peyman M., 2022\n"
"Language-Team: Persian (Iran) (https://www.transifex.com/readthedocs/teams/101354/fa_IR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: fa_IR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -114,7 +114,7 @@ msgstr "جستجوی"
msgid "Copyright"
msgstr "کپی رایت"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "آرم"
Binary file not shown.
@@ -7,19 +7,21 @@
# Translators:
# Anthony <aj@ohess.org>, 2020
# Radina Matic <radina.matic@gmail.com>, 2021
# Jérémie Tarot <silopolis@gmail.com>, 2023
# CapitainFlam, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Radina Matic <radina.matic@gmail.com>, 2021\n"
"Last-Translator: CapitainFlam, 2023\n"
"Language-Team: French (https://www.transifex.com/readthedocs/teams/101354/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: fr\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -119,7 +121,7 @@ msgstr "Rechercher"
msgid "Copyright"
msgstr "Droits d'auteur"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
Binary file not shown.
@@ -11,13 +11,13 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Ivan Bratović, 2022\n"
"Language-Team: Croatian (https://www.transifex.com/readthedocs/teams/101354/hr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: hr\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
Binary file not shown.
@@ -11,13 +11,13 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Balázs Úr, 2022\n"
"Language-Team: Hungarian (https://www.transifex.com/readthedocs/teams/101354/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
Binary file not shown.
@@ -14,14 +14,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Benjamin Bach <benjaoming@gmail.com>, 2022\n"
"Language-Team: Italian (https://www.transifex.com/readthedocs/teams/101354/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -133,18 +133,18 @@ msgstr "Ricerca"
msgid "Copyright"
msgstr "Copyright"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:173
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr "Menu di navigazione"
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:195
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr "Menu navigazione dispositivi mobili"
Binary file not shown.
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Tomas Straupis, 2021\n"
"Language-Team: Lithuanian (https://www.transifex.com/readthedocs/teams/101354/lt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: lt\n"
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
@@ -130,18 +130,18 @@ msgstr "Paieška"
msgid "Copyright"
msgstr "Autorių teisės"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:173
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr "Navigacijos meniu"
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:195
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr "Mobilios navigacijos meniu"
Binary file not shown.
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Jesse Tan, 2021\n"
"Language-Team: Dutch (https://www.transifex.com/readthedocs/teams/101354/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -130,18 +130,18 @@ msgstr "Zoek"
msgid "Copyright"
msgstr "Copyright"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:173
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr "Navigatiemenu"
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:195
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr "Navigatiemenu voor mobiel"
Binary file not shown.
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Michal Sniatala, 2021\n"
"Language-Team: Polish (https://www.transifex.com/readthedocs/teams/101354/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: pl\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
Binary file not shown.
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Ana Costa <anacosta.xl@gmail.com>, 2021\n"
"Language-Team: Portuguese (https://www.transifex.com/readthedocs/teams/101354/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: pt\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -111,18 +111,18 @@ msgstr "Índice"
msgid "Search"
msgstr "Pesquisar"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:173
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr "Menu de navegação"
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:195
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr "Menu de navegação móvel"
Binary file not shown.
@@ -12,14 +12,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Wellington Uemura <wellingtonuemura@gmail.com>, 2022\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/readthedocs/teams/101354/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -131,18 +131,18 @@ msgstr "Pesquisar"
msgid "Copyright"
msgstr "Copyright"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:173
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr "Menu de navegação"
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:195
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr "Menu de navegação móvel"
Binary file not shown.
@@ -12,14 +12,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Dmitry Shachnev <mitya57@gmail.com>, 2021\n"
"Language-Team: Russian (https://www.transifex.com/readthedocs/teams/101354/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
@@ -131,18 +131,18 @@ msgstr "Поиск"
msgid "Copyright"
msgstr "Авторские права"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Логотип"
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:173
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr "Меню навигации"
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:195
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr "Меню навигации для мобильных устройств"
+8 -8
View File
@@ -1,22 +1,22 @@
# Translations template for sphinx_rtd_theme.
# Copyright (C) 2022 ORGANIZATION
# Copyright (C) 2023 ORGANIZATION
# This file is distributed under the same license as the sphinx_rtd_theme
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 1.1.1\n"
"Project-Id-Version: sphinx_rtd_theme 1.2.0rc4\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
#. This is an ARIA section label for page links, including previous/next page
#. link and links to GitHub/GitLab/etc.
@@ -125,18 +125,18 @@ msgstr ""
msgid "Copyright"
msgstr ""
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr ""
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:173
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr ""
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:195
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr ""
Binary file not shown.
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Daniel Holmberg <daniel.holmberg97@gmail.com>, 2020\n"
"Language-Team: Swedish (https://www.transifex.com/readthedocs/teams/101354/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -103,7 +103,7 @@ msgstr "Sök"
msgid "Copyright"
msgstr "Upphovsrätt"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
Binary file not shown.
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: BouRock, 2020\n"
"Language-Team: Turkish (https://www.transifex.com/readthedocs/teams/101354/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -95,7 +95,7 @@ msgstr "Arama"
msgid "Copyright"
msgstr "Telif hakkı"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
Binary file not shown.
@@ -13,14 +13,14 @@ msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-11-04 12:02-0700\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: JY3, 2022\n"
"Language-Team: Chinese (China) (https://www.transifex.com/readthedocs/teams/101354/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.1\n"
"Generated-By: Babel 2.11.0\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -132,18 +132,18 @@ msgstr "搜索"
msgid "Copyright"
msgstr "版权所有"
#: sphinx_rtd_theme/layout.html:147 sphinx_rtd_theme/layout.html:149
#: sphinx_rtd_theme/layout.html:143
msgid "Logo"
msgstr "Logo"
#. This is an ARIA section label for the main navigation menu
#: sphinx_rtd_theme/layout.html:173
#: sphinx_rtd_theme/layout.html:166
msgid "Navigation menu"
msgstr "导航菜单"
#. This is an ARIA section label for the navigation menu that is visible when
#. viewing the page on mobile devices
#: sphinx_rtd_theme/layout.html:195
#: sphinx_rtd_theme/layout.html:188
msgid "Mobile navigation menu"
msgstr "移动版导航菜单"
@@ -186,6 +186,3 @@ msgstr "项目主页"
#: sphinx_rtd_theme/versions.html:29
msgid "Builds"
msgstr "构建"
#~ msgid "Docs"
#~ msgstr "文档"
Binary file not shown.
@@ -0,0 +1,23 @@
# English translations for sphinx_rtd_theme.
# Copyright (C) 2019 ORGANIZATION
# This file is distributed under the same license as the sphinx_rtd_theme
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
#
# Translators:
# Jason Zhou, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-02-06 15:36+0100\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Jason Zhou, 2023\n"
"Language-Team: Chinese (Taiwan) (https://www.transifex.com/readthedocs/teams/101354/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.11.0\n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+1 -1
View File
@@ -1,7 +1,7 @@
{%- if 'singlehtml' not in builder %}
<div role="search">
<form id="rtd-search-form" class="wy-form" action="{{ pathto('search') }}" method="get">
<input type="text" name="q" placeholder="{{ _('Search docs') }}" />
<input type="text" name="q" placeholder="{{ _('Search docs') }}" aria-label="{{ _('Search docs') }}" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
+1 -1
View File
@@ -1 +1 @@
.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}}
.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-other-versions .rtd-current-item{font-weight:700}.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}}#flyout-search-form{padding:6px}
+1 -1
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 .eqno .headerlink:before,.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 p .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 button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,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 .eqno .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 p .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 .eqno .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 .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 .eqno .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 .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 .eqno .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 .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 .eqno .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-coLine 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 .eqno .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 p .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 .eqno .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 .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 .eqno .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 .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 .eqno .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 .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 .eqno .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-coLine truncated
+228
View File
@@ -0,0 +1,228 @@
const themeFlyoutDisplay = "{{ theme_flyout_display }}";
const themeVersionSelector = {{ 'true' if theme_version_selector|tobool else 'false' }};
const themeLanguageSelector = {{ 'true' if theme_language_selector|tobool else 'false' }};
if (themeFlyoutDisplay === "attached") {
function renderLanguages(config) {
if (!config.projects.translations.length) {
return "";
}
// Insert the current language to the options on the selector
let languages = config.projects.translations.concat(config.projects.current);
languages = languages.sort((a, b) => a.language.name.localeCompare(b.language.name));
const languagesHTML = `
<dl>
<dt>{{ _('Languages') }}</dt>
${languages
.map(
(translation) => `
<dd ${translation.slug == config.projects.current.slug ? 'class="rtd-current-item"' : ""}>
<a href="${translation.urls.documentation}">${translation.language.code}</a>
</dd>
`,
)
.join("\n")}
</dl>
`;
return languagesHTML;
}
function renderVersions(config) {
if (!config.versions.active.length) {
return "";
}
const versionsHTML = `
<dl>
<dt>{{ _('Versions') }}</dt>
${config.versions.active
.map(
(version) => `
<dd ${version.slug === config.versions.current.slug ? 'class="rtd-current-item"' : ""}>
<a href="${version.urls.documentation}">${version.slug}</a>
</dd>
`,
)
.join("\n")}
</dl>
`;
return versionsHTML;
}
function renderDownloads(config) {
if (!Object.keys(config.versions.current.downloads).length) {
return "";
}
const downloadsNameDisplay = {
pdf: "PDF",
epub: "Epub",
htmlzip: "HTML",
};
const downloadsHTML = `
<dl>
<dt>{{ _('Downloads') }}</dt>
${Object.entries(config.versions.current.downloads)
.map(
([name, url]) => `
<dd>
<a href="${url}">${downloadsNameDisplay[name]}</a>
</dd>
`,
)
.join("\n")}
</dl>
`;
return downloadsHTML;
}
document.addEventListener("readthedocs-addons-data-ready", function (event) {
const config = event.detail.data();
const flyout = `
<div class="rst-versions" data-toggle="rst-versions" role="note">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: ${config.versions.current.slug}
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<div class="injected">
${renderLanguages(config)}
${renderVersions(config)}
${renderDownloads(config)}
<dl>
<dt>{{ _('On Read the Docs') }}</dt>
<dd>
<a href="${config.projects.current.urls.home}">{{ _('Project Home') }}</a>
</dd>
<dd>
<a href="${config.projects.current.urls.builds}">{{ _('Builds') }}</a>
</dd>
<dd>
<a href="${config.projects.current.urls.downloads}">{{ _('Downloads') }}</a>
</dd>
</dl>
<dl>
<dt>{{ _('Search') }}</dt>
<dd>
<form id="flyout-search-form">
<input
class="wy-form"
type="text"
name="q"
aria-label="{{ _('Search docs') }}"
placeholder="{{ _('Search docs') }}"
/>
</form>
</dd>
</dl>
<hr />
<small>
<span>Hosted by <a href="https://about.readthedocs.org/?utm_source={{ READTHEDOCS_PROJECT }}&utm_content=flyout">Read the Docs</a></span>
</small>
</div>
</div>
`;
// Inject the generated flyout into the body HTML element.
document.body.insertAdjacentHTML("beforeend", flyout);
// Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout.
document
.querySelector("#flyout-search-form")
.addEventListener("focusin", () => {
const event = new CustomEvent("readthedocs-search-show");
document.dispatchEvent(event);
});
})
}
if (themeLanguageSelector || themeVersionSelector) {
function onSelectorSwitch(event) {
const option = event.target.selectedIndex;
const item = event.target.options[option];
window.location.href = item.dataset.url;
}
document.addEventListener("readthedocs-addons-data-ready", function (event) {
const config = event.detail.data();
const versionSwitch = document.querySelector(
"div.switch-menus > div.version-switch",
);
if (themeVersionSelector) {
let versions = config.versions.active;
if (config.versions.current.hidden || config.versions.current.type === "external") {
versions.unshift(config.versions.current);
}
const versionSelect = `
<select>
${versions
.map(
(version) => `
<option
value="${version.slug}"
${config.versions.current.slug === version.slug ? 'selected="selected"' : ""}
data-url="${version.urls.documentation}">
${version.slug}
</option>`,
)
.join("\n")}
</select>
`;
versionSwitch.innerHTML = versionSelect;
versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
}
const languageSwitch = document.querySelector(
"div.switch-menus > div.language-switch",
);
if (themeLanguageSelector) {
if (config.projects.translations.length) {
// Add the current language to the options on the selector
let languages = config.projects.translations.concat(
config.projects.current,
);
languages = languages.sort((a, b) =>
a.language.name.localeCompare(b.language.name),
);
const languageSelect = `
<select>
${languages
.map(
(language) => `
<option
value="${language.language.code}"
${config.projects.current.slug === language.slug ? 'selected="selected"' : ""}
data-url="${language.urls.documentation}">
${language.language.name}
</option>`,
)
.join("\n")}
</select>
`;
languageSwitch.innerHTML = languageSelect;
languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
}
else {
languageSwitch.remove();
}
}
});
}
document.addEventListener("readthedocs-addons-data-ready", function (event) {
// Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav.
document
.querySelector("[role='search'] input")
.addEventListener("focusin", () => {
const event = new CustomEvent("readthedocs-search-show");
document.dispatchEvent(event);
});
});
+3 -1
View File
@@ -13,8 +13,10 @@ navigation_depth = 4
includehidden = True
titles_only =
logo_only =
display_version = True
prev_next_buttons_location = bottom
style_external_links = False
style_nav_header_background =
vcs_pageview_mode =
flyout_display = hidden
version_selector = True
language_selector = True
-34
View File
@@ -1,34 +0,0 @@
{% if READTHEDOCS %}
{# Add rst-badge after rst-versions for small badge style. #}
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="{{ _('Versions') }}">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: {{ current_version }}
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>{{ _('Versions') }}</dt>
{% for slug, url in versions %}
<dd><a href="{{ url }}">{{ slug }}</a></dd>
{% endfor %}
</dl>
<dl>
<dt>{{ _('Downloads') }}</dt>
{% for type, url in downloads %}
<dd><a href="{{ url }}">{{ type }}</a></dd>
{% endfor %}
</dl>
<dl>
{# Translators: The phrase "Read the Docs" is not translated #}
<dt>{{ _('On Read the Docs') }}</dt>
<dd>
<a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">{{ _('Project Home') }}</a>
</dd>
<dd>
<a href="//{{ PRODUCTION_DOMAIN }}/builds/{{ slug }}/?fromdocs={{ slug }}">{{ _('Builds') }}</a>
</dd>
</dl>
</div>
</div>
{% endif %}
+5
View File
@@ -58,6 +58,8 @@
display: inline-block
padding: $base-line-height / 4
color: $section-background-color
.rtd-current-item
font-weight: bold
&.rst-badge
width: auto
bottom: 20px
@@ -92,3 +94,6 @@
display: none
&.shift
display: block
#flyout-search-form
padding: 6px
+47 -3
View File
@@ -217,7 +217,7 @@ html
padding: ($base-line-height / 6) ($base-line-height / 4)
margin-bottom: $gutter / 2
max-width: 100%
&:hover
&:hover, &active, &focus
background: rgba(255, 255, 255, 0.1)
img.logo
display: block // display on its own line all the time
@@ -228,13 +228,57 @@ html
max-width: 100% // shrink on mobile, if appropriate
background: rgba(0, 0, 0, 0) // make hover background of parent show up properly
&.icon
display: block
img.logo
margin-top: 0.85em // space it away from the title text
> div.version
> div.switch-menus
position: relative
display: block
margin-top: -1 * $gutter / 4
margin-bottom: $gutter / 2
font-weight: normal
color: rgba(255, 255, 255, 0.3)
color: rgba(255, 255,255, 0.3)
> div.version-switch, > div.language-switch
display: inline-block
padding: .2em
select
// Provide room for dropdown icon
display: inline-block
margin-right: -2rem
padding-right: 2rem
max-width: $nav-desktop-width * .8
// Alter base select styles
text-align-last: center
background: none
border: none
border-radius: 0em
box-shadow: none
font-family: $base-font-family
font-size: 1em
font-weight: normal
color: rgba(255, 255, 255, .3)
cursor: pointer
// Allow for padding
appearance: none
-webkit-appearance: none
-moz-appearance: none
&:hover, &:active, &:focus
background: rgba(255, 255, 255, .1)
color: rgba(255, 255, 255, .5)
option
color: black
&:has(> select):after
display: inline-block
width: 1.5em
height: 100%
padding: .1em
content: "\f0d7"
font-size: 1em
line-height: 1.2em
font-family: FontAwesome
text-align: center
pointer-events: none
box-sizing: border-box
.wy-nav .wy-menu-vertical
header
+80 -11
View File
@@ -281,6 +281,8 @@
top: -0.4em
line-height: 0
font-size: 90%
> span.fn-bracket
display: none
// Horizontal lists have multiple columns; use full width
.hlist
@@ -296,8 +298,9 @@
display: none !important
// 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
// html5 writer outputs these as a definition list (docutils < 0.18) or an
// aside/div (docutils 0.18+). We will use the fairly well supported css
// `grid` attributes to make these back into a table
// HTML4 writer
html.writer-html4 &
table.docutils.citation, table.docutils.footnote
@@ -313,13 +316,51 @@
vertical-align: top
// HTML5 writer
html.writer-html5 &
// docutils < 0.18 grid layout. Some spacing is the dl/dt/dd margins
dl.footnote, dl.citation, dl.field-list
display: grid
grid-template-columns: max-content auto
grid-template-columns: auto minmax(80%, 95%)
> dt
display: inline-grid
grid-template-columns: max-content auto
// docutils => 0.18 grid layout
aside.footnote, aside.citation, div.citation
display: grid
// Two any width columns for label and backrefs, a noop column to expand
// to fill the width allocated to the first two columns, and then the
// content column for the paragraphs.
grid-template-columns: auto auto minmax(0.65rem, auto) minmax(40%, 95%)
& > span.label
grid-column-start: 1
grid-column-end: 2
& > span.backrefs
grid-column-start: 2
grid-column-end: 3
grid-row-start: 1
grid-row-end: 3
& > p
grid-column-start: 4
grid-column-end: 5
// Shared backrefs styling for docutils versions
@mixin footnote-backrefs
text-align: left
font-style: italic
margin-left: .65rem
word-break: break-word
word-spacing: -0.1rem
max-width: 5rem
> a
&:not(:first-child)::before
content: " "
word-break: keep-all
// docutils < 0.18 html5 writer styling
dl.footnote, dl.citation, dl.field-list,
margin-bottom: $base-line-height
> dt
padding-left: 1rem
&:after
content: ":"
> dt, > dd
margin-bottom: 0rem
dl.footnote, dl.citation
@@ -330,24 +371,45 @@
word-break: break-all
font-weight: normal
> span.brackets
margin-right: 0.5rem
&:before
content: "["
&:after
content: "]"
> span.fn-backref
font-style: italic
@include footnote-backrefs
> dd
margin: 0rem 0rem 0.5rem 0rem
line-height: 1.2rem
p
font-size: 0.9rem
// docutils => 0.18 html5 writer styling
aside.footnote, aside.citation, div.citation
padding-left: 1rem
padding-right: 1rem
font-size: 0.9rem
line-height: 1.2rem
p
font-size: 0.9rem
line-height: 1.2rem
margin-bottom: $base-line-height / 2
span.backrefs
@include footnote-backrefs
span.label
line-height: 1.2rem
aside.footnote-list, aside.citation-list, div.citation-list
margin-bottom: $base-line-height
dl.option-list
kbd
font-size: 0.9rem
// Both
html.writer-html4 & table.docutils.citation, table.docutils.footnote,
html.writer-html5 & dl.footnote, dl.citation
html.writer-html5 & dl.footnote,
html.writer-html5 & dl.citation,
html.writer-html5 & aside.footnote,
html.writer-html5 & aside.footnote-list aside.footnote,
html.writer-html5 & div.citation-list > div.citation
color: $text-medium
code
color: $gray
@@ -521,14 +583,19 @@
@extend .fa-download
&:before
margin-right: 4px
.guilabel
border: 1px solid lighten($guilabel-color, 25%)
background: lighten($guilabel-color, 50%)
.guilabel,
.menuselection
font-size: 80%
font-weight: 700
border-radius: $base-line-height / 6
padding: ($base-line-height / 10) ($base-line-height / 4)
margin: auto ($base-line-height / 12)
.guilabel,
border: 1px solid lighten($guilabel-color, 25%)
background: lighten($guilabel-color, 50%)
.menuselection
border: 1px solid lighten($menuselection-color, 25%)
background: lighten($menuselection-color, 50%)
*:not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > kbd,
*:not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > .kbd
color: inherit
@@ -548,3 +615,5 @@
.rst-content
.sidebar
width: 100%
float: none
margin-left: 0
+4 -1
View File
@@ -20,9 +20,12 @@ $text-codexref-color: $text-color
$class-color: $blue
$method-color: $gray
// GUI label color
// :guilabel: color
$guilabel-color: $blue
// :menuselection: label color
$menuselection-color: $blue
// Footer colors
$footer-color: $text-medium
+1
View File
@@ -1,3 +1,4 @@
// jQuery is included via the sphinxcontrib-jquery extension that we depend on
var jQuery = (typeof(window) != 'undefined') ? window.jQuery : require('jquery');
// Sphinx theme nav state
+7 -4
View File
@@ -18,7 +18,7 @@ from .util import build_all
def test_basic():
for (app, status, warning) in build_all('test-basic'):
assert app.env.get_doctree('index').traverse(addnodes.toctree)
assert app.env.get_doctree('index').findall(addnodes.toctree)
content = open(os.path.join(app.outdir, 'index.html')).read()
if isinstance(app.builder, DirectoryHTMLBuilder):
@@ -37,10 +37,13 @@ def test_basic():
)
assert search in content
elif isinstance(app.builder, SingleFileHTMLBuilder):
internal_ref = '#document-foo'
if sphinx.version_info[:3] < (7, 3, 0):
internal_ref = 'index.html' + internal_ref
search = (
'<ul>\n'
'<li class="toctree-l1">'
'<a class="reference internal" href="index.html#document-foo">foo</a>'
f'<a class="reference internal" href="{internal_ref}">foo</a>'
'</li>\n'
'</ul>'
)
@@ -66,7 +69,7 @@ def test_basic():
def test_empty():
"""Local TOC is showing, as toctree was empty"""
for (app, status, warning) in build_all('test-empty'):
assert app.env.get_doctree('index').traverse(addnodes.toctree)
assert app.env.get_doctree('index').findall(addnodes.toctree)
content = open(os.path.join(app.outdir, 'index.html')).read()
global_toc = '<div class="toctree-wrapper compound">\n</div>'
local_toc = (
@@ -81,7 +84,7 @@ def test_empty():
def test_missing_toctree():
"""Local TOC is showing, as toctree was missing"""
for (app, status, warning) in build_all('test-missing-toctree'):
assert app.env.get_doctree('index').traverse(addnodes.toctree) == []
assert list(app.env.get_doctree('index').findall(addnodes.toctree)) == []
content = open(os.path.join(app.outdir, 'index.html')).read()
assert '<div class="toctree' not in content
assert '<div class="local-toc">' in content
+1 -3
View File
@@ -34,7 +34,6 @@ def build(root, builder='html', **kwargs):
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
@@ -55,7 +54,6 @@ def build(root, builder='html', **kwargs):
def build_all(root, **kwargs):
for builder in ['html', 'singlehtml', 'readthedocs', 'readthedocsdirhtml',
'readthedocssinglehtml', 'readthedocssinglehtmllocalmedia']:
for builder in ['html', 'singlehtml']:
with build(root, builder, **kwargs) as ret:
yield ret
+19 -40
View File
@@ -1,52 +1,31 @@
[tox]
envlist =
# Python 2.7 support was removed in Sphinx 2
py{27}-sphinx{17,18}{-html4,-html5,}{-qa,}
py{36,37,38,39}-sphinx{17,18,20,21,22,23,24,30,31,32,33,34,35,40,41,42,43,44,45,50,51,52,latest}{-html4,-html5,}{-qa,}
# Python 3.10 working from Sphinx 4.2 and up
py{310}-sphinx{42,43,44,45,50,51,52}{-html4,-html5,latest}{-qa,}
py{38,39,310}-sphinx{60,61,62,70,71}{-qa}
py{39,310,311,312,313}-sphinx{72,73,74,80}{-qa}
py{311}-sphinx{81,82,90,latest}{-qa}
py{312,313,314}-sphinx{81,82,90,latest,dev}{-qa}
[testenv]
setev =
setenv =
LANG=C
deps =
.
readthedocs-sphinx-ext
pytest
sphinxcontrib-httpdomain
sphinx17: Sphinx>=1.7,<1.8
sphinx18: Sphinx>=1.8,<1.9
sphinx20: Sphinx>=2.0,<2.1
sphinx21: Sphinx>=2.1,<2.2
sphinx22: Sphinx>=2.2,<2.3
sphinx23: Sphinx>=2.3,<2.4
sphinx24: Sphinx>=2.4,<2.5
sphinx30: Sphinx>=3.0,<3.1
sphinx31: Sphinx>=3.1,<3.2
sphinx32: Sphinx>=3.2,<3.3
sphinx33: Sphinx>=3.3,<3.4
sphinx34: Sphinx>=3.4,<3.5
sphinx35: Sphinx>=3.5,<3.6
sphinx40: Sphinx>=4.0,<4.1
sphinx41: Sphinx>=4.1,<4.2
sphinx42: Sphinx>=4.2,<4.3
sphinx43: Sphinx>=4.3,<4.4
sphinx44: Sphinx>=4.4,<4.5
sphinx45: Sphinx>=4.5,<4.6
sphinx50: Sphinx>=5.0,<5.1
sphinx51: Sphinx>=5.1,<5.2
sphinx52: Sphinx>=5.2,<5.3
# All these Sphinx versions actually break since docutils 0.18, so we need to add this upper bound
# Projects using these Sphinx versions will have to do the same
# See: https://github.com/readthedocs/sphinx_rtd_theme/pull/1304
sphinx{17,18,20,21,22,23,24,30,31,32,33,34,35,40,41,42}: docutils<0.18
# External environments are required to add this dependency for older versions of Sphinx
# because it didn't ship with this upper bound.
# See: https://github.com/sphinx-doc/sphinx/issues/10291
sphinx{17,18,20,21,22,23,24,30,31,32,33,34,35,40}: Jinja2<3.1
sphinx60: Sphinx>=6.0,<6.1
sphinx61: Sphinx>=6.1,<6.2
sphinx62: Sphinx>=6.2,<6.3
sphinx70: Sphinx>=7.0,<7.1
sphinx71: Sphinx>=7.1,<7.2
sphinx72: Sphinx>=7.2,<7.3
sphinx80: Sphinx>=8.0,<8.1
sphinx81: Sphinx>=8.1,<8.2
sphinx82: Sphinx>=8.2,<8.3
sphinx90: Sphinx>=9.0,<9.1
sphinxlatest: Sphinx
sphinxdev: https://github.com/sphinx-doc/sphinx/archive/refs/heads/master.zip
allowlist_externals =
echo
commands =
pytest {posargs} tests/
!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
sphinx-build -b html -Dhtml4_writer=0 -d {envtmpdir}/doctrees docs/ {envtmpdir}/html
echo "Open the following URL for visual testing: file://{envtmpdir}/html/demo/demo.html"
-7
View File
@@ -1,6 +1,5 @@
const path = require("path");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const CopyPlugin = require('copy-webpack-plugin');
module.exports = {
entry: {
@@ -66,11 +65,5 @@ 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') },
]),
]
};