Skip to content

Librería que permite extraer links de archivos Markdown, detectar cuáles ya no son válidos y reportar algunas estadísticas.

Notifications You must be signed in to change notification settings

andrenavas/DEV005-md-links

 
 

Repository files navigation

andre-mdlinks

Índice


1. 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).

2. andre-mdlinks

andre-mdLinks, es una librería que te permite extraer los links de tus archivos Markdown, detectar cuáles ya no son válidos y reportar algunas estadísticas.

3. Instalación

npm install andrenavas/DEV005-md-links

4. Opciones de uso

Se ejecuta en la terminal de la siguiente manera:

Uso 1

mdLinks <path-to-file-or-directory>

Los valores retornados son:

  • href: URL encontrada.
  • text: Texto que aparecía dentro del link.
  • file: Ruta del archivo donde se encontró el link.

Ejemplo: md-links-Empty

Uso 2

mdLinks <path-to-file-or-directory> --validate

Los valores retornados son:

  • href: URL encontrada.
  • text: Texto que aparecía dentro del link.
  • file: Ruta del archivo donde se encontró el link.
  • status: Código de respuesta HTTP.
  • statusText: Mensaje Not Found en caso de fallo u OK en caso de éxito.

Ejemplo: md-links-Validate

Uso 3

mdLinks <path-to-file-or-directory> --stats

Los valores retornados son:

  • total: Número de links encontrados.
  • unique: Número de links que no se repiten.

Ejemplo: md-links-Stats

Uso 4

mdLinks <path-to-file-or-directory> --stats --validate

también

mdLinks <path-to-file-or-directory> --validate --stats

Los valores retornados son:

  • total: Número de links encontrados.
  • unique: Número de links que no se repiten.
  • broken: Número de links que no son válidos.

Ejemplo: md-links-ValidateStats

5. Consideraciones

  • Se usaron librerías externas como: Colors, Node-Fetch y JSDOM.
  • Si deseas que tu consola se vea como en las imagenes, usa el tema Dracula en tu Visual Studio Code y la terminal de Bash.

6. Plan de acción para el desarrollo

Lo primero que hice fue organizar las tareas en GitHub-projects, antes de comenzar a realizar el código realicé un diagrama de flujo que me permitió tener una visión más detallada y el paso a paso para realizar el proyecto, luego de eso realicé el boilerplate e instalé las dependecias.

Diagrama de flujo

md-links

Con el diagrama de flujo listo, dividí el proyecto en tareas grandes: Milestones y dentro de ellas tareas más específicas: Issues.

7. Checklist

General

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

README.md

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

API mdLinks(path, opts)

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

CLI

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

Pruebas / tests

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

About

Librería que permite extraer links de archivos Markdown, detectar cuáles ya no son válidos y reportar algunas estadísticas.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%