diff --git a/CHANGES b/CHANGES
index 2c97ec106..6e74ee325 100644
--- a/CHANGES
+++ b/CHANGES
@@ -85,6 +85,8 @@ Incompatible changes
Deprecated
----------
+* ``sphinx.ext.napoleon.docstring.GoogleDocstring._qualify_name()``
+
Features added
--------------
@@ -99,6 +101,14 @@ Bugs fixed
----------
* #10133: autodoc: Crashed when mocked module is used for type annotation
+* #10146: autodoc: :confval:`autodoc_default_options` does not support
+ ``no-value`` option
+* #9971: autodoc: TypeError is raised when the target object is annotated by
+ unhashable object
+* #9529: LaTeX: named auto numbered footnote (ex. ``[#named]``) that is referred
+ multiple times was rendered to a question mark
+* #10181: napoleon: attributes are displayed like class attributes for google
+ style docstrings when :confval:`napoleon_use_ivar` is enabled
* #10122: sphinx-build: make.bat does not check the installation of sphinx-build
command before showing help
@@ -123,6 +133,9 @@ Features added
Bugs fixed
----------
+* #9876: autodoc: Failed to document an imported class that is built from native
+ binary module
+
Testing
--------
diff --git a/doc/development/theming.rst b/doc/development/theming.rst
index 08cd37121..ed87f72e3 100644
--- a/doc/development/theming.rst
+++ b/doc/development/theming.rst
@@ -88,8 +88,8 @@ Python :mod:`ConfigParser` module) and has the following structure:
Distribute your theme as a Python package
-----------------------------------------
-As a way to distribute your theme, you can use Python package. Python package
-brings to users easy setting up ways.
+As a way to distribute your theme, you can use a Python package. This makes it
+easier for users to set up your theme.
To distribute your theme as a Python package, please define an entry point
called ``sphinx.html_themes`` in your ``setup.py`` file, and write a ``setup()``
diff --git a/doc/extdev/deprecated.rst b/doc/extdev/deprecated.rst
index 1d3ad6930..9fc1110fc 100644
--- a/doc/extdev/deprecated.rst
+++ b/doc/extdev/deprecated.rst
@@ -42,6 +42,11 @@ The following is a list of deprecated interfaces.
- 7.0
- N/A
+ * - ``sphinx.ext.napoleon.docstring.GoogleDocstring._qualify_name()``
+ - 4.5
+ - 6.0
+ - N/A
+
* - ``sphinx.ext.autodoc.AttributeDocumenter._datadescriptor``
- 4.3
- 6.0
diff --git a/doc/usage/extensions/autodoc.rst b/doc/usage/extensions/autodoc.rst
index 506d20905..d448c01ee 100644
--- a/doc/usage/extensions/autodoc.rst
+++ b/doc/usage/extensions/autodoc.rst
@@ -528,7 +528,8 @@ There are also config values that you can set:
The supported options are ``'members'``, ``'member-order'``,
``'undoc-members'``, ``'private-members'``, ``'special-members'``,
``'inherited-members'``, ``'show-inheritance'``, ``'ignore-module-all'``,
- ``'imported-members'``, ``'exclude-members'`` and ``'class-doc-from'``.
+ ``'imported-members'``, ``'exclude-members'``, ``'class-doc-from'`` and
+ ``'no-value'``.
.. versionadded:: 1.8
@@ -541,6 +542,9 @@ There are also config values that you can set:
.. versionchanged:: 4.1
Added ``'class-doc-from'``.
+ .. versionchanged:: 4.5
+ Added ``'no-value'``.
+
.. confval:: autodoc_docstring_signature
Functions imported from C modules cannot be introspected, and therefore the
diff --git a/doc/usage/restructuredtext/basics.rst b/doc/usage/restructuredtext/basics.rst
index 16cfc6109..c846dc145 100644
--- a/doc/usage/restructuredtext/basics.rst
+++ b/doc/usage/restructuredtext/basics.rst
@@ -245,10 +245,10 @@ follow:
* ``#`` with overline, for parts
* ``*`` with overline, for chapters
-* ``=``, for sections
-* ``-``, for subsections
-* ``^``, for subsubsections
-* ``"``, for paragraphs
+* ``=`` for sections
+* ``-`` for subsections
+* ``^`` for subsubsections
+* ``"`` for paragraphs
Of course, you are free to use your own marker characters (see the reST
documentation), and use a deeper nesting level, but keep in mind that most
diff --git a/package-lock.json b/package-lock.json
index 3c5602909..fbc583a39 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1485,6 +1485,12 @@
}
},
"dependencies": {
+ "@socket.io/base64-arraybuffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
+ "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==",
+ "dev": true
+ },
"@types/component-emitter": {
"version": "1.2.11",
"resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz",
@@ -1504,19 +1510,19 @@
"dev": true
},
"@types/node": {
- "version": "17.0.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz",
- "integrity": "sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==",
+ "version": "17.0.17",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz",
+ "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==",
"dev": true
},
"accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
- "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"dev": true,
"requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
}
},
"ansi-regex": {
@@ -1612,9 +1618,9 @@
"dev": true
},
"chokidar": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
- "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
"requires": {
"anymatch": "~3.1.2",
@@ -1690,9 +1696,9 @@
"dev": true
},
"cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
"dev": true
},
"cors": {
@@ -1712,9 +1718,9 @@
"dev": true
},
"date-format": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
- "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz",
+ "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==",
"dev": true
},
"debug": {
@@ -1769,9 +1775,9 @@
"dev": true
},
"engine.io": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz",
- "integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz",
+ "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==",
"dev": true,
"requires": {
"@types/cookie": "^0.4.1",
@@ -1804,12 +1810,12 @@
}
},
"engine.io-parser": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz",
- "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz",
+ "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==",
"dev": true,
"requires": {
- "base64-arraybuffer": "~1.0.1"
+ "@socket.io/base64-arraybuffer": "~1.0.2"
}
},
"ent": {
@@ -1867,26 +1873,26 @@
}
},
"flatted": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
- "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
+ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
"dev": true
},
"follow-redirects": {
- "version": "1.14.7",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
- "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==",
+ "version": "1.14.8",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
+ "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==",
"dev": true
},
"fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+ "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
}
},
"fs.realpath": {
@@ -1932,9 +1938,9 @@
}
},
"graceful-fs": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
- "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
+ "version": "4.2.9",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
+ "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
"dev": true
},
"http-errors": {
@@ -2056,24 +2062,25 @@
"dev": true
},
"jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.6"
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
}
},
"karma": {
- "version": "6.3.9",
- "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.9.tgz",
- "integrity": "sha512-E/MqdLM9uVIhfuyVnrhlGBu4miafBdXEAEqCmwdEMh3n17C7UWC/8Kvm3AYKr91gc7scutekZ0xv6rxRaUCtnw==",
+ "version": "6.3.14",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.14.tgz",
+ "integrity": "sha512-SDFoU5F4LdosEiUVWUDRPCV/C1zQRNtIakx7rWkigf7R4sxGADlSEeOma4S1f/js7YAzvqLW92ByoiQptg+8oQ==",
"dev": true,
"requires": {
"body-parser": "^1.19.0",
"braces": "^3.0.2",
"chokidar": "^3.5.1",
- "colors": "^1.4.0",
+ "colors": "1.4.0",
"connect": "^3.7.0",
"di": "^0.0.1",
"dom-serialize": "^2.2.1",
@@ -2082,7 +2089,7 @@
"http-proxy": "^1.18.1",
"isbinaryfile": "^4.0.8",
"lodash": "^4.17.21",
- "log4js": "^6.3.0",
+ "log4js": "^6.4.1",
"mime": "^2.5.2",
"minimatch": "^3.0.4",
"qjobs": "^1.2.0",
@@ -2121,16 +2128,16 @@
"dev": true
},
"log4js": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz",
- "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz",
+ "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==",
"dev": true,
"requires": {
- "date-format": "^3.0.0",
- "debug": "^4.1.1",
- "flatted": "^2.0.1",
- "rfdc": "^1.1.4",
- "streamroller": "^2.2.4"
+ "date-format": "^4.0.3",
+ "debug": "^4.3.3",
+ "flatted": "^3.2.4",
+ "rfdc": "^1.3.0",
+ "streamroller": "^3.0.2"
},
"dependencies": {
"debug": {
@@ -2178,9 +2185,9 @@
}
},
"minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
@@ -2193,9 +2200,9 @@
"dev": true
},
"negotiator": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
- "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"dev": true
},
"normalize-path": {
@@ -2241,9 +2248,9 @@
"dev": true
},
"picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true
},
"qjobs": {
@@ -2325,9 +2332,9 @@
"dev": true
},
"socket.io": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.0.tgz",
- "integrity": "sha512-bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz",
+ "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==",
"dev": true,
"requires": {
"accepts": "~1.3.4",
@@ -2402,14 +2409,14 @@
"dev": true
},
"streamroller": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz",
- "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz",
+ "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==",
"dev": true,
"requires": {
- "date-format": "^2.1.0",
+ "date-format": "^4.0.3",
"debug": "^4.1.1",
- "fs-extra": "^8.1.0"
+ "fs-extra": "^10.0.0"
},
"dependencies": {
"date-format": {
@@ -2496,9 +2503,9 @@
"dev": true
},
"universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true
},
"unpipe": {
diff --git a/package.json b/package.json
index 6e8fb8655..a48b96d62 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
},
"devDependencies": {
"jasmine-core": "^3.4.0",
- "karma": "^6.3.9",
+ "karma": "^6.3.14",
"karma-firefox-launcher": "^2.0.0",
"karma-jasmine": "^4.0.0"
}
diff --git a/sphinx/builders/latex/transforms.py b/sphinx/builders/latex/transforms.py
index b12882df6..621c6a7cf 100644
--- a/sphinx/builders/latex/transforms.py
+++ b/sphinx/builders/latex/transforms.py
@@ -237,7 +237,8 @@ class LaTeXFootnoteTransform(SphinxPostTransform):
blah blah blah ...
* Replace second and subsequent footnote references which refers same footnote definition
- by footnotemark node.
+ by footnotemark node. Additionally, the footnote definition node is marked as
+ "referred".
Before::
@@ -258,7 +259,7 @@ class LaTeXFootnoteTransform(SphinxPostTransform):
After::
blah blah blah
-
+
'),
+ (r'\\sphinxAtStartPar\n'
+ r'\\index{Python Enhancement Proposals@\\spxentry{Python Enhancement Proposals}'
+ r'!PEP 8@\\spxentry{PEP 8}}\\sphinxhref{https?://www.python.org/dev/peps/pep-0008}'
+ r'{\\sphinxstylestrong{PEP 8}}')
),
(
# pep role with anchor
- 'verify',
+ 'verify_re',
':pep:`8#id1`',
+ # since docutils-0.19, :pep: role points to python.org via https schema
(''
+ 'href="https?://www.python.org/dev/peps/pep-0008#id1">'
'PEP 8#id1
'),
- ('\\sphinxAtStartPar\n'
- '\\index{Python Enhancement Proposals@\\spxentry{Python Enhancement Proposals}'
- '!PEP 8\\#id1@\\spxentry{PEP 8\\#id1}}\\sphinxhref'
- '{http://www.python.org/dev/peps/pep-0008\\#id1}'
- '{\\sphinxstylestrong{PEP 8\\#id1}}')
+ (r'\\sphinxAtStartPar\n'
+ r'\\index{Python Enhancement Proposals@\\spxentry{Python Enhancement Proposals}'
+ r'!PEP 8\\#id1@\\spxentry{PEP 8\\#id1}}\\sphinxhref'
+ r'{https?://www.python.org/dev/peps/pep-0008\\#id1}'
+ r'{\\sphinxstylestrong{PEP 8\\#id1}}')
),
(
# rfc role