- 1. Preámbulo
- 2. Resumen del proyecto
- 3. Diagrama de Flujo del Proyecto
- 4. Modo de uso "API"
- 5. Modo de uso "Interfaz de Línea de Comando (CLI)
- 6. Test Unitarios
- 7. Guía de Instalación
- 8. Checklist
El presente proyecto se construyò una herramienta que analiza archivos markdown. Una vez que el usuario ingrese una ruta de archivo o carèta, se procesa el archivo, se extraen los enlaces y se realiza una verificación para asegurarse de que estén activos. Además, se recopilan estadísticas, como el número total de enlaces, la cantidad de enlaces rotos y la cantidad de enlaces únicos.
La biblioteca en JavaScript proporciona las funciones y utilidades necesarias para leer y analizar archivos Markdown, verificar los enlaces y generar el informe de estadísticas. Esta biblioteca puede ser utilizada por otros desarrolladores para integrarla en sus propios proyectos y realizar análisis similares de archivos Markdown.
En este proyecto se ha desarrollado un programa que se ejecutará en la terminal o consola. Para utilizar esta aplicación, se utilizarán comandos específicos que he diseñado y programado en la misma línea de comandos.
Estos comandos nos permitirán acceder a los enlaces presentes en archivos o directorios, obtener el total de enlaces, identificar enlaces únicos y encontrar enlaces rotos.
Se crearon los siguientes diagramas Diagrama de Flujo de la API
- Diagrama de Flujo del CLI
El proyecto consta de dos partes: una API en JavaScript y una interfaz de línea de comandos (CLI).
- API de JavaScript La API es una función llamada mdLinks(filePath, options) que devuelve una promesa. Recibe un parámetro: filePath, que puede ser una ruta absoluta o relativa. Esta función busca en el archivo especificado y devuelve un array de objetos, donde cada objeto representa un enlace encontrado.
Valores de retorno con validate: false:
href: URL encontrada. text: Texto que aparece dentro del enlace (). file: Ruta del archivo donde se encontró el enlace.
Valores de retorno con validate: true:
href
: URL encontrada.text
: Texto que aparecía dentro del link (<a>
).file
: Ruta del archivo donde se encontró el link.status
: Código de respuesta HTTP.ok
: Mensajefail
en caso de fallo uok
en caso de éxito.
Debes ingresar la ruta de archivo o directorio de la sigueinte manera:
-
Si se usa md-links --validate el módulo hará una petición HTTP para averiguar si los links funcionan o no. Nos debe dar la href, text, file, status y mensaje OK o FAIL.
-
Si utilizas el comando md-links --stats, recibirás un texto que proporciona estadísticas básicas sobre los links encontrados en el archivo o directorio especificado.
-
Si ejecutas el comando md-links --validate --stats, se mostrarán estadísticas que también requieren los resultados de validación de los links.
Estas estadísticas adicionales incluyen:
Total de links: El número total de links encontrados en el archivo o directorio. Links únicos: El número de links únicos, es decir, aquellos que no se repiten. Links rotos: El número de links que están rotos o no funcionan correctamente. Links válidos: El número de links que son válidos y responden correctamente.
Se realizaron 10 test unitarios para las funciones de la API, como los otros archivos .js del proyecto.
Para instalar esta librería se debe hacer de la siguiente manera:
- de forma global: npm i lady-md-links,
- de forma local: npm install md-links --location=project,
- para que todas sus dependiencias funcionen correctamente como tercer paso se debe escribir en consola npm install,
- para correr los test se debe usar npm run test o npm test.
- Puede instalarse via
npm install --global <github-user>/md-links
- Un board con el backlog para la implementación de la librería.
- Documentación técnica de la librería.
- Guía de uso e instalación de la librería
- El módulo exporta una función con la interfaz (API) esperada.
- Implementa soporte para archivo individual
- Implementa soporte para directorios
- Expone ejecutable
md-links
en el path (configurado enpackage.json
) - Se ejecuta sin errores / output esperado
- Implementa
--validate
- Implementa
--stats
- Pruebas unitarias cubren un mínimo del 70% de statements, functions, lines, y branches.
- Pasa tests (y linters) (
npm test
).