python-docs-theme 2026.4__tar.gz → 2026.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. python_docs_theme-2026.9/.babel.cfg +3 -0
  2. python_docs_theme-2026.9/.github/dependabot.yml +14 -0
  3. python_docs_theme-2026.9/.github/release.yml +5 -0
  4. python_docs_theme-2026.9/.github/workflows/lint.yml +19 -0
  5. python_docs_theme-2026.9/.github/workflows/pypi-package.yml +52 -0
  6. python_docs_theme-2026.9/.github/workflows/tests.yml +95 -0
  7. python_docs_theme-2026.9/.gitignore +101 -0
  8. python_docs_theme-2026.9/.pre-commit-config.yaml +56 -0
  9. python_docs_theme-2026.9/.readthedocs.yml +15 -0
  10. python_docs_theme-2026.9/CHANGELOG.md +282 -0
  11. python_docs_theme-2026.9/CONTRIBUTING.md +27 -0
  12. python_docs_theme-2026.9/Makefile +30 -0
  13. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/PKG-INFO +11 -10
  14. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/README.md +2 -0
  15. python_docs_theme-2026.9/babel_runner.py +146 -0
  16. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/pyproject.toml +9 -5
  17. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/__init__.py +1 -1
  18. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/layout.html +3 -3
  19. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ar/LC_MESSAGES/python-docs-theme.mo +0 -0
  20. python_docs_theme-2026.9/python_docs_theme/locale/de/LC_MESSAGES/python-docs-theme.mo +0 -0
  21. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/de/LC_MESSAGES/python-docs-theme.po +0 -1
  22. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/el/LC_MESSAGES/python-docs-theme.mo +0 -0
  23. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/es/LC_MESSAGES/python-docs-theme.mo +0 -0
  24. python_docs_theme-2026.9/python_docs_theme/locale/fa/LC_MESSAGES/python-docs-theme.mo +0 -0
  25. python_docs_theme-2026.9/python_docs_theme/locale/fa/LC_MESSAGES/python-docs-theme.po +126 -0
  26. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/fr/LC_MESSAGES/python-docs-theme.mo +0 -0
  27. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/id/LC_MESSAGES/python-docs-theme.mo +0 -0
  28. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ja/LC_MESSAGES/python-docs-theme.mo +0 -0
  29. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ko/LC_MESSAGES/python-docs-theme.mo +0 -0
  30. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/pl/LC_MESSAGES/python-docs-theme.mo +0 -0
  31. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/pt/LC_MESSAGES/python-docs-theme.mo +0 -0
  32. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/pt_BR/LC_MESSAGES/python-docs-theme.mo +0 -0
  33. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ro/LC_MESSAGES/python-docs-theme.mo +0 -0
  34. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ru/LC_MESSAGES/python-docs-theme.mo +0 -0
  35. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/sv/LC_MESSAGES/python-docs-theme.mo +0 -0
  36. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ta/LC_MESSAGES/python-docs-theme.mo +0 -0
  37. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/tr/LC_MESSAGES/python-docs-theme.mo +0 -0
  38. python_docs_theme-2026.9/python_docs_theme/locale/vi/LC_MESSAGES/python-docs-theme.mo +0 -0
  39. python_docs_theme-2026.9/python_docs_theme/locale/vi/LC_MESSAGES/python-docs-theme.po +129 -0
  40. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/zh_CN/LC_MESSAGES/python-docs-theme.mo +0 -0
  41. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/zh_TW/LC_MESSAGES/python-docs-theme.mo +0 -0
  42. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/static/pydoctheme.css +129 -37
  43. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/static/pydoctheme_dark.css +1 -1
  44. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/theme.toml +1 -0
  45. python_docs_theme-2026.9/requirements.txt +4 -0
  46. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/LICENSE +0 -0
  47. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/footerdonate.html +0 -0
  48. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ar/LC_MESSAGES/python-docs-theme.po +0 -0
  49. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/el/LC_MESSAGES/python-docs-theme.po +0 -0
  50. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/es/LC_MESSAGES/python-docs-theme.po +0 -0
  51. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/fr/LC_MESSAGES/python-docs-theme.po +0 -0
  52. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/id/LC_MESSAGES/python-docs-theme.po +0 -0
  53. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ja/LC_MESSAGES/python-docs-theme.po +0 -0
  54. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ko/LC_MESSAGES/python-docs-theme.po +0 -0
  55. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/pl/LC_MESSAGES/python-docs-theme.po +0 -0
  56. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/pt/LC_MESSAGES/python-docs-theme.po +0 -0
  57. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/pt_BR/LC_MESSAGES/python-docs-theme.po +0 -0
  58. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ro/LC_MESSAGES/python-docs-theme.po +0 -0
  59. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ru/LC_MESSAGES/python-docs-theme.po +0 -0
  60. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/sv/LC_MESSAGES/python-docs-theme.po +0 -0
  61. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/ta/LC_MESSAGES/python-docs-theme.po +0 -0
  62. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/tr/LC_MESSAGES/python-docs-theme.po +0 -0
  63. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/zh_CN/LC_MESSAGES/python-docs-theme.po +0 -0
  64. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/locale/zh_TW/LC_MESSAGES/python-docs-theme.po +0 -0
  65. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/static/copybutton.js +0 -0
  66. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/static/menu.js +0 -0
  67. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/static/py.svg +0 -0
  68. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/static/search-focus.js +0 -0
  69. {python_docs_theme-2026.4 → python_docs_theme-2026.9}/python_docs_theme/static/themetoggle.js +0 -0
@@ -0,0 +1,3 @@
1
+ [javascript: **.js]
2
+
3
+ [jinja2: **.html]
@@ -0,0 +1,14 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: monthly
7
+ assignees:
8
+ - "ezio-melotti"
9
+ groups:
10
+ actions:
11
+ patterns:
12
+ - "*"
13
+ cooldown:
14
+ default-days: 7
@@ -0,0 +1,5 @@
1
+ changelog:
2
+ exclude:
3
+ authors:
4
+ - dependabot[bot]
5
+ - pre-commit-ci[bot]
@@ -0,0 +1,19 @@
1
+ name: Lint
2
+
3
+ on: [push, pull_request, workflow_dispatch]
4
+
5
+ permissions: {}
6
+
7
+ env:
8
+ FORCE_COLOR: 1
9
+ RUFF_OUTPUT_FORMAT: github
10
+
11
+ jobs:
12
+ lint:
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
17
+ with:
18
+ persist-credentials: false
19
+ - uses: j178/prek-action@4e14d07f9231acabce116ccfca13b13dd9755ece # v3.0.0
@@ -0,0 +1,52 @@
1
+ name: Build & maybe upload PyPI package
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+ release:
7
+ types:
8
+ - published
9
+ workflow_dispatch:
10
+
11
+ permissions: {}
12
+
13
+ env:
14
+ FORCE_COLOR: 1
15
+
16
+ jobs:
17
+ # Always build & lint package.
18
+ build-package:
19
+ name: Build & verify package
20
+ runs-on: ubuntu-latest
21
+
22
+ steps:
23
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
24
+ with:
25
+ persist-credentials: false
26
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
27
+
28
+ - uses: hynek/build-and-inspect-python-package@2abe76da66d0a6a4a227101f9348ee855797cfa5 # v3.0.1
29
+
30
+ # Upload to real PyPI on GitHub Releases.
31
+ release-pypi:
32
+ name: Publish to PyPI
33
+ environment: release-pypi
34
+ # Only run for published releases.
35
+ if: |
36
+ github.repository_owner == 'python'
37
+ && github.event.action == 'published'
38
+ runs-on: ubuntu-latest
39
+ needs: build-package
40
+
41
+ permissions:
42
+ id-token: write
43
+
44
+ steps:
45
+ - name: Download packages built by build-and-inspect-python-package
46
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
47
+ with:
48
+ name: Packages
49
+ path: dist
50
+
51
+ - name: Upload package to PyPI
52
+ uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
@@ -0,0 +1,95 @@
1
+ name: Tests
2
+
3
+ on: [push, pull_request, workflow_dispatch]
4
+
5
+ permissions: {}
6
+
7
+ env:
8
+ FORCE_COLOR: 1
9
+
10
+ jobs:
11
+ build_doc:
12
+ name: Build CPython docs
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ python-version: ["3.15", "3.14", "3.13", "3.12"]
18
+ include:
19
+ - python-version: "3.15"
20
+ branch: "main"
21
+ steps:
22
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
23
+ with:
24
+ persist-credentials: false
25
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
26
+ with:
27
+ python-version: ${{ matrix.python-version }}
28
+ allow-prereleases: true
29
+ cache: pip
30
+ - name: Clone docsbuild scripts
31
+ run: |
32
+ git clone https://github.com/python/docsbuild-scripts/
33
+ - name: Set up requirements
34
+ run: |
35
+ python -m pip install --upgrade pip
36
+ python -m pip install -r docsbuild-scripts/requirements.txt
37
+ - name: Build documentation
38
+ run: >
39
+ python ./docsbuild-scripts/build_docs.py
40
+ --quick
41
+ --build-root ./build_root
42
+ --www-root ./www
43
+ --log-directory ./logs
44
+ --group "$(id -g)"
45
+ --skip-cache-invalidation
46
+ --theme "$(pwd)"
47
+ --languages en
48
+ --branches ${{ matrix.branch || matrix.python-version }}
49
+ ${{ matrix.branch == 'main' && '--select-output no-html' || '' }}
50
+ - name: Show logs
51
+ if: failure()
52
+ run: |
53
+ cat ./logs/docsbuild.log
54
+ - name: Upload
55
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
56
+ with:
57
+ name: doc-html-${{ matrix.python-version }}
58
+ path: www/
59
+
60
+ translations:
61
+ runs-on: ${{ matrix.os }}
62
+ strategy:
63
+ fail-fast: false
64
+ matrix:
65
+ os: ["ubuntu-latest", "windows-latest"]
66
+ # Test minimum supported and latest stable from 3.x series
67
+ python-version: ["3.12", "3"]
68
+ steps:
69
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
70
+ with:
71
+ persist-credentials: false
72
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
73
+ with:
74
+ python-version: ${{ matrix.python-version }}
75
+ allow-prereleases: true
76
+ cache: pip
77
+ - name: Install dependencies
78
+ run: |
79
+ pip install --upgrade pip
80
+ pip install -r requirements.txt
81
+ - name: Remove locale file for testing
82
+ shell: bash
83
+ run: rm -rf python_docs_theme/locale/pt_BR/
84
+ - run: python babel_runner.py extract
85
+ - run: python babel_runner.py init -l pt_BR
86
+ - run: python babel_runner.py update
87
+ - run: python babel_runner.py update -l pt_BR
88
+ - run: python babel_runner.py compile
89
+ - run: python babel_runner.py compile -l pt_BR
90
+ - name: Print .pot file
91
+ shell: bash
92
+ run: cat python_docs_theme/locale/python-docs-theme.pot
93
+ - name: Print .po file
94
+ shell: bash
95
+ run: cat python_docs_theme/locale/pt_BR/LC_MESSAGES/python-docs-theme.po
@@ -0,0 +1,101 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ env/
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+
28
+ # PyInstaller
29
+ # Usually these files are written by a python script from a template
30
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ .tox/
41
+ .coverage
42
+ .coverage.*
43
+ .cache
44
+ nosetests.xml
45
+ coverage.xml
46
+ *.cover
47
+ .hypothesis/
48
+
49
+ # Translations
50
+ *.mo
51
+ *.pot
52
+
53
+ # Django stuff:
54
+ *.log
55
+ local_settings.py
56
+
57
+ # Flask stuff:
58
+ instance/
59
+ .webassets-cache
60
+
61
+ # Scrapy stuff:
62
+ .scrapy
63
+
64
+ # Sphinx documentation
65
+ docs/_build/
66
+
67
+ # PyBuilder
68
+ target/
69
+
70
+ # Jupyter Notebook
71
+ .ipynb_checkpoints
72
+
73
+ # pyenv
74
+ .python-version
75
+
76
+ # celery beat schedule file
77
+ celerybeat-schedule
78
+
79
+ # SageMath parsed files
80
+ *.sage.py
81
+
82
+ # dotenv
83
+ .env
84
+
85
+ # virtualenv
86
+ .venv
87
+ venv/
88
+ ENV/
89
+
90
+ # Spyder project settings
91
+ .spyderproject
92
+ .spyproject
93
+
94
+ # Rope project settings
95
+ .ropeproject
96
+
97
+ # mkdocs documentation
98
+ /site
99
+
100
+ # mypy
101
+ .mypy_cache/
@@ -0,0 +1,56 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.15.20
4
+ hooks:
5
+ - id: ruff-check
6
+ args: [--exit-non-zero-on-fix]
7
+
8
+ - repo: https://github.com/psf/black-pre-commit-mirror
9
+ rev: 26.5.1
10
+ hooks:
11
+ - id: black
12
+
13
+ - repo: https://github.com/pre-commit/pre-commit-hooks
14
+ rev: v6.0.0
15
+ hooks:
16
+ - id: check-case-conflict
17
+ - id: check-merge-conflict
18
+ - id: check-toml
19
+ - id: check-yaml
20
+ - id: debug-statements
21
+ - id: end-of-file-fixer
22
+ - id: trailing-whitespace
23
+
24
+ - repo: https://github.com/python-jsonschema/check-jsonschema
25
+ rev: 0.37.4
26
+ hooks:
27
+ - id: check-dependabot
28
+ - id: check-github-workflows
29
+
30
+ - repo: https://github.com/rhysd/actionlint
31
+ rev: v1.7.12
32
+ hooks:
33
+ - id: actionlint
34
+
35
+ - repo: https://github.com/zizmorcore/zizmor-pre-commit
36
+ rev: v1.26.1
37
+ hooks:
38
+ - id: zizmor
39
+
40
+ - repo: https://github.com/tox-dev/pyproject-fmt
41
+ rev: v2.25.1
42
+ hooks:
43
+ - id: pyproject-fmt
44
+
45
+ - repo: https://github.com/abravalheri/validate-pyproject
46
+ rev: v0.25
47
+ hooks:
48
+ - id: validate-pyproject
49
+
50
+ - repo: meta
51
+ hooks:
52
+ - id: check-hooks-apply
53
+ - id: check-useless-excludes
54
+
55
+ ci:
56
+ autoupdate_schedule: quarterly
@@ -0,0 +1,15 @@
1
+ # Read the Docs configuration file
2
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3
+ # Project page: https://readthedocs.org/projects/python-docs-theme-previews/
4
+
5
+ version: 2
6
+
7
+ build:
8
+ os: ubuntu-22.04
9
+ tools:
10
+ python: "3"
11
+
12
+ commands:
13
+ - git clone --depth=1 https://github.com/python/cpython
14
+ - make html CPYTHON_PATH=cpython
15
+ - mv cpython/Doc/build _readthedocs
@@ -0,0 +1,282 @@
1
+ # Changelog
2
+
3
+ ## [2026.9](https://github.com/python/python-docs-theme/releases/tag/2026.9)
4
+
5
+ * Add support for right-to-left page layout by @sepehr-rs in https://github.com/python/python-docs-theme/pull/324
6
+ * Improve contrast between unvisited and visited links in dark mode
7
+ by @StanFromIreland in https://github.com/python/python-docs-theme/pull/329
8
+ * Keep breadcrumb navigation visible on mobile by @undeMalum in
9
+ https://github.com/python/python-docs-theme/pull/326
10
+ * Add Persian translation by @sepehr-rs in https://github.com/python/python-docs-theme/pull/322
11
+
12
+ ## [2026.7](https://github.com/python/python-docs-theme/releases/tag/2026.7)
13
+
14
+ * Add Vietnamese translation by @StanFromIreland in https://github.com/python/python-docs-theme/pull/309
15
+ * Switch to Hatchling build hooks for i18n packaging and exclude .po from wheels by @StanFromIreland in https://github.com/python/python-docs-theme/pull/312
16
+
17
+ ## [2026.4](https://github.com/python/python-docs-theme/releases/tag/2026.4)
18
+
19
+ * Add styling for the `soft-deprecated` class by @StanFromIreland
20
+ in https://github.com/python/python-docs-theme/pull/305
21
+ * Add Tamil translation in https://github.com/python/python-docs-theme/pull/304
22
+ * Fix the vertical alignment of `:Editor:` by @pradyunsg in
23
+ https://github.com/python/python-docs-theme/pull/303
24
+
25
+ ## [2026.3](https://github.com/python/python-docs-theme/releases/tag/2026.3)
26
+
27
+ * Add colors for new thread-safety levels by @lysnikolaou in https://github.com/python/python-docs-theme/pull/299
28
+
29
+ ## [2026.2](https://github.com/python/python-docs-theme/releases/tag/2026.2)
30
+
31
+ * Style codeblock `:caption:` by @StanFromIreland in https://github.com/python/python-docs-theme/pull/288
32
+ * Enable copy button for shell sessions and consoles by @hugovk in https://github.com/python/python-docs-theme/pull/295
33
+ * Add colors for thread safety annotations by @lysnikolaou in https://github.com/python/python-docs-theme/pull/297
34
+
35
+ ## [2025.12](https://github.com/python/python-docs-theme/releases/tag/2025.12)
36
+
37
+ * Add support for green, red and yellow side borders for code examples by @hugovk in https://github.com/python/python-docs-theme/pull/285
38
+ * Add Portuguese translation by @NyaPuma in https://github.com/python/python-docs-theme/pull/281
39
+ * Add support for Python 3.15 by @hugovk in https://github.com/python/python-docs-theme/pull/282
40
+ * Convert CHANGELOG and CONTRIBUTING from .rst to .md by @hugovk in https://github.com/python/python-docs-theme/pull/277
41
+ * Add zizmor to CI and fix findings by @hugovk in https://github.com/python/python-docs-theme/pull/283
42
+
43
+ ## [2025.10](https://github.com/python/python-docs-theme/releases/tag/2025.10)
44
+
45
+ * Add Romanian translation by @octaG-M in https://github.com/python/python-docs-theme/pull/272
46
+ * Add Arabic and Russian translations by @StanFromIreland in https://github.com/python/python-docs-theme/pull/274
47
+ * Add French translation by @JulienPalard in https://github.com/python/python-docs-theme/pull/275
48
+ * Update authors in `pyproject.toml` by @StanFromIreland in https://github.com/python/python-docs-theme/pull/271
49
+ * Add link to devguide in README by @StanFromIreland in https://github.com/python/python-docs-theme/pull/266
50
+
51
+ ## [2025.9.2](https://github.com/python/python-docs-theme/releases/tag/2025.9.2)
52
+
53
+ * Add Korean and Indonesian translations from Transifex in https://github.com/python/python-docs-theme/pull/264
54
+ * Add German translation by @cmaureir in https://github.com/python/python-docs-theme/pull/262
55
+ * Fix compilation of translations and loading of translations on pages with html
56
+ source in https://github.com/python/python-docs-theme/pull/263
57
+ * Fix search button cutting off long translations in https://github.com/python/python-docs-theme/pull/268
58
+ * Fix `Copy` button copying line numbers by @StanFromIreland in https://github.com/python/python-docs-theme/pull/270
59
+
60
+ ## [2025.9.1](https://github.com/python/python-docs-theme/releases/tag/2025.9.1)
61
+
62
+ * Add Japanese, Turkish and Spanish translations from Transifex in https://github.com/python/python-docs-theme/pull/259
63
+
64
+ ## [2025.9](https://github.com/python/python-docs-theme/releases/tag/2025.9)
65
+
66
+ * Enable theme translation and add Polish by @StanFromIreland in https://github.com/python/python-docs-theme/pull/246
67
+ * Add Greek translation by @lysnikolaou and @skpanagiotis in https://github.com/python/python-docs-theme/pull/256 and https://github.com/python/python-docs-theme/pull/257
68
+ * Add Swedish translation by @yeager in https://github.com/python/python-docs-theme/pull/250
69
+ * Add Brazilian Portuguese, Simplified Chinese and Traditional Chinese translations from [Transifex](https://explore.transifex.com/python-doc/python-docs-theme/) in https://github.com/python/python-docs-theme/pull/253
70
+
71
+ ## [2025.5](https://github.com/python/python-docs-theme/releases/tag/2025.5)
72
+
73
+ * Make the copy button only appear when hovered over or clicked on by @kevteg in https://github.com/python/python-docs-theme/pull/243
74
+
75
+ ## [2025.4.1](https://github.com/python/python-docs-theme/releases/tag/2025.4.1)
76
+
77
+ * Fix copy button with multiple tracebacks by @tomasr8 in https://github.com/python/python-docs-theme/pull/240
78
+
79
+ ## [2025.4](https://github.com/python/python-docs-theme/releases/tag/2025.4)
80
+
81
+ * Require Sphinx 7.3 by @AA-Turner in https://github.com/python/python-docs-theme/pull/221
82
+ * Add support for Python 3.14 by @hugovk https://github.com/python/python-docs-theme/pull/236
83
+ * Drop support for Python 3.10 and 3.11 by @hugovk in https://github.com/python/python-docs-theme/pull/234
84
+ * Add a copy button to code samples by @tomasr8 in https://github.com/python/python-docs-theme/pull/231
85
+ * Add missing i18n for copy button titles by @tomasr8 in https://github.com/python/python-docs-theme/pull/225
86
+ * Use consistent line-height for light & dark theme by @tomasr8 in https://github.com/python/python-docs-theme/pull/227
87
+ * Remove self-closing tags by @hugovk in https://github.com/python/python-docs-theme/pull/226
88
+ * Replace deprecated classifier with licence expression (PEP 639) by @hugovk in https://github.com/python/python-docs-theme/pull/237
89
+
90
+ ## [2025.2](https://github.com/python/python-docs-theme/releases/tag/2025.2)
91
+
92
+ - Note minimum requirements for Sphinx (#216)
93
+ Contributed by Adam Turner
94
+ - Horizontally centre the sidebar collapse button (#219)
95
+ Contributed by Tomas Roun
96
+ - Make sidebar width more flexible (#218)
97
+ Contributed by Tomas Roun
98
+ - Set `__version__` in the runtime package (#222)
99
+ Contributed by Adam Turner
100
+
101
+ ## [2024.12](https://github.com/python/python-docs-theme/releases/tag/2024.12)
102
+
103
+ - Hide header and search bar when printing (#204)
104
+ Contributed by Hugo van Kemenade
105
+
106
+ ## [2024.10](https://github.com/python/python-docs-theme/releases/tag/2024.10)
107
+
108
+ - Add support for Python 3.13 (#196)
109
+ Contributed by Hugo van Kemenade
110
+ - Drop support for Python 3.8 (#197)
111
+ Contributed by Hugo van Kemenade
112
+ - Add script for handling translations (#195)
113
+ Contributed by Rafael Fontenelle
114
+ - Generate digital attestations for PyPI (PEP 740) (#198)
115
+ Contributed by Hugo van Kemenade
116
+
117
+ ## [2024.6](https://github.com/python/python-docs-theme/releases/tag/2024.6)
118
+
119
+ - Add backgrounds and borders to admonitions (#190)
120
+ Contributed by Hugo van Kemenade
121
+ - Use different colour for 'Return value: Borrowed reference' (#188)
122
+ Contributed by Hugo van Kemenade
123
+
124
+ ## [2024.4](https://github.com/python/python-docs-theme/releases/tag/2024.4)
125
+
126
+ - Add colour to version change directives (#185)
127
+ Contributed by Hugo van Kemenade
128
+ - Only show 'Last updated on ...' when `last_updated` defined (#183)
129
+ Contributed by Hugo van Kemenade
130
+ - Use system font stack for all code (#186)
131
+ Contributed by Hugo van Kemenade
132
+
133
+ ## [2024.3](https://github.com/python/python-docs-theme/releases/tag/2024.3)
134
+
135
+ - Modernise font: use system font stack to improve text readability and webpage performance (#174)
136
+ Contributed by Hugo van Kemenade
137
+ - Remove incorrect CSS property (#178)
138
+ Contributed by Kerim Kabirov
139
+
140
+ ## [2024.2](https://github.com/python/python-docs-theme/releases/tag/2024.2)
141
+
142
+ - Do not underline navigation links (#169)
143
+ Contributed by Hugo van Kemenade
144
+ - Only apply underline offset to code formatting for underline visibility (#171)
145
+ Contributed by Hugo van Kemenade
146
+
147
+ ## [2024.1](https://github.com/python/python-docs-theme/releases/tag/2024.1)
148
+
149
+ - Underline links for readability and a11y (#160, #166)
150
+ Contributed by Hugo van Kemenade
151
+ - Add `hosted_on` variable for a link in the footer (#165)
152
+ Contributed by Hugo van Kemenade
153
+ - Consistently reference `theme_root_icon` (#163)
154
+ Contributed by Marko Budiselic
155
+ - Dark mode: fix contrast of footer highlight (#162)
156
+ Contributed by Hugo van Kemenade
157
+
158
+ ## [2023.9](https://github.com/python/python-docs-theme/releases/tag/2023.9)
159
+
160
+ - Focus search box when pressing slash (#153)
161
+ Contributed by Hugo van Kemenade
162
+
163
+ ## [2023.8](https://github.com/python/python-docs-theme/releases/tag/2023.8)
164
+
165
+ - Add Python 3.12 and 3.13 classifiers (#147)
166
+ Contributed by Hugo van Kemenade
167
+ - Dark mode: Also give aside.topic a dark background (#150)
168
+ Contributed by Hugo van Kemenade
169
+ - Restore the menu on mobile devices (inadvertently broken in 2023.7) (#146)
170
+ Contributed by Hugo van Kemenade
171
+
172
+ ## [2023.7](https://github.com/python/python-docs-theme/releases/tag/2023.7)
173
+
174
+ - Fix compatibility with Sphinx 7.1 (#137)
175
+ Contributed by Pradyun Gedam
176
+ - Enable the slash keypress to focus the search field (#141)
177
+ Contributed by Mike Fiedler
178
+ - Sphinx 6.2 fix: add `nav.contents` where `div.topic` is used (#138)
179
+ Contributed by Hugo van Kemenade
180
+ - Dark mode: fix contrast for C++ specific styling (#133)
181
+ Contributed by Hugo van Kemenade
182
+ - Don't let long code literals extend beyond the right side of the screen (#139)
183
+ Contributed by Hugo van Kemenade
184
+ - Test with Python 3.12 (#140)
185
+ Contributed by Hugo van Kemenade
186
+
187
+ ## [2023.5](https://github.com/python/python-docs-theme/releases/tag/2023.5)
188
+
189
+ - Add a dark theme. (#44)
190
+ Contributed by Nils K
191
+ - Fix: Remove searchbox id from form. (fixes #117)
192
+ Contributed by Nils K
193
+ - Update `python-docs-theme` to work with Sphinx 5 & 6. (#99 & #127)
194
+ Contributed by Adam Turner
195
+ - Override font for `.sig` for consistency with other code blocks. (#121)
196
+ Contributed by Chris Warrick
197
+ - Dark mode: add class to invert image brightness. (#128)
198
+ Contributed by Hugo van Kemenade
199
+
200
+
201
+ ## [2023.3.1](https://github.com/python/python-docs-theme/releases/tag/2023.3.1)
202
+
203
+ - Skip cache-busting for old Sphinx #113
204
+
205
+
206
+ ## [2023.3](https://github.com/python/python-docs-theme/releases/tag/2023.3)
207
+
208
+ - Fix problem with monospace rendering in Vivaldi #104
209
+ - Fix mobile nav obstructing content #96
210
+ - Reduce footer margin only for desktop #106
211
+ - Append a hash ?digest to CSS files for cache-busting #108
212
+
213
+
214
+ ## [2022.1](https://github.com/python/python-docs-theme/releases/tag/2022.1)
215
+
216
+ - Add a configuration for license URL. (#90)
217
+ - Exclude the floating navbar from CHM help. (#84)
218
+ - Make sidebar scrollable and sticky (on modern browsers) (#91)
219
+
220
+
221
+ ## [2021.11.1](https://github.com/python/python-docs-theme/releases/tag/2021.11.1)
222
+
223
+ - Fix monospace again, on buggy Google Chrome (#87)
224
+ Contributed by Tushar Sadhwani
225
+
226
+
227
+ ## [2021.11](https://github.com/python/python-docs-theme/releases/tag/2021.11)
228
+
229
+ - Fix monospace on buggy Google Chrome (#85)
230
+ Contributed by Tushar Sadhwani
231
+
232
+
233
+ ## [2021.8](https://github.com/python/python-docs-theme/releases/tag/2021.8)
234
+
235
+ - Add the copyright_url variable in the theme (#67)
236
+ Contributed by jablonskidev
237
+ - Improve readability (#79)
238
+ Contributed by Olga Bulat
239
+ - Remove #searchbox on mobile to fix a layout bug (#76)
240
+ Contributed by Olga Bulat
241
+ - Fix the appearance of version/language selects (#74)
242
+ Contributed by Olga Bulat
243
+
244
+
245
+ ## [2021.5](https://github.com/python/python-docs-theme/releases/tag/2021.5)
246
+
247
+ - Make the theme responsive (#46)
248
+ Contributed by Olga Bulat.
249
+ - Use Python 3.8 for the Github Actions (#71)
250
+ Contributed by Stéphane Wirtel.
251
+ - Use default pygments theme (#68)
252
+ Contributed by Aaron Carlisle.
253
+ - Test Github action to validate the theme against docsbuild scripts. (#69)
254
+ Contributed by Julien Palard.
255
+ - Add the copy button to pycon3 highlighted code blocks. (#64)
256
+ Contributed by Julien Palard.
257
+
258
+
259
+ ## [2020.12](https://github.com/python/python-docs-theme/releases/tag/v2020.12)
260
+
261
+ - Updated the readme, to remind user to install the package in a virtual environment. (#41)
262
+ Contributed by Mariatta.
263
+ - Updated the package url, using the GitHub repository instead of docs.python.org (#49)
264
+ Contributed by Pradyun Gedam.
265
+ - Added license information to the footer of the doc (#36)
266
+ Contributed by Todd.
267
+ - Fixed typo in the footer (#52)
268
+ Contributed by Dominic Davis-Foster.
269
+ - Added information on how to use the package (#32)
270
+ Contributed by Tapasweni Pathak.
271
+ - Fixed code formatting (#53).
272
+ Contributed by Hugo van Kemenade.
273
+ - Fixed code bgcolor and codetextcolor for Sphinx 3.1.0+ (#57)
274
+ Contributed by Zhiming Wang.
275
+
276
+ ## 2018.7
277
+ Corresponds to [44a8f30](https://github.com/python/python-docs-theme/commit/44a8f306db9ec86d277a8a687538d5d51e415130)
278
+
279
+
280
+ ## [2018.2](https://github.com/python/python-docs-theme/releases/tag/2018.2)
281
+
282
+ Initial release.
@@ -0,0 +1,27 @@
1
+ # How to release
2
+
3
+ - Update `CHANGELOG.md`
4
+ - Bump version (YYYY.MM) in `python_docs_theme/__init__.py`
5
+ - Commit
6
+ - Push to check tests pass on
7
+ [GitHub Actions](https://github.com/python/python-docs-theme/actions)
8
+ - Go to https://github.com/python/python-docs-theme/releases
9
+ - Click "Draft a new release"
10
+ - Click "Tag: Select tag"
11
+ - Type the next YYYY.MM version (no leading zero) and
12
+ select "Create new tag"
13
+ - Click "Create" for "YYYY.MM will be created on publish"
14
+ - Leave the "Release title" blank (it will be autofilled)
15
+ - Click "Generate release notes" and amend as required
16
+ - Click "Publish release"
17
+ - Check the tagged [GitHub Actions build](https://github.com/python/python-docs-theme/actions/workflows/pypi-package.yml)
18
+ has deployed to [PyPI](https://pypi.org/project/python-docs-theme/#history)
19
+
20
+ # Makefile usage
21
+
22
+ This project includes a simple Makefile for syncing changes to the theme with
23
+ the main CPython repository. Run `make help` for details on available rules.
24
+
25
+ There is one configurable variable, `CPYTHON_PATH`, which should be the path
26
+ to the CPython repository on your machine. By default, it points to
27
+ `../cpython`.