Generar documentación

Mejorando la documentación con JSDoc


Como vimos en el artículo anterior, JSDoc nos proporciona de serie muchas características super útiles en tiempo de desarrollo, es decir, sin instalar ni configurar ningún sistema especial, simplemente escribiendo comentarios de cierta forma, siguiendo unas pautas.

No obstante, podemos instalar JSDoc en nuestro proyecto y utilizar para generar una página con documentación de forma automática, que extrae de los comentarios del código.

Instalación de JSDoc

Para ello, lo único que tenemos que hacer es instalar JSDoc en nuestro proyecto:

$ npm install -D jsdoc

Una vez instalada esta dependencia de desarrollo, lo único que tenemos que hacer es ejecutar el comando jsdoc mediante npx, pnpm dlx para generar la documentación, pasándole el archivo principal:

$ npx jsdoc index.js

Esto generará una carpeta out/ con todos los archivos de la web de documentación (HTML, CSS, JS, etc...). Si queremos cambiar el nombre de la carpeta, bastará con añadir el parámetro -d nombre, donde nombre es la carpeta a generar.

Usando plantillas o temas

JSDoc utiliza la plantilla default de base, sin embargo, tiene la posibilidad de permitir utilizar otras plantillas para conseguir documentaciones más vistosas o bonitas.

Por ejemplo, indico algunas alternativas interesantes:

GitHubInstalaciónDescripción
Minaminpm install -D minami taffydbDocumentación minimalista para JSDoc.
Clean JSDoc Themenpm install -D clean-jsdoc-themeTemplate de JSDoc muy vistoso y elegante.
DocDashnpm install -D docdashDocumentación basada estilo Lodash.

No obstante, hay muchas más, solo tienes que darte una vuelta por npmjs.com buscando jsdoc template.

Una vez instalado el paquete del template, este se guarda en node_modules. A la hora de generar la documentación, como vimos antes, le añadiremos el parámetro --template con la ruta del paquete a utilizar. Por ejemplo:

$ npx jsdoc src/index.js --template node_modules/clean-jsdoc-theme/

Esto usará el template de clean-jsdoc-theme para generar la documentación, que se verá similar a esto:

Plantilla clean-jsdoc-theme para JSDoc

Generando información en JSON

Uno de los templates incluidos en JSDoc se llama haruki. Se trata de un template especial que genera la documentación en formato JSON. Esto puede ser especialmente interesante si luego queremos utilizar esa documentación en una web o consumir ese JSON para otros fines.

Simplemente, a la hora de generar la documentación, indicamos el template y añadimos el parámetro -d console:

$ npx jsdoc index.js --template node_modules/jsdoc/templates/haruki -d console

Al ejecutar este comando, se nos muestra una salida en formato JSON como la siguiente:

{
  "functions": [
    {
      "name": "sum",
      "access": "",
      "virtual": false,
      "description": "Función que suma dos números.",
      "parameters": [
        {
          "name": "a",
          "type": "number",
          "description": "Primer número",
          "default": "",
          "optional": "",
          "nullable": ""
        },
        {
          "name": "b",
          "type": "number",
          "description": "Segundo número",
          "default": "",
          "optional": "",
          "nullable": ""
        }
      ],
      "examples": [],
      "returns": {
        "type": "number",
        "description": "La suma de los dos números"
      }
    }
  ]
}

Recuerda que la ruta del template la estoy indicando como si estuvieramos en el raíz del proyecto, accediendo directamente a node_modules. Esa ruta puede variar en tu caso.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev