mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Use `pyproject.toml
entry points rather than
setup.py
`
This commit is contained in:
parent
71d3eaee75
commit
909f93c7ec
@ -10,23 +10,17 @@ Discover builders by entry point
|
|||||||
that they do not have to be listed in the :confval:`extensions` configuration
|
that they do not have to be listed in the :confval:`extensions` configuration
|
||||||
value.
|
value.
|
||||||
|
|
||||||
Builder extensions should define an entry point in the ``sphinx.builders``
|
Builder extensions should define an entry point in the ``"sphinx.builders"``
|
||||||
group. The name of the entry point needs to match your builder's
|
group. The name of the entry point needs to match your builder's
|
||||||
:attr:`~.Builder.name` attribute, which is the name passed to the
|
:attr:`~.Builder.name` attribute, which is the name passed to the
|
||||||
:option:`sphinx-build -b` option. The entry point value should equal the
|
:option:`sphinx-build -b` option. The entry point value should equal the
|
||||||
dotted name of the extension module. Here is an example of how an entry point
|
dotted name of the extension module. Here is an example of how an entry point
|
||||||
for 'mybuilder' can be defined in the extension's ``setup.py``
|
for 'mybuilder' can be defined in the extension's ``pyproject.toml``
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: toml
|
||||||
|
|
||||||
setup(
|
[project.entry-points."sphinx.builders"]
|
||||||
# ...
|
mybuilder = "my.extension.module"
|
||||||
entry_points={
|
|
||||||
'sphinx.builders': [
|
|
||||||
'mybuilder = my.extension.module',
|
|
||||||
],
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
Note that it is still necessary to register the builder using
|
Note that it is still necessary to register the builder using
|
||||||
:meth:`~.Sphinx.add_builder` in the extension's :func:`setup` function.
|
:meth:`~.Sphinx.add_builder` in the extension's :func:`setup` function.
|
||||||
|
@ -95,21 +95,20 @@ As a way to distribute your theme, you can use a Python package. This makes it
|
|||||||
easier for users to set up your theme.
|
easier for users to set up your theme.
|
||||||
|
|
||||||
To distribute your theme as a Python package, please define an entry point
|
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()``
|
called ``sphinx.html_themes`` in your ``pyproject.toml`` file,
|
||||||
function to register your themes using ``add_html_theme()`` API in it::
|
and write a ``setup()`` function to register your theme
|
||||||
|
using the :meth:`~sphinx.application.Sphinx.add_html_theme` API:
|
||||||
|
|
||||||
# 'setup.py'
|
.. code-block:: toml
|
||||||
setup(
|
|
||||||
...
|
|
||||||
entry_points = {
|
|
||||||
'sphinx.html_themes': [
|
|
||||||
'name_of_theme = your_package',
|
|
||||||
]
|
|
||||||
},
|
|
||||||
...
|
|
||||||
)
|
|
||||||
|
|
||||||
# 'your_package.py'
|
# pyproject.toml
|
||||||
|
|
||||||
|
[project.entry-points."sphinx.html_themes"]
|
||||||
|
name_of_theme = "your_theme_package"
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
# your_theme_package.py
|
||||||
from os import path
|
from os import path
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
|
Loading…
Reference in New Issue
Block a user