Run black on python code blocks in documentation files.
pip install blacken-docs
blacken-docs provides a single executable (blacken-docs) which will modify
.rst / .md / .tex files in place.
It currently supports the following black
options:
-l/--line-length-t/--target-version-S/--skip-string-normalization
Following additional parameters can be used:
-E/--skip-errors
blacken-docs will format code in the following block types:
(markdown)
```python
def hello():
print("hello world")
```(markdown pycon)
```pycon
>>> def hello():
... print("hello world")
...
```(rst)
.. code-block:: python
def hello():
print("hello world")(rst pycon)
.. code-block:: pycon
>>> def hello():
... print("hello world")
...(latex)
\begin{minted}{python}
def hello():
print("hello world")
\end{minted}(latex pycon)
\begin{minted}{pycon}
>>> def hello():
... print("hello world")
...
\end{minted}(latex with pythontex)
\begin{pycode}
def hello():
print("hello world")
\end{pycode}(markdown/rst in python docstrings)
def f():
"""docstring here
.. code-block:: python
print("hello world")
```python
print("hello world")
```
"""See pre-commit for instructions
Sample .pre-commit-config.yaml:
- repo: https://github.com/asottile/blacken-docs
rev: v1.11.0
hooks:
- id: blacken-docs
additional_dependencies: [black==...]Since black is currently a moving target, it is suggested to pin black
to a specific version using additional_dependencies.