Markdown es un lenguaje de marcado
ligero muy popular entre developers. Es usado en muchísimas plataformas que
manejan texto plano (GitHub, foros, blogs, ...) y es muy común
encontrar varios archivos en ese formato en cualquier tipo de repositorio
(empezando por el tradicional README.md
).
Estos archivos Markdown
normalmente contienen links (vínculos/ligas) que
muchas veces están rotos o ya no son válidos y eso perjudica mucho el valor de
la información que se quiere compartir.
Con el fin de visualizar mejor las actividades a realizar y planificar las tareas y objetivos, fueron elaborados 2 diagramas de flujo.
Esta librería recibe tanto rutas absolutas como rutas relativas que pueden contener o no archivos markdown. Una vez identificados estos archivos se procede a extraer los links y verificar si están rotos o no. También muestra una estadística respecto a todos los links encontrados, como el numero de links totales, links únicos (que no se encuentran repetidos en otro(s) archivo(s)) y los links que están rotos.
El valor de entrada puede ser una ruta absoluta "C:\Users\Usuario\Documents\GitHub\BOG005-MD-links\src\Pruebas" o una ruta relativa "src\Pruebas"
npm install isofiabustosa-md-links
El módulo se puede importar en otros scripts de Node.js:
const mdLinks = require("isofiabustosa-md-links");
mdLinks("./some/example.md")
.then(links => {
// => [{ href, text, file }, ...]
})
.catch(console.error);
mdLinks("./some/example.md", { validate: true })
.then(links => {
// => [{ href, text, file, status, ok }, ...]
})
.catch(console.error);
mdLinks("./some/dir")
.then(links => {
// => [{ href, text, file }, ...]
})
.catch(console.error);
En la terminal puede ejecutar las siguientes Lineas de Comando, de acuerdo a la información que requiera sobre su archivo markdown:
md-links <path-to-file> [options]
Por ejemplo: Si solo se pasa la ruta, se muestra la ruta absoluta, el link y el texto
$ md-links ./some/example.md
./some/example.md http://algo.com/2/3/ Link a algo
./some/example.md https://otra-cosa.net/algun-doc.html algún doc
./some/example.md http://google.com/ Google
Si se pasa la opción --validate
, se muestra de cada link la ruta absoluta, el link, el código de status, si el link está roto('Fail') o está bien('OK') y el texto.
Por ejemplo:
$ md-links ./some/example.md --validate
./some/example.md http://algo.com/2/3/ ok 200 Link a algo
./some/example.md https://otra-cosa.net/algun-doc.html fail 404 algún doc
./some/example.md http://google.com/ ok 301 Google
Si se pasa la opción --stats
el resultado serán datos estadísticos con los links totales y únicos
Por ejemplo:
$ md-links ./some/example.md --stats
Total: 3
Unique: 3
También se puede combinar --stats
y --validate
para obtener estadísticas que
necesiten de los resultados de la validación.
$ md-links ./some/example.md --stats --validate
Total: 3
Unique: 3
Broken: 1