md-links-sgyg
v1.0.3
Published
Tool to extract links, validate and get stats from them given an md file
Maintainers
Readme
Markdown Links Extractor
Índice
1. Objetivo
Crear una herramienta usando Node.js, que lea y analice archivos en formato Markdown para verificar los links que contengan y reportar algunas estadísticas como links totales, únicos y rotos.
Esta herramienta se ejecuta con una línea de comando (CLI) que permite dar acceso a la librería o paquetería en Javascript.
2. Diagrama de flujo
Se creó un diagrama de flujo donde se juntan los procesos a seguir en la API y en el CLI para cumplir con el objetivo del proyecto. Adicionalmente, en distinto formato, se inserta una post note donde se describen igualmente los pasos pensando en el/la usuaria.

3. Objetivos de aprendizaje
JavaScript
Node.js
Control de Versiones (Git y GitHub)
HTTP
Jest
4. Descripción del módulo
Instalación

Documentación del API
mdLinks(path, {options})
Parámetros
path: el nombre del path del archivo en formato markdown donde se encuentran los links o directorio que contiene archivos markdown en string ej. './pathTo'
options: las opciones válidas puestas al lado del path que devuelven un booleano (true/false) son las siguientes:
--validate para validar los links imprimiendo en consola el statusCode del HTTP request más un mensaje de 'ok' si el link tiene un statusCode de '200' o 'fail' si el link tiene un statusCode diferente a '200'.
--stats para imprimir en consola el número total de links y el número total de links únicos o no repetidos.
--validate --stats que combina el retorno de la opción --validate junto con el de --stats imprimiendo además el número total de links rotos.
Ejemplos
Después de haber instalado la paquetería, en el package.json file se verá de esta manera:

Creación de archivo de prueba
Se crea un archivo con extensión md de prueba en cuyo contenido vienen links para validar a forma de ejemplo.

Llamar la función mdLinks importada por npm
Con la función importada se crea otra función que usará mdLinks con los parámetros necesarios: el path(file o folder) y la opcion { validate:false } en este caso.

Lo que se verá como resultado será una promesa con el href, file y text correspondientes a cada link:

Con la opción { validate:true } se agregará a la promesa la petición a http con el statusCode y el statusMessage. Será statusCode:200 y statusMessage 'ok' si el link es correcto; statusCode:'NA' y statusMessage 'fail' si el link presenta algún fallo o error.

5. Tutoriales
NodeSchool workshoppers
Otros recursos
- Acerca de Node.js - Documentación oficial
- Node.js file system - Documentación oficial
- Node.js http.get - Documentación oficial
- Node.js - Wikipedia
- What exactly is Node.js? - freeCodeCamp
- ¿Qué es Node.js y para qué sirve? - drauta.com
- ¿Qué es Nodejs? Javascript en el Servidor - Fazt en YouTube
- ¿Simplemente qué es Node.js? - IBM Developer Works, 2011
- Node.js y npm
- Módulos, librerías, paquetes, frameworks... ¿cuál es la diferencia?
- Asíncronía en js
- NPM
- Publicar packpage
- Crear módulos en Node.js
- Leer un archivo
- Leer un directorio
- Path
- Linea de comando CLI
