blacken-docs
Run black
on python code blocks in documentation files.
install
pip install blacken-docs
usage
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")
```
(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 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")
```
"""
usage with pre-commit
See pre-commit for instructions
Sample .pre-commit-config.yaml
:
- repo: https://github.com/asottile/blacken-docs
rev: v1.9.2
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
.