@danisalermi/md-links
This module allows you to extract links from a markdown file, and shows an Array of objects with the link, the test of the link, the status of this link and the line of the Markdown file where the link was found.
Last updated 9 months ago by danisalermi .
ISC · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @danisalermi/md-links -g
SYNC missed versions from official npm registry.

Markdown Links

npm GitHub release - latest by date

Encuentra todos los links dentro de un archivo Markdown. Funciona cuando se ingresa una ruta relativa/ absoluta o si se llama un archivo Markdown que se encuentre en la posición relativa en la que está el usuario.

Instalación ????

$ npm install danisalermi/md-links

Usage ⚙

const md-links = require("@danisalermi/md-links");

mdLinks("path", {
  options (opcionales)
})
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });

Opciones ????

Se puede utilizar el paquete con una serie de opciones. Las cuales son:

  • Sin opciones: al ejecutar el paquete sin opciones se genera un arreglo con objetos que continen para cada link: href (link de la página), text (texto que acompaña al link) y file (archivo de donde se extrae el link).
  • Validate: al ejecutar el paquete con la opción validate: true (para ejecución con require) o -v, -validate (para ejecución por CLI), se genera el arreglo anterior, agregando además, para cada link encontrado el status de cada uno de ellos mediante una llamada http.
  • Stats: al ejecutar el paquete con la opción stats: true (para ejecución con require) o -s, -stats (para ejecución por CLI), se genera un objeto con el total de link y con la cantidad de links únicos encontrados dentro del archivo(s).
  • Stats y Validate: al ejecutar el paquete con las opcines stats: true, validate: true (para ejecución con require) o -s -v, -stats -validate (para ejecución por CLI), se genera un objeto con el total de link, con la cantidad de links únicos encontrados dentro del archivo(s) y la cantidad de los mismos que tienen una respuesta http no favorable.

Ejemplos ✅:

const mdLinks = require("@danisalermi/md-links");

mdLinks("./some/example.md")
  .then(links => {
    // => [{ href, text, file }]
  })
  .catch(console.error);

mdLinks("./some/example.md", { validate: true, stats: false })
  .then(links => {
    // => [{ href, text, file, status, ok }]
  })
  .catch(console.error);

mdLinks("./some/example.md", { validate: false, stats: true})
  .then(links => {
    // => { Total, Unique }
  })
  .catch(console.error);

mdLinks("./some/example.md", { validate: true stats: true})
  .then(links => {
    // => { Total, Unique, Broken }
  })
  .catch(console.error);

mdLinks("./some/dir")
  .then(links => {
    // => [{ href, text, file }]
  })
  .catch(console.error);

Preámbulo ????

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.

md-links

Dependencias ????

El paquete se desarrolló en JavaScript, haciendo uso de las siguientes dependencias fuera de node.js:

  • Módulo commander.js. Esta fue utilizada para agregar opciones al paquete de manera que usuario pudiera pasarlas de manera más amigable y tener una guía de lo que hace el programa Utilizando danisalermi/md-links -help
  • Módulo chalk. La misma se utilizò para colocar colores a las respuestas del paquete por consola. Ejemplo: Estad-sticas-colores
  • Módulo filehound, para poder encontrar todos los archivos con extensiones permitidas para archivos markdown dentro de un directorio.
  • Módulo fetch. Para poder hacer las consultas al servidor http de los links encontrados.

Tambièn se hizo uso de las siguientes dependencias dentro de node.js:

  • Módulo process con process.argv[]. Para obtener lo ingresado por el usuario mediante la terminal.
  • Módulo path. Para poder normalizar una ruta y obtener posteriormente la ruta absoluta.
  • Módulo readline. Para leer cada línea de un archivo dado.
  • Módulo fs.createReadStream. Para leer un archivo desde un path ingresado por el usuario.

Current Tags

  • 2.0.0                                ...           latest (9 months ago)

3 Versions

  • 2.0.0                                ...           9 months ago
  • 1.0.1                                ...           9 months ago
  • 1.0.0                                ...           9 months ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 6
Dependencies (8)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |