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.
Dentro de una comunidad de código abierto, nos han propuesto 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.
Para instalar utilizar el siguiente comando en la terminal:
npm install cloiw-md-links
-
path
: Ruta absoluta o relativa al archivo o directorio. -
options
: Un objeto con las siguientes propiedades:-
validate
: Booleano que determina si se desea validar los links encontrados. -
stats
: Booleano que determina si se desea ver estadisticas de los links.
-
La función retorna una promesa (Promise) que resuelve a un arreglo (Array) de objetos (Object), donde cada objeto representa un link y contiene las siguientes propiedades:
- href: URL encontrada.
- text: Texto que aparecía dentro del link
- file: Ruta del archivo donde se encontró el link.
const mdLinks = require('cloiw-md-links');
mdLinks.mdLinks('./test_folder',{validate:false,stats:false})
.then(res => {
// => [{ href, text, file }]
}).catch(err=>{
console.log(err)
})
mdLinks.mdLinks('./test_folder',{stats:true}).then(res => {
// => {total,unique}
}).catch(err=>{
console.log(err)
})
md-links <path-to-file> [options]
$ md-links ./test/md-files-test/test-file-1.md
./test/md-files-test/test-file-1.md https://es.wikipedia.org/wiki/Markdown Markdown
./test/md-files-test/test-file-1.md https://es.wikipedia.org/wiki/Markdown Markdown
./test/md-files-test/test-file-1.md https://docs.npmjs.com/getting-started/what-is-npm NPM
Si pasamos la opción --validate
, el módulo hace una petición HTTP para
averiguar si el link funciona o no. Si el link resulta en una redirección a una
URL que responde ok, entonces consideraremos el link como ok.
$ md-links ./test/md-files-test/test-file-1.md --validate
./test/md-files-test/test-file-1.md https://es.wikipedia.org/wiki/Markdown Markdown 200 OK
./test/md-files-test/test-file-1.md https://es.wikipedia.org/wiki/Markdown Markdown 200 OK
./test/md-files-test/test-file-1.md https://docs.npmjs.com/getting-started/what-is-npm NPM 200 OK
Si pasamos la opción --stats
el output será un texto con el total de links y el total de links únicos.
$ md-links ./test/md-files-test/test-file-1.md --stats
Total Links: 3
Unique Links: 2
También podemos combinar --stats
y --validate
para obtener la cantidad de links buenos y rotos.
$ md-links ./test/md-files-test/test-file-1.md --stats --validate
Total Links: 3
Ok Links: 3
Broken Links: 0