Automatizar la documentacion en python con MKDocs

Ejemplo de documentación python con MKDocs

En uno de mis últimos cursos de python me han preguntado cómo se podía realizar con python la documentación automatizada de una aplicación. Dado que en los proyectos donde he trabajado nunca he tenido que realizar esta tarea personalmente, desconocía la parte práctica. Por lo tanto, he creado este tutorial de ejemplo utilizando MKDocs https://www.mkdocs.org/ y Material for MkDocs https://squidfunk.github.io/mkdocs-material/ como aplicación para la presentación de la misma.

Otra opción para quienes tienen un proyecto open source es utilizar la plataforma Read the Docs que permite crear, alojar y navegar por la documentación mediante la creación de una cuenta (gratuita para proyectos open source) en su portal.

Esta cuenta luego se conectará al repositorio donde está alojada la aplicación (Bitbucket, Github, Gitlab, etc.) y genera la documentación automáticamente a través de unos scripts creados a tal fin. Un completo tutorial lo podéis encontrar en https://docs.readthedocs.io/en/stable/tutorial/index.html y ejemplos en https://docs.readthedocs.io/en/stable/examples.html.

mkdocs sitio web

Instalar mkdocs

  • Para instalar mkdocs crearemos un proyecto de ejemplo en un ambiente virtual en nuestro ordenador. Abrimos la consola en nuestro Linux y ejecutamos:
python -m venv ejemplo_api/venv
cd ejemplo_api
source venv/bin/activate
  • Ahora procedemos a instalar mkdocs y material:
python -m pip install mkdocs
python -m pip install "mkdocstrings[python]"
python -m pip install mkdocs-material

Configurar mkdocs y material

  • A continuación creamos los ficheros docs/ejemploAsyncioAPImain.md, docs/ejemploAsyncioAPI.md, mkdocs.yml, y requirements.txt. Abrimos nuestro IDE (integrated development environment) preferido y escribimos en el fichero ejemploAsyncioAPImain.md*
::: ejemploAsyncioAPImain
  • En docs/ejemploAsyncioAPI.md introducimos:
\# API Reference
::: ejemploAsyncioAPI
  • En mkdocs.yml:
site_name: Documentación de la aplicación

theme:
  name: "material"

plugins:
  - mkdocstrings

nav:
  - Índice: index.md
  - ejemploAsyncioAPImain.md
  - ejemploAsyncioAPI.md
  • Finalmente para construir la documentación utilizamos en primer lugar doctests:
    cd docs
    python -m doctest  ejemploAsyncioAPImain
    python -m doctest  ejemploAsyncioAPI
  • Luego creamos la aplicación web con MKDocs:
    mkdocs build
    mkdocs serve --dev-addr=0.0.0.0:8088

Ya podremos ir al navegador y abrir la dirección http://127.0.0.1:8088 para ver nuestra documentación.

Imagen de portada: Web de MKDocs Material

Si buscas un formador para realizar un curso u otra actividad formativa (webinar, workshops, bootcamps, etc.) en tu organización, me puedes ubicar a través de la página de contacto. Muchas gracias.

Si te ha gustado el artículo puedes ayudarme haciendo una donación con criptomonedas. Gracias!!!