mdlinks-lca
v1.0.2
Published
Library that analyzes files in Markdown format to verify the links they contain and report statistics.
Maintainers
Readme
Markdown Links
Herramienta que analiza archivos en formato Markdown para verificar los links que contengan y reportar estadísticas.
Índice
1. Diagrama de flujo
El algoritmo para el desarrollo de esta librería se encuentra representado en el siguiente diagrama de flujo

2. Instalación
npm install mdlinks-lca
3. JavaScript API
El módulo debe poder importarse en otros scripts de Node.js y debe ofrecer la siguiente interfaz:
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 calcular las estadísticas básicas sobre los links encontrados.
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
Con validate:false :
href: URL encontrada.text: Texto que aparecía dentro del link (<a>).file: Ruta del archivo donde se encontró el link.
Con validate:true :
href: URL encontrada.text: Texto que aparecía dentro del link (<a>).file: Ruta del archivo donde se encontró el link.status: Código de respuesta HTTP.message: Mensajefailen caso de fallo uoken caso de éxito.
Ejemplo (resultados como comentarios)
const mdLinks = require("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);4 CLI (Command Line Interface - Interfaz de Línea de Comando)
El ejecutable de nuestra aplicación se de la siguiente manera a través de la terminal:
md-links <path-to-file> [options]
Por ejemplo:
$ 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/ GoogleEl comportamiento por defecto analiza el archivo Markdown e imprime los links que vaya encontrando, junto con la ruta del archivo donde aparece y el texto que hay dentro del link.
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.
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--stats
Si pasamos la opción --stats el output (salida) será un texto con estadísticas
básicas sobre los links.
$ md-links ./some/example.md --stats
Total: 3
Unique: 3También podemos 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