npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

md-links-sgyg

v1.0.3

Published

Tool to extract links, validate and get stats from them given an md file

Downloads

2

Readme

Markdown Links Extractor

Índice


1. Objetivo

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 como links totales, únicos y rotos.

Esta herramienta se ejecuta con una línea de comando (CLI) que permite dar acceso a la librería o paquetería en Javascript.

2. Diagrama de flujo

Se creó un diagrama de flujo donde se juntan los procesos a seguir en la API y en el CLI para cumplir con el objetivo del proyecto. Adicionalmente, en distinto formato, se inserta una post note donde se describen igualmente los pasos pensando en el/la usuaria.

alt text alt text

3. Objetivos de aprendizaje

JavaScript

Node.js

Control de Versiones (Git y GitHub)

HTTP

Jest

4. Descripción del módulo

Instalación

alt text

Documentación del API

mdLinks(path, {options})

Parámetros

path: el nombre del path del archivo en formato markdown donde se encuentran los links o directorio que contiene archivos markdown en string ej. './pathTo'

options: las opciones válidas puestas al lado del path que devuelven un booleano (true/false) son las siguientes:

--validate para validar los links imprimiendo en consola el statusCode del HTTP request más un mensaje de 'ok' si el link tiene un statusCode de '200' o 'fail' si el link tiene un statusCode diferente a '200'.

--stats para imprimir en consola el número total de links y el número total de links únicos o no repetidos.

--validate --stats que combina el retorno de la opción --validate junto con el de --stats imprimiendo además el número total de links rotos.

Ejemplos

Después de haber instalado la paquetería, en el package.json file se verá de esta manera: alt text

Creación de archivo de prueba Se crea un archivo con extensión md de prueba en cuyo contenido vienen links para validar a forma de ejemplo. alt text

Llamar la función mdLinks importada por npm Con la función importada se crea otra función que usará mdLinks con los parámetros necesarios: el path(file o folder) y la opcion { validate:false } en este caso. alt text

Lo que se verá como resultado será una promesa con el href, file y text correspondientes a cada link: alt text

Con la opción { validate:true } se agregará a la promesa la petición a http con el statusCode y el statusMessage. Será statusCode:200 y statusMessage 'ok' si el link es correcto; statusCode:'NA' y statusMessage 'fail' si el link presenta algún fallo o error. alt text

5. Tutoriales

NodeSchool workshoppers

Otros recursos