jbf-md-links
Version:
Esta librería permite analizar enlaces contenidos en archivos Markdown. Puedes utilizarla tanto en formato de línea de comandos (CLI) o instalarla como un módulo desde GitHub.
51 lines (46 loc) • 1.77 kB
JavaScript
const { program } = require('commander');
const mdLinks = require('../index');
const figlet = require('figlet');
// Encabezado "MD-Links" con Figlet
console.log((figlet.textSync('MD-Links', { horizontalLayout: 'full' })));
program
.version('1.0.0')
.description('Encuentra y valida enlaces en archivos Markdown')
.arguments('<path>')
.option('--validate', 'Validar los enlaces')
.option('--stats', 'Mostrar estadísticas')
.action((path, options) => {
const { validate, stats } = options;
mdLinks(path, { validate, stats }).then((results) => {
if (stats && validate) {
console.log(`Total: ${results.total}`);
console.log(`Únicos: ${results.unique}`);
console.log(`Rotos: ${results.fail}`);
} else if (stats) {
console.log(`Total: ${results.total}`);
console.log(`Únicos: ${results.unique}`);
} else {
results.forEach((link) => {
console.log(`URL: ${(link.href)}`);
console.log(`Texto: ${(truncateText(link.text, 50))}`);
console.log(`Archivo: ${(link.file)}`);
if (validate) {
console.log(`Estado: ${link.ok} (${link.status})`);
}
console.log('---');
});
}
}).catch((error) => {
console.error(error);
});
})
.parse(process.argv);
// Función para truncar el texto
function truncateText(texto, longitudMaxima) {
if (texto.length <= longitudMaxima) {
return texto; // Si el texto ya es más corto o igual a la longitud máxima, no se trunca.
} else {
return texto.slice(0, longitudMaxima) + '...'; // Se toman los primeros 50 caracteres y se agrega "..." para indicar que se ha truncado.
}
}