Markdown Links
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.
Instrucciones
Para instalar utilizar el siguiente comando en la terminal:
npm install cloiw-md-links
JavaScript API
mdLinks(path, options)
Argumentos
-
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.
Valor de retorno
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; mdLinks.mdLinks .then.catch mdLinks.mdLinks.then.catch
CLI (Command Line Interface - Interfaz de Línea de Comando)
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
Options
--validate
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
--stats
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: 3Unique Links: 2
--stats
--validate
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 --validateTotal Links: 3Ok Links: 3Broken Links: 0