Tutorial¶
Document your first directive or role¶
Use a single-object directive when you want one rendered reference entry:
```{eval-rst}
.. autodirective:: my_project.docs_ext.MyDirective
```
```{eval-rst}
.. autorole:: my_project.docs_roles.cli_option_role
```
Use the bulk directives to render every directive or role a module registers:
```{eval-rst}
.. autodirectives:: my_project.docs_ext
```
```{eval-rst}
.. autoroles:: my_project.docs_roles
```
The same single/bulk pattern covers every docutils extension point — transforms, readers, parsers, writers, custom nodes, and translators:
```{eval-rst}
.. autotransform:: my_project.transforms.SanitizeTransform
```
```{eval-rst}
.. autonodes:: my_project
```
Bulk forms accept either an extension package (its setup() is
replayed so add_transform() and
add_node() registrations surface with their
real metadata) or a plain module (scanned for subclasses of the matching
docutils base class).