docs/docsite/rst/dev_guide/developing_collections_documenting.rst
.. _documenting_collections:
Documenting collections
Documenting modules is thoroughly documented in :ref:module_documenting. Plugins can be documented the same way as modules, that is with DOCUMENTATION, EXAMPLES, and RETURN blocks.
To document a role, you have to add a role argument spec by creating a file meta/argument_specs.yml in your role. See :ref:role_argument_spec for details. As an example, you can look at the argument specs file <https://github.com/telekom-mms/ansible-collection-icinga-director/blob/main/roles/ansible_icinga/meta/argument_specs.yml>_ of the :ansplugin:telekom_mms.icinga_director.ansible_icinga role <telekom_mms.icinga_director.ansible_icinga#role> on GitHub.
.. _verify_collection_docs:
You can use antsibull-docs to lint your collection documentation.
See Linting collection documentation <https://ansible.readthedocs.io/projects/antsibull-docs/collection-docs/#linting-collection-docs>_.
for details.
.. _build_collection_docsite:
You can use antsibull-docs <https://pypi.org/project/antsibull-docs>_ to build a Sphinx-based docsite for your collection:
#. Create your collection and make sure you can use it with ansible-core by adding it to your :ref:COLLECTIONS_PATHS.
#. Create a directory dest and run antsibull-docs sphinx-init --use-current --dest-dir dest namespace.name, where namespace.name is the name of your collection.
#. Go into dest and run pip install -r requirements.txt. You might want to create a venv and activate it first to avoid installing this globally.
#. Then run ./build.sh.
#. Open build/html/index.html in a browser of your choice.
See antsibull-docs documentation <https://ansible.readthedocs.io/projects/antsibull-docs/>_ for complete details.
If you want to add additional documentation to your collection next to the plugin, module, and role documentation, see :ref:collections_doc_dir.