- 1. Preámbulo
- 2. Resumen del proyecto
- 3. Planificacion del proyecto
- 4. Paso a paso del proyecto
- 5. Testeo del proyecto
- 6. Checklist
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
).
Estos archivos Markdown
normalmente contienen links (vínculos/ligas) que
muchas veces están rotos o ya no son válidos y eso perjudica mucho el valor de
la información que se quiere compartir.
En este proyecto se creo una herramienta de línea de comando (CLI) así como su propia librería.Esto nos va a permitir ejecutar JavaScript en el entorno del sistema operativo, ya sea tu máquina o un servidor, lo cual nos abre las puertas para poder interactuar con el sistema en sí, archivos, redes, etc.
En esta oportunidad nos alejamos un poco del navegador para construir un programa que se ejecute usando Node.js, es un entorno de ejecución para JavaScript construido con el Node.js
El metodo para desarrollar el proyecto fue por medio de GitHub Projects, Issues y Milestones.
CLI (aplicación de línea de comandos).
Instalación. Dentro de tu terminal ejecuta el siguiente comando:
npm i vivianagomez_md-links
Inicar la libreria. Cuando se tenga la libreria instalada sera necesario proporcionar los datos en la terminal de la siguiente forma:
npx npm i vivianagomez_md-links [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.
- npx npm i vivianagomez_md-links 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.
- npx i vivianagomez_md-links --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.
3.npx i vivianagomez_md-links --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.
- npx i vivianagomez_md-links --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.
Resultados de pruebas realizadas a las funciones puras.
- [x] Puede instalarse via
npm install --global <github-user>/md-links
- [x] Un board con el backlog para la implementación de la librería.
- [x] Documentación técnica de la librería.
- [x] Guía de uso e instalación de la librería
- [x] El módulo exporta una función con la interfaz (API) esperada.
- [x] Implementa soporte para archivo individual
- [x] Implementa soporte para directorios
- [x] Implementa
options.validate
- [x] Expone ejecutable
md-links
en el path (configurado enpackage.json
) - [x] Se ejecuta sin errores / output esperado
- [x] Implementa
--validate
- [x] Implementa
--stats
- [x] Pruebas unitarias cubren un mínimo del 70% de statements, functions, lines, y branches.
- [x] Pasa tests (y linters) (
npm test
).