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-pao-otamendi

v1.0.1

Published

* [1. Preámbulo](#1-Introducción) * [2. Resumen del proyecto](#2-Resumen-del-proyecto) * [3. Pasos para ejectutar la libreria (CLI/API)](#3-Pasos-para-ejectutar-la-libreria-(CLI/API)) * [4. Pruebas unitarias JEST](#4-Pruebas-unitarias-JEST) * [5. Meto

Downloads

10

Readme

Markdown Links

Índice


1. Introducción

Markdown es un lenguaje de marcado ligero muy popular entre developers. Es usado en muchísimas plataformas que manejan texto plano como GitHub, foros u blogs, es muy común encontrar varios archivos en ese formato en cualquier tipo de repositorio. La sintaxis de Markdown es muy simple y utiliza caracteres especiales para indicar diferentes elementos de formato.

Estos archivos Markdown normalmente contienen links (vínculos/ligas) que muchas veces están rotos o y no son válidos, por lo que se ha crea esta herramienta usando Node.js, la cual analizara los archivos encontradados para verificar los links y crear reportes de estadisticas.

md-links

2. Resumen del proyecto

Esta herramienta fue desarrollada como libreria que se ejecuta por medio una línea de comando (CLI).

Su objetivo principal es analizar los documentos Markdown encontrados dentro de una ruta, ya sea de un archivo un directorio proporcionada por el usuario, el analisis se basa en encontrar todos aquellos links dentro de el texto del documento y lanzar estadisticas sobre la data encontrada: -links En uso y validos. -links Rotos o invalidos. -Cantidad de links encontrados en los archivos. -Rutas de los documeentos pertenecientes a cada links.

La finalidad es facilitar la obtencion de data de valor y no perjudica el valor de la información que se quiere compartir.

Se contruyo un programa que se ejecute usando Node.js. Node.js es un entorno de ejecución para JavaScriptconstruido con el motor de JavaScript V8 de Chrome. Esto nos va a permitir ejecutar JavaScript en el entorno del sistema operativo, ya sea tu máquina o un servidor.

1. Pasos para ejectutar la libreria (CLI/API). :computer:

CLI (aplicación de línea de comandos).

Instalación.

Dentro de tu terminal ejecuta el siguiente comando:

npm i md-links-pao-otamendi

Inicar la libreria.

Cuando se tenga la libreria instalada sera necesario proporcionar los datos en la terminal de la siguiente forma:

npx i md-links-pao-otamendi <path> [options]

  • Path (Url o Ruta relativa u absoluta).

  • Options a ejecutar (--validate, --stats, --validate --stats, solo la path).

  • En caso de se una ruta no encontrada o la ruta no fue proporcionada correctamente lanzara error.

Ingresos de opciones y resultados esperados.

  1. npx i md-links-pao-otamendi <path> Al ejecutar esta opción donde solo se proporciona la ruta la libreria solo enlistara los links encontrados. En caso de no encontrar ruta o no ser proporcionada conrrectamente lanzara error u ruta no encontrada.

solopath

noencontrada

  1. npx i md-links-pao-otamendi <path> --validate Al ejecutar esta opción el modulo hara una petición HTTP mostrando si los links encontrados funcionan o no. Si el link resulta en una redirección a una URL que responde ok, entonces consideraremos el link como funcional. Si el link resulta en una redirección a una URL que responde fail, entonces consideraremos el link como roto. Si no encuentra ningun archivo se lanzara error.

solovalidate

  1. npx i md-links-pao-otamendi <path> --stats Al ejecutar esta opción el output (salida) será un texto con estadísticas básicas sobre los links, donde se mostrara la cantidad de links encontrados y no repetidos. Si no encuentra ningun archivo se lanzara error.

solostats

  1. npx i md-links-pao-otamendi <path> --validate --stats Al ejecutar esta opción el output (salida) será un texto con estadísticas básicas sobre los links, donde se mostrara la cantidad de links encontrados y no repetidos, ademas de analizar la cantidad de links rotos u no funcionales. Si no encuentra ningun archivo se lanzara error.

validateystats

2. Para ejecutar como API :desktop_computer:

API (Interfaz de Programación de Aplicaciones).

Instalacion.

Para iniciar comó una API:

  1. Realice clone de repositorio repositorio de GitHub.
  2. En la terminal ejecute el comando cd para ir a la carpeta donde desea guardar el proyecto.
  3. Ejecute el siguiente comando: git clone https://github.com/PaolaOtamendi/DEV007-md-links.git
  4. Abrir la carpeta donde se guardo la libreria.

Finalizados los pasos puede comenzar a ejecutar la libreria en su terminal.

Inicar la libreria.

Cuando se tenga la libreria instalada sera necesario proporcionar los datos en la terminal de la siguiente forma:

npm cli.js <path> [options]

  • Path (Url o Ruta relativa u absoluta).

  • Options a ejecutar (--validate, --stats, --validate --stats, solo la path).

  • En caso de se una ruta no encontrada o la ruta no fue proporcionada correctamente lanzara error.

Ingresos de opciones y resultados esperados.

  1. npm cli.js <path> Al ejecutar esta opción donde solo se proporciona la ruta la libreria solo enlistara los links encontrados. En caso de no encontrar ruta o no ser proporcionada conrrectamente lanzara error u ruta no encontrada.

solopath

noencontrada

  1. npm cli.js <path> --validate Al ejecutar esta opción el modulo hara una petición HTTP mostrando si los links encontrados funcionan o no. Si el link resulta en una redirección a una URL que responde ok, entonces consideraremos el link como funcional. Si el link resulta en una redirección a una URL que responde fail, entonces consideraremos el link como roto. Si no encuentra ningun archivo se lanzara error.

solovalidate

  1. npm cli.js <path> --stats Al ejecutar esta opción el output (salida) será un texto con estadísticas básicas sobre los links, donde se mostrara la cantidad de links encontrados y no repetidos. Si no encuentra ningun archivo se lanzara error.

solostats

  1. npm cli.js <path> --validate --stats Al ejecutar esta opción el output (salida) será un texto con estadísticas básicas sobre los links, donde se mostrara la cantidad de links encontrados y no repetidos, ademas de analizar la cantidad de links rotos u no funcionales. Si no encuentra ningun archivo se lanzara error.

validateystats

4. Pruebas unitarias JEST.

Resultados de pruebas realizadas a las funciones puras.

jest

5. Metodo planificacion y Scrum.

El metodo para desarrollar el proyecto fue por medio de GitHub Projects, Issues y Milestones.

gitprojects

5. Diagrama de flujo desarrollo de proyecto.

diagrama diagrama

6. Checklist - Requisitos.

General

  • [ :chart:] Puede instalarse via npm install --global <github-user>/md-links

README.md

  • [ :chart:] Un board con el backlog para la implementación de la librería.
  • [ :chart:] Documentación técnica de la librería.
  • [ :chart:] Guía de uso e instalación de la librería

API mdLinks(path, opts)

  • [ :chart:] El módulo exporta una función con la interfaz (API) esperada.
  • [ :chart:] Implementa soporte para archivo individual
  • [ :chart:] Implementa soporte para directorios
  • [ :chart:] Implementa options.validate

CLI

  • [ :chart:] Expone ejecutable md-links en el path (configurado en package.json)
  • [ :chart:] Se ejecuta sin errores / output esperado
  • [ :chart:] Implementa --validate
  • [ :chart:] Implementa --stats

Pruebas / tests

  • [ :chart:] Pruebas unitarias cubren un mínimo del 70% de statements, functions, lines, y branches.
  • [ :chart:] Pasa tests (y linters) (npm test).