- 1. Preámbulo
- 2. md-Links
- 3. Instalación
- 4. Opciones de uso
- 5. Consideraciones
- 6. Plan de acción para el desarrollo
- 7. Checklist
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
).
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.
npm install andrenavas/DEV005-md-links
Se ejecuta en la terminal de la siguiente manera:
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.
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
: MensajeNot Found
en caso de fallo uOK
en caso de éxito.
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.
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.
- 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 deBash
.
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.
Con el diagrama de flujo listo, dividí el proyecto en tareas grandes: [Milestones] (https://github.com/andrenavas/DEV005-md-links/milestones) y dentro de ellas tareas más específicas: Issues.
- [:ballot_box_with_check:] Puede instalarse via
npm install --global <github-user>/md-links
- [: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
- [: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
- [:ballot_box_with_check:] Expone ejecutable
mdLinks
en el path (configurado enpackage.json
) - [:ballot_box_with_check:] Se ejecuta sin errores / output esperado
- [:ballot_box_with_check:] Implementa
--validate
- [:ballot_box_with_check:] Implementa
--stats
- [: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
).